use serde::Deserialize;
use serde::de::Unexpected;
use serde::de;
use serde::Deserializer;
use zigbee2mqtt_types_base_types::LastSeen;
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee1402755 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee1402755Poweronbehavior,
#[serde(deserialize_with = "zigbee1402755_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee1402755_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3308431 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3308431Poweronbehavior,
#[serde(deserialize_with = "zigbee3308431_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3308431_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802960 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802960Poweronbehavior,
#[serde(deserialize_with = "zigbee3802960_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802960_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802961 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802961Poweronbehavior,
#[serde(deserialize_with = "zigbee3802961_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802961_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802962 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802962Poweronbehavior,
#[serde(deserialize_with = "zigbee3802962_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802962_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802963 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802963Poweronbehavior,
#[serde(deserialize_with = "zigbee3802963_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802963_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802964 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802964Poweronbehavior,
#[serde(deserialize_with = "zigbee3802964_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802964_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802965 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802965Poweronbehavior,
#[serde(deserialize_with = "zigbee3802965_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802965_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802966 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802966Poweronbehavior,
#[serde(deserialize_with = "zigbee3802966_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802966_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802967 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802967Poweronbehavior,
#[serde(deserialize_with = "zigbee3802967_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802967_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee3802968 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee3802968Poweronbehavior,
#[serde(deserialize_with = "zigbee3802968_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee3802968_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512700 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee4512700Poweronbehavior,
#[serde(deserialize_with = "zigbee4512700_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee4512700_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512701 {
pub action: Zigbee4512701Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512702 {
pub action: Zigbee4512702Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512703 {
pub action: Zigbee4512703Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512704 {
pub linkquality: f64,
pub power_on_behavior: Zigbee4512704Poweronbehavior,
#[serde(deserialize_with = "zigbee4512704_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee4512704_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512705 {
pub action: Zigbee4512705Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512706 {
pub action: Zigbee4512706Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512708 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee4512708Poweronbehavior,
#[serde(deserialize_with = "zigbee4512708_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee4512708_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512719 {
pub action: Zigbee4512719Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512721 {
pub action: Zigbee4512721Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512726 {
pub action: Zigbee4512726Action,
pub battery: f64,
pub linkquality: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512728 {
pub action: Zigbee4512728Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512729 {
pub action: Zigbee4512729Action,
pub battery: f64,
pub linkquality: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512733 {
pub brightness: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee4512733Poweronbehavior,
#[serde(deserialize_with = "zigbee4512733_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee4512733_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512735 {
pub linkquality: f64,
#[serde(deserialize_with = "zigbee4512735_state_l1_deserializer")]
pub state_l1: bool,
#[serde(deserialize_with = "zigbee4512735_state_l2_deserializer")]
pub state_l2: bool,
#[serde(deserialize_with = "zigbee4512735_state_l3_deserializer")]
pub state_l3: bool,
#[serde(deserialize_with = "zigbee4512735_state_l4_deserializer")]
pub state_l4: bool,
#[serde(deserialize_with = "zigbee4512735_state_l5_deserializer")]
pub state_l5: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee4512735_state_l1_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
fn zigbee4512735_state_l2_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
fn zigbee4512735_state_l3_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
fn zigbee4512735_state_l4_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
fn zigbee4512735_state_l5_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee45127374512738 {
pub alarm_airtemp_overvalue: f64,
#[serde(deserialize_with = "zigbee45127374512738_away_mode_deserializer")]
pub away_mode: bool,
pub button_vibration_level: Zigbee45127374512738Buttonvibrationlevel,
#[serde(deserialize_with = "zigbee45127374512738_child_lock_deserializer")]
pub child_lock: bool,
pub current: f64,
pub display_auto_off_enabled: Zigbee45127374512738Displayautooffenabled,
pub dry_time: f64,
pub energy: f64,
pub floor_sensor_calibration: f64,
pub floor_sensor_type: Zigbee45127374512738Floorsensortype,
pub hysterersis: f64,
pub lcd_brightness: Zigbee45127374512738Lcdbrightness,
pub linkquality: f64,
pub local_temperature: f64,
pub local_temperature_calibration: f64,
pub mode_after_dry: Zigbee45127374512738Modeafterdry,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature: f64,
pub power: f64,
pub powerup_status: Zigbee45127374512738Powerupstatus,
pub running_state: Zigbee45127374512738Runningstate,
pub sensor: Zigbee45127374512738Sensor,
pub system_mode: Zigbee45127374512738Systemmode,
pub temperature_display: Zigbee45127374512738Temperaturedisplay,
pub voltage: f64,
pub window_open_check: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee45127374512738_away_mode_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
fn zigbee45127374512738_child_lock_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"LOCK" => Ok(true),
"UNLOCK" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either LOCK or UNLOCK",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512747 {
pub linkquality: f64,
pub position: f64,
pub state: Zigbee4512747State,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee4512749 {
pub current: f64,
pub linkquality: f64,
pub power: f64,
pub power_on_behavior: Zigbee4512749Poweronbehavior,
#[serde(deserialize_with = "zigbee4512749_state_deserializer")]
pub state: bool,
pub temperature: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee4512749_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee540139x {
#[serde(deserialize_with = "zigbee540139x_child_lock_deserializer")]
pub child_lock: bool,
pub current: f64,
pub display_auto_off: Zigbee540139xDisplayautooff,
pub display_brightnesss: f64,
pub energy: f64,
pub hysterersis: f64,
pub linkquality: f64,
pub local_temperature: f64,
pub local_temperature_calibration: f64,
pub occupied_heating_setpoint: f64,
pub power: f64,
pub power_up_status: Zigbee540139xPowerupstatus,
pub running_state: Zigbee540139xRunningstate,
pub system_mode: Zigbee540139xSystemmode,
pub voltage: f64,
pub window_open_check: Zigbee540139xWindowopencheck,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee540139x_child_lock_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"LOCK" => Ok(true),
"UNLOCK" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either LOCK or UNLOCK",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct Zigbee89665 {
pub brightness: f64,
pub color_temp: f64,
pub color_temp_startup: f64,
pub linkquality: f64,
pub power_on_behavior: Zigbee89665Poweronbehavior,
#[serde(deserialize_with = "zigbee89665_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbee89665_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"ON" => Ok(true),
"OFF" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either ON or OFF",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee1402755Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3308431Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802960Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802961Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802962Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802963Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802964Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802965Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802966Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802967Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee3802968Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512700Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512701Action {
#[serde(rename = "brightness_move_down")]
BrightnessMoveDown,
#[serde(rename = "brightness_move_up")]
BrightnessMoveUp,
#[serde(rename = "brightness_stop")]
BrightnessStop,
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512702Action {
#[serde(rename = "brightness_move_down")]
BrightnessMoveDown,
#[serde(rename = "brightness_move_up")]
BrightnessMoveUp,
#[serde(rename = "brightness_step_down")]
BrightnessStepDown,
#[serde(rename = "brightness_step_up")]
BrightnessStepUp,
#[serde(rename = "brightness_stop")]
BrightnessStop,
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512703Action {
#[serde(rename = "brightness_move_down_l1")]
BrightnessMoveDownL1,
#[serde(rename = "brightness_move_down_l2")]
BrightnessMoveDownL2,
#[serde(rename = "brightness_move_down_l3")]
BrightnessMoveDownL3,
#[serde(rename = "brightness_move_down_l4")]
BrightnessMoveDownL4,
#[serde(rename = "brightness_move_up_l1")]
BrightnessMoveUpL1,
#[serde(rename = "brightness_move_up_l2")]
BrightnessMoveUpL2,
#[serde(rename = "brightness_move_up_l3")]
BrightnessMoveUpL3,
#[serde(rename = "brightness_move_up_l4")]
BrightnessMoveUpL4,
#[serde(rename = "brightness_stop_l1")]
BrightnessStopL1,
#[serde(rename = "brightness_stop_l2")]
BrightnessStopL2,
#[serde(rename = "brightness_stop_l3")]
BrightnessStopL3,
#[serde(rename = "brightness_stop_l4")]
BrightnessStopL4,
#[serde(rename = "off_l1")]
OffL1,
#[serde(rename = "off_l2")]
OffL2,
#[serde(rename = "off_l3")]
OffL3,
#[serde(rename = "off_l4")]
OffL4,
#[serde(rename = "on_l1")]
OnL1,
#[serde(rename = "on_l2")]
OnL2,
#[serde(rename = "on_l3")]
OnL3,
#[serde(rename = "on_l4")]
OnL4,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512704Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512705Action {
#[serde(rename = "brightness_move_down_l1")]
BrightnessMoveDownL1,
#[serde(rename = "brightness_move_down_l2")]
BrightnessMoveDownL2,
#[serde(rename = "brightness_move_down_l3")]
BrightnessMoveDownL3,
#[serde(rename = "brightness_move_down_l4")]
BrightnessMoveDownL4,
#[serde(rename = "brightness_move_up_l1")]
BrightnessMoveUpL1,
#[serde(rename = "brightness_move_up_l2")]
BrightnessMoveUpL2,
#[serde(rename = "brightness_move_up_l3")]
BrightnessMoveUpL3,
#[serde(rename = "brightness_move_up_l4")]
BrightnessMoveUpL4,
#[serde(rename = "brightness_stop_l1")]
BrightnessStopL1,
#[serde(rename = "brightness_stop_l2")]
BrightnessStopL2,
#[serde(rename = "brightness_stop_l3")]
BrightnessStopL3,
#[serde(rename = "brightness_stop_l4")]
BrightnessStopL4,
#[serde(rename = "off_l1")]
OffL1,
#[serde(rename = "off_l2")]
OffL2,
#[serde(rename = "off_l3")]
OffL3,
#[serde(rename = "off_l4")]
OffL4,
#[serde(rename = "on_l1")]
OnL1,
#[serde(rename = "on_l2")]
OnL2,
#[serde(rename = "on_l3")]
OnL3,
#[serde(rename = "on_l4")]
OnL4,
#[serde(rename = "recall_*")]
Recall,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512706Action {
#[serde(rename = "brightness_step_down")]
BrightnessStepDown,
#[serde(rename = "brightness_step_up")]
BrightnessStepUp,
#[serde(rename = "color_temperature_move")]
ColorTemperatureMove,
#[serde(rename = "color_temperature_step_down")]
ColorTemperatureStepDown,
#[serde(rename = "color_temperature_step_up")]
ColorTemperatureStepUp,
#[serde(rename = "move_to_hue_l1")]
MoveToHueL1,
#[serde(rename = "move_to_hue_l2")]
MoveToHueL2,
#[serde(rename = "move_to_hue_l3")]
MoveToHueL3,
#[serde(rename = "move_to_hue_l4")]
MoveToHueL4,
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "recall_*")]
Recall,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512708Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512719Action {
#[serde(rename = "brightness_move_down_l1")]
BrightnessMoveDownL1,
#[serde(rename = "brightness_move_down_l2")]
BrightnessMoveDownL2,
#[serde(rename = "brightness_move_up_l1")]
BrightnessMoveUpL1,
#[serde(rename = "brightness_move_up_l2")]
BrightnessMoveUpL2,
#[serde(rename = "brightness_stop_l1")]
BrightnessStopL1,
#[serde(rename = "brightness_stop_l2")]
BrightnessStopL2,
#[serde(rename = "off_l1")]
OffL1,
#[serde(rename = "off_l2")]
OffL2,
#[serde(rename = "on_l1")]
OnL1,
#[serde(rename = "on_l2")]
OnL2,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512721Action {
#[serde(rename = "brightness_move_down_l1")]
BrightnessMoveDownL1,
#[serde(rename = "brightness_move_down_l2")]
BrightnessMoveDownL2,
#[serde(rename = "brightness_move_down_l3")]
BrightnessMoveDownL3,
#[serde(rename = "brightness_move_down_l4")]
BrightnessMoveDownL4,
#[serde(rename = "brightness_move_up_l1")]
BrightnessMoveUpL1,
#[serde(rename = "brightness_move_up_l2")]
BrightnessMoveUpL2,
#[serde(rename = "brightness_move_up_l3")]
BrightnessMoveUpL3,
#[serde(rename = "brightness_move_up_l4")]
BrightnessMoveUpL4,
#[serde(rename = "brightness_stop_l1")]
BrightnessStopL1,
#[serde(rename = "brightness_stop_l2")]
BrightnessStopL2,
#[serde(rename = "brightness_stop_l3")]
BrightnessStopL3,
#[serde(rename = "brightness_stop_l4")]
BrightnessStopL4,
#[serde(rename = "off_l1")]
OffL1,
#[serde(rename = "off_l2")]
OffL2,
#[serde(rename = "off_l3")]
OffL3,
#[serde(rename = "off_l4")]
OffL4,
#[serde(rename = "on_l1")]
OnL1,
#[serde(rename = "on_l2")]
OnL2,
#[serde(rename = "on_l3")]
OnL3,
#[serde(rename = "on_l4")]
OnL4,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512726Action {
#[serde(rename = "brightness_move_to_level")]
BrightnessMoveToLevel,
#[serde(rename = "color_temperature_move")]
ColorTemperatureMove,
#[serde(rename = "move_to_hue")]
MoveToHue,
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512728Action {
#[serde(rename = "brightness_move_down")]
BrightnessMoveDown,
#[serde(rename = "brightness_move_up")]
BrightnessMoveUp,
#[serde(rename = "brightness_stop")]
BrightnessStop,
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512729Action {
#[serde(rename = "brightness_move_down_l1")]
BrightnessMoveDownL1,
#[serde(rename = "brightness_move_down_l2")]
BrightnessMoveDownL2,
#[serde(rename = "brightness_move_up_l1")]
BrightnessMoveUpL1,
#[serde(rename = "brightness_move_up_l2")]
BrightnessMoveUpL2,
#[serde(rename = "brightness_stop_l1")]
BrightnessStopL1,
#[serde(rename = "brightness_stop_l2")]
BrightnessStopL2,
#[serde(rename = "off_l1")]
OffL1,
#[serde(rename = "off_l2")]
OffL2,
#[serde(rename = "on_l1")]
OnL1,
#[serde(rename = "on_l2")]
OnL2,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512733Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Buttonvibrationlevel {
#[serde(rename = "high")]
High,
#[serde(rename = "low")]
Low,
#[serde(rename = "off")]
Off,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Displayautooffenabled {
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "enabled")]
Enabled,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Floorsensortype {
#[serde(rename = "100k")]
Number100k,
#[serde(rename = "10k")]
Number10k,
#[serde(rename = "12k")]
Number12k,
#[serde(rename = "15k")]
Number15k,
#[serde(rename = "50k")]
Number50k,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Lcdbrightness {
#[serde(rename = "high")]
High,
#[serde(rename = "low")]
Low,
#[serde(rename = "mid")]
Mid,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Modeafterdry {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "away")]
Away,
#[serde(rename = "manual")]
Manual,
#[serde(rename = "off")]
Off,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Powerupstatus {
#[serde(rename = "default")]
Default,
#[serde(rename = "last_status")]
LastStatus,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Runningstate {
#[serde(rename = "heat")]
Heat,
#[serde(rename = "idle")]
Idle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Sensor {
#[serde(rename = "air")]
Air,
#[serde(rename = "both")]
Both,
#[serde(rename = "floor")]
Floor,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Systemmode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "dry")]
Dry,
#[serde(rename = "heat")]
Heat,
#[serde(rename = "off")]
Off,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee45127374512738Temperaturedisplay {
#[serde(rename = "floor")]
Floor,
#[serde(rename = "room")]
Room,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512747State {
#[serde(rename = "CLOSE")]
Close,
#[serde(rename = "OPEN")]
Open,
#[serde(rename = "STOP")]
Stop,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee4512749Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee540139xDisplayautooff {
#[serde(rename = "activated")]
Activated,
#[serde(rename = "deactivated")]
Deactivated,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee540139xPowerupstatus {
#[serde(rename = "last_state")]
LastState,
#[serde(rename = "manual")]
Manual,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee540139xRunningstate {
#[serde(rename = "heat")]
Heat,
#[serde(rename = "idle")]
Idle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee540139xSystemmode {
#[serde(rename = "heat")]
Heat,
#[serde(rename = "off")]
Off,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee540139xWindowopencheck {
#[serde(rename = "disable")]
Disable,
#[serde(rename = "enable")]
Enable,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum Zigbee89665Poweronbehavior {
#[serde(rename = "off")]
Off,
#[serde(rename = "on")]
On,
#[serde(rename = "previous")]
Previous,
#[serde(rename = "toggle")]
Toggle,
}
#[cfg(all(feature = "last_seen_epoch", feature = "last_seen_iso_8601"))]
compile_error!{"Feature last_seen epoch and iso_8601 are mutually exclusive and cannot be enabled together.
This was done because it is a global setting in zigbee2mqtt and therefor can't see a reason both would be enabled.
If you have a any reason to have both ways enabled please submit an issue to https://gitlab.com/seam345/zigbee2mqtt-types/-/issues"}