1use serde::Deserialize;
2use serde::de::Unexpected;
3use serde::de;
4use serde::Deserializer;
5use zigbee2mqtt_types_base_types::LastSeen;
6#[cfg_attr(feature = "debug", derive(Debug))]
10#[cfg_attr(feature = "clone", derive(Clone))]
11#[derive(Deserialize)]
12pub struct Zigbee371000001 {
13 pub brightness: f64,
15 pub color_temp: f64,
17 pub color_temp_startup: f64,
19 pub linkquality: f64,
21 pub power_on_behavior: Zigbee371000001Poweronbehavior,
23 #[serde(deserialize_with = "zigbee371000001_state_deserializer")]
26 pub state: bool,
27 pub last_seen: Option<LastSeen>,
29 pub elapsed: Option<u64>,
31}
32fn zigbee371000001_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
34where
35 D: Deserializer<'de>,
36{
37 match String::deserialize(deserializer)?.as_ref() {
38 "ON" => Ok(true),
39 "OFF" => Ok(false),
40 other => Err(de::Error::invalid_value(
41 Unexpected::Str(other),
42 &"Value expected was either ON or OFF",
43 )),
44 }
45}
46
47#[cfg_attr(feature = "debug", derive(Debug))]
51#[cfg_attr(feature = "clone", derive(Clone))]
52#[derive(Deserialize)]
53pub struct Zigbee371000002 {
54 pub brightness: f64,
56 pub color_temp: f64,
58 pub color_temp_startup: f64,
60 pub linkquality: f64,
62 pub power_on_behavior: Zigbee371000002Poweronbehavior,
64 #[serde(deserialize_with = "zigbee371000002_state_deserializer")]
67 pub state: bool,
68 pub last_seen: Option<LastSeen>,
70 pub elapsed: Option<u64>,
72}
73fn zigbee371000002_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
75where
76 D: Deserializer<'de>,
77{
78 match String::deserialize(deserializer)?.as_ref() {
79 "ON" => Ok(true),
80 "OFF" => Ok(false),
81 other => Err(de::Error::invalid_value(
82 Unexpected::Str(other),
83 &"Value expected was either ON or OFF",
84 )),
85 }
86}
87
88#[cfg_attr(feature = "debug", derive(Debug))]
92#[cfg_attr(feature = "clone", derive(Clone))]
93#[derive(Deserialize)]
94pub struct Zigbee371232040 {
95 pub brightness: f64,
97 pub color_temp: f64,
99 pub color_temp_startup: f64,
101 pub linkquality: f64,
103 pub power_on_behavior: Zigbee371232040Poweronbehavior,
105 #[serde(deserialize_with = "zigbee371232040_state_deserializer")]
108 pub state: bool,
109 pub last_seen: Option<LastSeen>,
111 pub elapsed: Option<u64>,
113}
114fn zigbee371232040_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
116where
117 D: Deserializer<'de>,
118{
119 match String::deserialize(deserializer)?.as_ref() {
120 "ON" => Ok(true),
121 "OFF" => Ok(false),
122 other => Err(de::Error::invalid_value(
123 Unexpected::Str(other),
124 &"Value expected was either ON or OFF",
125 )),
126 }
127}
128
129#[cfg_attr(feature = "debug", derive(Debug))]
133#[cfg_attr(feature = "clone", derive(Clone))]
134#[derive(Deserialize)]
135pub struct Zigbee4137 {
136 pub brightness: f64,
138 pub color_temp: f64,
140 pub color_temp_startup: f64,
142 pub linkquality: f64,
144 pub power_on_behavior: Zigbee4137Poweronbehavior,
146 #[serde(deserialize_with = "zigbee4137_state_deserializer")]
149 pub state: bool,
150 pub last_seen: Option<LastSeen>,
152 pub elapsed: Option<u64>,
154}
155fn zigbee4137_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
157where
158 D: Deserializer<'de>,
159{
160 match String::deserialize(deserializer)?.as_ref() {
161 "ON" => Ok(true),
162 "OFF" => Ok(false),
163 other => Err(de::Error::invalid_value(
164 Unexpected::Str(other),
165 &"Value expected was either ON or OFF",
166 )),
167 }
168}
169
170#[cfg_attr(feature = "debug", derive(Debug))]
174#[cfg_attr(feature = "clone", derive(Clone))]
175#[derive(Deserialize)]
176pub struct Zigbee50043 {
177 pub linkquality: f64,
179 pub power_on_behavior: Zigbee50043Poweronbehavior,
181 #[serde(deserialize_with = "zigbee50043_state_deserializer")]
184 pub state: bool,
185 pub last_seen: Option<LastSeen>,
187 pub elapsed: Option<u64>,
189}
190fn zigbee50043_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
192where
193 D: Deserializer<'de>,
194{
195 match String::deserialize(deserializer)?.as_ref() {
196 "ON" => Ok(true),
197 "OFF" => Ok(false),
198 other => Err(de::Error::invalid_value(
199 Unexpected::Str(other),
200 &"Value expected was either ON or OFF",
201 )),
202 }
203}
204
205#[cfg_attr(feature = "debug", derive(Debug))]
209#[cfg_attr(feature = "clone", derive(Clone))]
210#[derive(Deserialize)]
211pub struct Zigbee5004450045 {
212 pub brightness: f64,
214 pub linkquality: f64,
216 pub power_on_behavior: Zigbee5004450045Poweronbehavior,
218 #[serde(deserialize_with = "zigbee5004450045_state_deserializer")]
221 pub state: bool,
222 pub last_seen: Option<LastSeen>,
224 pub elapsed: Option<u64>,
226}
227fn zigbee5004450045_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
229where
230 D: Deserializer<'de>,
231{
232 match String::deserialize(deserializer)?.as_ref() {
233 "ON" => Ok(true),
234 "OFF" => Ok(false),
235 other => Err(de::Error::invalid_value(
236 Unexpected::Str(other),
237 &"Value expected was either ON or OFF",
238 )),
239 }
240}
241
242#[cfg_attr(feature = "debug", derive(Debug))]
246#[cfg_attr(feature = "clone", derive(Clone))]
247#[derive(Deserialize)]
248pub struct Zigbee50049500F63 {
249 pub brightness: f64,
251 pub color_temp: f64,
253 pub color_temp_startup: f64,
255 pub linkquality: f64,
257 pub power_on_behavior: Zigbee50049500F63Poweronbehavior,
259 #[serde(deserialize_with = "zigbee50049500f63_state_deserializer")]
262 pub state: bool,
263 pub last_seen: Option<LastSeen>,
265 pub elapsed: Option<u64>,
267}
268fn zigbee50049500f63_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
270where
271 D: Deserializer<'de>,
272{
273 match String::deserialize(deserializer)?.as_ref() {
274 "ON" => Ok(true),
275 "OFF" => Ok(false),
276 other => Err(de::Error::invalid_value(
277 Unexpected::Str(other),
278 &"Value expected was either ON or OFF",
279 )),
280 }
281}
282
283#[cfg_attr(feature = "debug", derive(Debug))]
287#[cfg_attr(feature = "clone", derive(Clone))]
288#[derive(Deserialize)]
289pub struct Zigbee50064 {
290 pub brightness: f64,
292 pub color_temp: f64,
294 pub color_temp_startup: f64,
296 pub linkquality: f64,
298 pub power_on_behavior: Zigbee50064Poweronbehavior,
300 #[serde(deserialize_with = "zigbee50064_state_deserializer")]
303 pub state: bool,
304 pub last_seen: Option<LastSeen>,
306 pub elapsed: Option<u64>,
308}
309fn zigbee50064_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
311where
312 D: Deserializer<'de>,
313{
314 match String::deserialize(deserializer)?.as_ref() {
315 "ON" => Ok(true),
316 "OFF" => Ok(false),
317 other => Err(de::Error::invalid_value(
318 Unexpected::Str(other),
319 &"Value expected was either ON or OFF",
320 )),
321 }
322}
323
324#[cfg_attr(feature = "debug", derive(Debug))]
328#[cfg_attr(feature = "clone", derive(Clone))]
329#[derive(Deserialize)]
330pub struct Zigbee500F44 {
331 pub brightness: f64,
333 pub linkquality: f64,
335 pub power_on_behavior: Zigbee500F44Poweronbehavior,
337 #[serde(deserialize_with = "zigbee500f44_state_deserializer")]
340 pub state: bool,
341 pub last_seen: Option<LastSeen>,
343 pub elapsed: Option<u64>,
345}
346fn zigbee500f44_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
348where
349 D: Deserializer<'de>,
350{
351 match String::deserialize(deserializer)?.as_ref() {
352 "ON" => Ok(true),
353 "OFF" => Ok(false),
354 other => Err(de::Error::invalid_value(
355 Unexpected::Str(other),
356 &"Value expected was either ON or OFF",
357 )),
358 }
359}
360
361#[cfg_attr(feature = "debug", derive(Debug))]
365#[cfg_attr(feature = "clone", derive(Clone))]
366#[derive(Deserialize)]
367pub struct Zigbee500F45 {
368 pub brightness: f64,
370 pub linkquality: f64,
372 pub power_on_behavior: Zigbee500F45Poweronbehavior,
374 #[serde(deserialize_with = "zigbee500f45_state_deserializer")]
377 pub state: bool,
378 pub last_seen: Option<LastSeen>,
380 pub elapsed: Option<u64>,
382}
383fn zigbee500f45_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
385where
386 D: Deserializer<'de>,
387{
388 match String::deserialize(deserializer)?.as_ref() {
389 "ON" => Ok(true),
390 "OFF" => Ok(false),
391 other => Err(de::Error::invalid_value(
392 Unexpected::Str(other),
393 &"Value expected was either ON or OFF",
394 )),
395 }
396}
397
398#[cfg_attr(feature = "debug", derive(Debug))]
402#[cfg_attr(feature = "clone", derive(Clone))]
403#[derive(Deserialize)]
404pub struct Zigbee500F47 {
405 pub brightness: f64,
407 pub color_temp: f64,
409 pub color_temp_startup: f64,
411 pub linkquality: f64,
413 pub power_on_behavior: Zigbee500F47Poweronbehavior,
415 #[serde(deserialize_with = "zigbee500f47_state_deserializer")]
418 pub state: bool,
419 pub last_seen: Option<LastSeen>,
421 pub elapsed: Option<u64>,
423}
424fn zigbee500f47_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
426where
427 D: Deserializer<'de>,
428{
429 match String::deserialize(deserializer)?.as_ref() {
430 "ON" => Ok(true),
431 "OFF" => Ok(false),
432 other => Err(de::Error::invalid_value(
433 Unexpected::Str(other),
434 &"Value expected was either ON or OFF",
435 )),
436 }
437}
438
439#[cfg_attr(feature = "debug", derive(Debug))]
443#[cfg_attr(feature = "clone", derive(Clone))]
444#[derive(Deserialize)]
445pub struct Zigbee500F48 {
446 pub brightness: f64,
448 pub linkquality: f64,
450 pub power_on_behavior: Zigbee500F48Poweronbehavior,
452 #[serde(deserialize_with = "zigbee500f48_state_deserializer")]
455 pub state: bool,
456 pub last_seen: Option<LastSeen>,
458 pub elapsed: Option<u64>,
460}
461fn zigbee500f48_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
463where
464 D: Deserializer<'de>,
465{
466 match String::deserialize(deserializer)?.as_ref() {
467 "ON" => Ok(true),
468 "OFF" => Ok(false),
469 other => Err(de::Error::invalid_value(
470 Unexpected::Str(other),
471 &"Value expected was either ON or OFF",
472 )),
473 }
474}
475
476#[cfg_attr(feature = "debug", derive(Debug))]
480#[cfg_attr(feature = "clone", derive(Clone))]
481#[derive(Deserialize)]
482pub struct Zigbee500F67 {
483 pub action: Zigbee500F67Action,
485 pub linkquality: f64,
487 pub last_seen: Option<LastSeen>,
489 pub elapsed: Option<u64>,
491}#[cfg_attr(feature = "debug", derive(Debug))]
495#[cfg_attr(feature = "clone", derive(Clone))]
496#[derive(Deserialize)]
497pub struct Zigbee501F31 {
498 pub linkquality: f64,
500 pub power_on_behavior: Zigbee501F31Poweronbehavior,
502 #[serde(deserialize_with = "zigbee501f31_state_deserializer")]
505 pub state: bool,
506 pub last_seen: Option<LastSeen>,
508 pub elapsed: Option<u64>,
510}
511fn zigbee501f31_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
513where
514 D: Deserializer<'de>,
515{
516 match String::deserialize(deserializer)?.as_ref() {
517 "ON" => Ok(true),
518 "OFF" => Ok(false),
519 other => Err(de::Error::invalid_value(
520 Unexpected::Str(other),
521 &"Value expected was either ON or OFF",
522 )),
523 }
524}
525
526#[cfg_attr(feature = "debug", derive(Debug))]
530#[cfg_attr(feature = "clone", derive(Clone))]
531#[derive(Deserialize)]
532pub struct Zigbee501F34 {
533 pub action: Zigbee501F34Action,
535 pub battery: f64,
537 pub linkquality: f64,
539 pub last_seen: Option<LastSeen>,
541 pub elapsed: Option<u64>,
543}#[cfg_attr(feature = "debug", derive(Debug))]
547#[cfg_attr(feature = "clone", derive(Clone))]
548#[derive(Deserialize)]
549pub struct Zigbee929F60 {
550 pub brightness: f64,
552 pub linkquality: f64,
554 pub power_on_behavior: Zigbee929F60Poweronbehavior,
556 #[serde(deserialize_with = "zigbee929f60_state_deserializer")]
559 pub state: bool,
560 pub last_seen: Option<LastSeen>,
562 pub elapsed: Option<u64>,
564}
565fn zigbee929f60_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
567where
568 D: Deserializer<'de>,
569{
570 match String::deserialize(deserializer)?.as_ref() {
571 "ON" => Ok(true),
572 "OFF" => Ok(false),
573 other => Err(de::Error::invalid_value(
574 Unexpected::Str(other),
575 &"Value expected was either ON or OFF",
576 )),
577 }
578}
579
580#[cfg_attr(feature = "debug", derive(Debug))]
584#[cfg_attr(feature = "clone", derive(Clone))]
585#[derive(Deserialize)]
586pub struct Zigbee929F63 {
587 pub brightness: f64,
589 pub color_temp: f64,
591 pub color_temp_startup: f64,
593 pub linkquality: f64,
595 pub power_on_behavior: Zigbee929F63Poweronbehavior,
597 #[serde(deserialize_with = "zigbee929f63_state_deserializer")]
600 pub state: bool,
601 pub last_seen: Option<LastSeen>,
603 pub elapsed: Option<u64>,
605}
606fn zigbee929f63_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
608where
609 D: Deserializer<'de>,
610{
611 match String::deserialize(deserializer)?.as_ref() {
612 "ON" => Ok(true),
613 "OFF" => Ok(false),
614 other => Err(de::Error::invalid_value(
615 Unexpected::Str(other),
616 &"Value expected was either ON or OFF",
617 )),
618 }
619}
620
621#[cfg_attr(feature = "debug", derive(Debug))]
625#[cfg_attr(feature = "clone", derive(Clone))]
626#[derive(Deserialize)]
627pub struct Zigbee929F66 {
628 pub brightness: f64,
630 pub color_temp: f64,
632 pub color_temp_startup: f64,
634 pub linkquality: f64,
636 pub power_on_behavior: Zigbee929F66Poweronbehavior,
638 #[serde(deserialize_with = "zigbee929f66_state_deserializer")]
641 pub state: bool,
642 pub last_seen: Option<LastSeen>,
644 pub elapsed: Option<u64>,
646}
647fn zigbee929f66_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
649where
650 D: Deserializer<'de>,
651{
652 match String::deserialize(deserializer)?.as_ref() {
653 "ON" => Ok(true),
654 "OFF" => Ok(false),
655 other => Err(de::Error::invalid_value(
656 Unexpected::Str(other),
657 &"Value expected was either ON or OFF",
658 )),
659 }
660}
661
662#[cfg_attr(feature = "debug", derive(Debug))]
666#[cfg_attr(feature = "clone", derive(Clone))]
667#[derive(Deserialize)]
668pub struct Zigbee93999 {
669 pub brightness: f64,
671 pub linkquality: f64,
673 pub power_on_behavior: Zigbee93999Poweronbehavior,
675 #[serde(deserialize_with = "zigbee93999_state_deserializer")]
678 pub state: bool,
679 pub last_seen: Option<LastSeen>,
681 pub elapsed: Option<u64>,
683}
684fn zigbee93999_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
686where
687 D: Deserializer<'de>,
688{
689 match String::deserialize(deserializer)?.as_ref() {
690 "ON" => Ok(true),
691 "OFF" => Ok(false),
692 other => Err(de::Error::invalid_value(
693 Unexpected::Str(other),
694 &"Value expected was either ON or OFF",
695 )),
696 }
697}
698
699#[cfg_attr(feature = "debug", derive(Debug))]
703#[cfg_attr(feature = "clone", derive(Clone))]
704#[derive(Deserialize)]
705pub struct Zigbee94191 {
706 pub brightness: f64,
708 pub color_temp: f64,
710 pub color_temp_startup: f64,
712 pub linkquality: f64,
714 pub power_on_behavior: Zigbee94191Poweronbehavior,
716 #[serde(deserialize_with = "zigbee94191_state_deserializer")]
719 pub state: bool,
720 pub last_seen: Option<LastSeen>,
722 pub elapsed: Option<u64>,
724}
725fn zigbee94191_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
727where
728 D: Deserializer<'de>,
729{
730 match String::deserialize(deserializer)?.as_ref() {
731 "ON" => Ok(true),
732 "OFF" => Ok(false),
733 other => Err(de::Error::invalid_value(
734 Unexpected::Str(other),
735 &"Value expected was either ON or OFF",
736 )),
737 }
738}
739
740
741#[cfg_attr(feature = "debug", derive(Debug))]
742#[cfg_attr(feature = "clone", derive(Clone))]
743#[derive(Deserialize, PartialEq)]
744pub enum Zigbee371000001Poweronbehavior {
745 #[serde(rename = "off")]
746 Off,
747 #[serde(rename = "on")]
748 On,
749 #[serde(rename = "previous")]
750 Previous,
751 #[serde(rename = "toggle")]
752 Toggle,
753}
754#[cfg_attr(feature = "debug", derive(Debug))]
755#[cfg_attr(feature = "clone", derive(Clone))]
756#[derive(Deserialize, PartialEq)]
757pub enum Zigbee371000002Poweronbehavior {
758 #[serde(rename = "off")]
759 Off,
760 #[serde(rename = "on")]
761 On,
762 #[serde(rename = "previous")]
763 Previous,
764 #[serde(rename = "toggle")]
765 Toggle,
766}
767#[cfg_attr(feature = "debug", derive(Debug))]
768#[cfg_attr(feature = "clone", derive(Clone))]
769#[derive(Deserialize, PartialEq)]
770pub enum Zigbee371232040Poweronbehavior {
771 #[serde(rename = "off")]
772 Off,
773 #[serde(rename = "on")]
774 On,
775 #[serde(rename = "previous")]
776 Previous,
777 #[serde(rename = "toggle")]
778 Toggle,
779}
780#[cfg_attr(feature = "debug", derive(Debug))]
781#[cfg_attr(feature = "clone", derive(Clone))]
782#[derive(Deserialize, PartialEq)]
783pub enum Zigbee4137Poweronbehavior {
784 #[serde(rename = "off")]
785 Off,
786 #[serde(rename = "on")]
787 On,
788 #[serde(rename = "previous")]
789 Previous,
790 #[serde(rename = "toggle")]
791 Toggle,
792}
793#[cfg_attr(feature = "debug", derive(Debug))]
794#[cfg_attr(feature = "clone", derive(Clone))]
795#[derive(Deserialize, PartialEq)]
796pub enum Zigbee50043Poweronbehavior {
797 #[serde(rename = "off")]
798 Off,
799 #[serde(rename = "on")]
800 On,
801 #[serde(rename = "previous")]
802 Previous,
803 #[serde(rename = "toggle")]
804 Toggle,
805}
806#[cfg_attr(feature = "debug", derive(Debug))]
807#[cfg_attr(feature = "clone", derive(Clone))]
808#[derive(Deserialize, PartialEq)]
809pub enum Zigbee5004450045Poweronbehavior {
810 #[serde(rename = "off")]
811 Off,
812 #[serde(rename = "on")]
813 On,
814 #[serde(rename = "previous")]
815 Previous,
816 #[serde(rename = "toggle")]
817 Toggle,
818}
819#[cfg_attr(feature = "debug", derive(Debug))]
820#[cfg_attr(feature = "clone", derive(Clone))]
821#[derive(Deserialize, PartialEq)]
822pub enum Zigbee50049500F63Poweronbehavior {
823 #[serde(rename = "off")]
824 Off,
825 #[serde(rename = "on")]
826 On,
827 #[serde(rename = "previous")]
828 Previous,
829 #[serde(rename = "toggle")]
830 Toggle,
831}
832#[cfg_attr(feature = "debug", derive(Debug))]
833#[cfg_attr(feature = "clone", derive(Clone))]
834#[derive(Deserialize, PartialEq)]
835pub enum Zigbee50064Poweronbehavior {
836 #[serde(rename = "off")]
837 Off,
838 #[serde(rename = "on")]
839 On,
840 #[serde(rename = "previous")]
841 Previous,
842 #[serde(rename = "toggle")]
843 Toggle,
844}
845#[cfg_attr(feature = "debug", derive(Debug))]
846#[cfg_attr(feature = "clone", derive(Clone))]
847#[derive(Deserialize, PartialEq)]
848pub enum Zigbee500F44Poweronbehavior {
849 #[serde(rename = "off")]
850 Off,
851 #[serde(rename = "on")]
852 On,
853 #[serde(rename = "previous")]
854 Previous,
855 #[serde(rename = "toggle")]
856 Toggle,
857}
858#[cfg_attr(feature = "debug", derive(Debug))]
859#[cfg_attr(feature = "clone", derive(Clone))]
860#[derive(Deserialize, PartialEq)]
861pub enum Zigbee500F45Poweronbehavior {
862 #[serde(rename = "off")]
863 Off,
864 #[serde(rename = "on")]
865 On,
866 #[serde(rename = "previous")]
867 Previous,
868 #[serde(rename = "toggle")]
869 Toggle,
870}
871#[cfg_attr(feature = "debug", derive(Debug))]
872#[cfg_attr(feature = "clone", derive(Clone))]
873#[derive(Deserialize, PartialEq)]
874pub enum Zigbee500F47Poweronbehavior {
875 #[serde(rename = "off")]
876 Off,
877 #[serde(rename = "on")]
878 On,
879 #[serde(rename = "previous")]
880 Previous,
881 #[serde(rename = "toggle")]
882 Toggle,
883}
884#[cfg_attr(feature = "debug", derive(Debug))]
885#[cfg_attr(feature = "clone", derive(Clone))]
886#[derive(Deserialize, PartialEq)]
887pub enum Zigbee500F48Poweronbehavior {
888 #[serde(rename = "off")]
889 Off,
890 #[serde(rename = "on")]
891 On,
892 #[serde(rename = "previous")]
893 Previous,
894 #[serde(rename = "toggle")]
895 Toggle,
896}
897#[cfg_attr(feature = "debug", derive(Debug))]
898#[cfg_attr(feature = "clone", derive(Clone))]
899#[derive(Deserialize, PartialEq)]
900pub enum Zigbee500F67Action {
901 #[serde(rename = "brightness_move_down")]
902 BrightnessMoveDown,
903 #[serde(rename = "brightness_move_up")]
904 BrightnessMoveUp,
905 #[serde(rename = "brightness_step_down")]
906 BrightnessStepDown,
907 #[serde(rename = "brightness_step_up")]
908 BrightnessStepUp,
909 #[serde(rename = "brightness_stop")]
910 BrightnessStop,
911 #[serde(rename = "color_loop_set")]
912 ColorLoopSet,
913 #[serde(rename = "color_move")]
914 ColorMove,
915 #[serde(rename = "color_temperature_move")]
916 ColorTemperatureMove,
917 #[serde(rename = "enhanced_move_to_hue_and_saturation")]
918 EnhancedMoveToHueAndSaturation,
919 #[serde(rename = "off")]
920 Off,
921 #[serde(rename = "on")]
922 On,
923 #[serde(rename = "scene_*")]
924 Scene,
925 #[serde(rename = "toggle")]
926 Toggle,
927}
928#[cfg_attr(feature = "debug", derive(Debug))]
929#[cfg_attr(feature = "clone", derive(Clone))]
930#[derive(Deserialize, PartialEq)]
931pub enum Zigbee501F31Poweronbehavior {
932 #[serde(rename = "off")]
933 Off,
934 #[serde(rename = "on")]
935 On,
936 #[serde(rename = "previous")]
937 Previous,
938 #[serde(rename = "toggle")]
939 Toggle,
940}
941#[cfg_attr(feature = "debug", derive(Debug))]
942#[cfg_attr(feature = "clone", derive(Clone))]
943#[derive(Deserialize, PartialEq)]
944pub enum Zigbee501F34Action {
945 #[serde(rename = "brightness_move_down_1")]
946 BrightnessMoveDown1,
947 #[serde(rename = "brightness_move_down_2")]
948 BrightnessMoveDown2,
949 #[serde(rename = "brightness_move_stop_1")]
950 BrightnessMoveStop1,
951 #[serde(rename = "brightness_move_stop_2")]
952 BrightnessMoveStop2,
953 #[serde(rename = "brightness_move_up_1")]
954 BrightnessMoveUp1,
955 #[serde(rename = "brightness_move_up_2")]
956 BrightnessMoveUp2,
957 #[serde(rename = "off_1")]
958 Off1,
959 #[serde(rename = "off_2")]
960 Off2,
961 #[serde(rename = "on_1")]
962 On1,
963 #[serde(rename = "on_2")]
964 On2,
965}
966#[cfg_attr(feature = "debug", derive(Debug))]
967#[cfg_attr(feature = "clone", derive(Clone))]
968#[derive(Deserialize, PartialEq)]
969pub enum Zigbee929F60Poweronbehavior {
970 #[serde(rename = "off")]
971 Off,
972 #[serde(rename = "on")]
973 On,
974 #[serde(rename = "previous")]
975 Previous,
976 #[serde(rename = "toggle")]
977 Toggle,
978}
979#[cfg_attr(feature = "debug", derive(Debug))]
980#[cfg_attr(feature = "clone", derive(Clone))]
981#[derive(Deserialize, PartialEq)]
982pub enum Zigbee929F63Poweronbehavior {
983 #[serde(rename = "off")]
984 Off,
985 #[serde(rename = "on")]
986 On,
987 #[serde(rename = "previous")]
988 Previous,
989 #[serde(rename = "toggle")]
990 Toggle,
991}
992#[cfg_attr(feature = "debug", derive(Debug))]
993#[cfg_attr(feature = "clone", derive(Clone))]
994#[derive(Deserialize, PartialEq)]
995pub enum Zigbee929F66Poweronbehavior {
996 #[serde(rename = "off")]
997 Off,
998 #[serde(rename = "on")]
999 On,
1000 #[serde(rename = "previous")]
1001 Previous,
1002 #[serde(rename = "toggle")]
1003 Toggle,
1004}
1005#[cfg_attr(feature = "debug", derive(Debug))]
1006#[cfg_attr(feature = "clone", derive(Clone))]
1007#[derive(Deserialize, PartialEq)]
1008pub enum Zigbee93999Poweronbehavior {
1009 #[serde(rename = "off")]
1010 Off,
1011 #[serde(rename = "on")]
1012 On,
1013 #[serde(rename = "previous")]
1014 Previous,
1015 #[serde(rename = "toggle")]
1016 Toggle,
1017}
1018#[cfg_attr(feature = "debug", derive(Debug))]
1019#[cfg_attr(feature = "clone", derive(Clone))]
1020#[derive(Deserialize, PartialEq)]
1021pub enum Zigbee94191Poweronbehavior {
1022 #[serde(rename = "off")]
1023 Off,
1024 #[serde(rename = "on")]
1025 On,
1026 #[serde(rename = "previous")]
1027 Previous,
1028 #[serde(rename = "toggle")]
1029 Toggle,
1030}
1031#[cfg(all(feature = "last_seen_epoch", feature = "last_seen_iso_8601"))]
1032compile_error!{"Feature last_seen epoch and iso_8601 are mutually exclusive and cannot be enabled together.
1033This was done because it is a global setting in zigbee2mqtt and therefor can't see a reason both would be enabled.
1034If you have a any reason to have both ways enabled please submit an issue to https://gitlab.com/seam345/zigbee2mqtt-types/-/issues"}