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 ZigbeeDm2500zb {
pub brightness: f64,
pub led_intensity_off: f64,
pub led_intensity_on: f64,
pub linkquality: f64,
pub minimum_brightness: f64,
#[serde(deserialize_with = "zigbeedm2500zb_state_deserializer")]
pub state: bool,
pub timer_seconds: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeedm2500zb_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 ZigbeeDm2550zb {
pub brightness: f64,
pub led_intensity_off: f64,
pub led_intensity_on: f64,
pub linkquality: f64,
pub minimum_brightness: f64,
#[serde(deserialize_with = "zigbeedm2550zb_state_deserializer")]
pub state: bool,
pub timer_seconds: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeedm2550zb_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 ZigbeeRm3250zb {
pub current: f64,
pub energy: f64,
pub linkquality: f64,
pub power: f64,
#[serde(deserialize_with = "zigbeerm3250zb_state_deserializer")]
pub state: bool,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeerm3250zb_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 ZigbeeRm3500zb {
pub current: f64,
pub energy: f64,
pub linkquality: f64,
pub power: f64,
#[serde(deserialize_with = "zigbeerm3500zb_state_deserializer")]
pub state: bool,
pub temperature: f64,
pub voltage: f64,
pub water_leak: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeerm3500zb_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 ZigbeeSp2600zb {
pub current: f64,
pub energy: f64,
pub linkquality: f64,
pub power: f64,
#[serde(deserialize_with = "zigbeesp2600zb_state_deserializer")]
pub state: bool,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesp2600zb_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 ZigbeeSp2610zb {
pub current: f64,
pub energy: f64,
pub linkquality: f64,
pub power: f64,
#[serde(deserialize_with = "zigbeesp2610zb_state_deserializer")]
pub state: bool,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesp2610zb_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 ZigbeeSw2500zb {
pub action: ZigbeeSw2500zbAction,
pub connected_load: f64,
pub energy: f64,
pub keypad_lockout: ZigbeeSw2500zbKeypadlockout,
pub led_intensity_off: f64,
pub led_intensity_on: f64,
pub linkquality: f64,
#[serde(deserialize_with = "zigbeesw2500zb_state_deserializer")]
pub state: bool,
pub timer_seconds: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesw2500zb_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 ZigbeeTh1123zb {
pub backlight_auto_dim: ZigbeeTh1123zbBacklightautodim,
pub current: f64,
#[serde(deserialize_with = "zigbeeth1123zb_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub energy: f64,
pub keypad_lockout: ZigbeeTh1123zbKeypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub main_cycle_output: ZigbeeTh1123zbMaincycleoutput,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
pub power: f64,
pub running_state: ZigbeeTh1123zbRunningstate,
pub second_display_mode: ZigbeeTh1123zbSeconddisplaymode,
pub system_mode: ZigbeeTh1123zbSystemmode,
pub temperature_display_mode: ZigbeeTh1123zbTemperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1123zbThermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1123zbTimeformat,
pub unoccupied_heating_setpoint: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1123zb_enable_outdoor_temperature_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 ZigbeeTh1123zbDg2 {
pub backlight_auto_dim: ZigbeeTh1123zbDg2Backlightautodim,
pub current: f64,
#[serde(deserialize_with = "zigbeeth1123zbdg2_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub energy: f64,
pub keypad_lockout: ZigbeeTh1123zbDg2Keypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub main_cycle_output: ZigbeeTh1123zbDg2Maincycleoutput,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
pub power: f64,
pub running_state: ZigbeeTh1123zbDg2Runningstate,
pub second_display_mode: ZigbeeTh1123zbDg2Seconddisplaymode,
pub system_mode: ZigbeeTh1123zbDg2Systemmode,
pub temperature_display_mode: ZigbeeTh1123zbDg2Temperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1123zbDg2Thermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1123zbDg2Timeformat,
pub unoccupied_heating_setpoint: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1123zbdg2_enable_outdoor_temperature_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 ZigbeeTh1124zb {
pub backlight_auto_dim: ZigbeeTh1124zbBacklightautodim,
pub current: f64,
#[serde(deserialize_with = "zigbeeth1124zb_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub energy: f64,
pub keypad_lockout: ZigbeeTh1124zbKeypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub main_cycle_output: ZigbeeTh1124zbMaincycleoutput,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
pub power: f64,
pub running_state: ZigbeeTh1124zbRunningstate,
pub second_display_mode: ZigbeeTh1124zbSeconddisplaymode,
pub system_mode: ZigbeeTh1124zbSystemmode,
pub temperature_display_mode: ZigbeeTh1124zbTemperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1124zbThermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1124zbTimeformat,
pub unoccupied_heating_setpoint: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1124zb_enable_outdoor_temperature_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 ZigbeeTh1124zbDg2 {
pub backlight_auto_dim: ZigbeeTh1124zbDg2Backlightautodim,
pub current: f64,
#[serde(deserialize_with = "zigbeeth1124zbdg2_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub energy: f64,
pub keypad_lockout: ZigbeeTh1124zbDg2Keypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub main_cycle_output: ZigbeeTh1124zbDg2Maincycleoutput,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
pub power: f64,
pub running_state: ZigbeeTh1124zbDg2Runningstate,
pub second_display_mode: ZigbeeTh1124zbDg2Seconddisplaymode,
pub system_mode: ZigbeeTh1124zbDg2Systemmode,
pub temperature_display_mode: ZigbeeTh1124zbDg2Temperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1124zbDg2Thermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1124zbDg2Timeformat,
pub unoccupied_heating_setpoint: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1124zbdg2_enable_outdoor_temperature_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 ZigbeeTh1300zb {
pub backlight_auto_dim: ZigbeeTh1300zbBacklightautodim,
pub current: f64,
#[serde(deserialize_with = "zigbeeth1300zb_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub energy: f64,
pub keypad_lockout: ZigbeeTh1300zbKeypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
pub power: f64,
pub running_state: ZigbeeTh1300zbRunningstate,
pub second_display_mode: ZigbeeTh1300zbSeconddisplaymode,
pub system_mode: ZigbeeTh1300zbSystemmode,
pub temperature_display_mode: ZigbeeTh1300zbTemperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1300zbThermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1300zbTimeformat,
pub unoccupied_heating_setpoint: f64,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1300zb_enable_outdoor_temperature_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 ZigbeeTh1400zb {
pub ambiant_max_heat_setpoint: f64,
pub aux_connected_load: f64,
pub aux_cycle_output: ZigbeeTh1400zbAuxcycleoutput,
pub backlight_auto_dim: ZigbeeTh1400zbBacklightautodim,
pub connected_load: f64,
#[serde(deserialize_with = "zigbeeth1400zb_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub floor_control_mode: ZigbeeTh1400zbFloorcontrolmode,
pub floor_max_heat_setpoint: f64,
pub floor_min_heat_setpoint: f64,
pub floor_temperature_sensor: ZigbeeTh1400zbFloortemperaturesensor,
pub keypad_lockout: ZigbeeTh1400zbKeypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub main_cycle_output: ZigbeeTh1400zbMaincycleoutput,
pub max_heat_setpoint_limit: f64,
pub min_heat_setpoint_limit: f64,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
#[serde(deserialize_with = "zigbeeth1400zb_pump_protection_deserializer")]
pub pump_protection: bool,
pub running_state: ZigbeeTh1400zbRunningstate,
pub second_display_mode: ZigbeeTh1400zbSeconddisplaymode,
pub system_mode: ZigbeeTh1400zbSystemmode,
pub temperature_display_mode: ZigbeeTh1400zbTemperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1400zbThermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1400zbTimeformat,
pub unoccupied_heating_setpoint: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1400zb_enable_outdoor_temperature_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 zigbeeth1400zb_pump_protection_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 ZigbeeTh1500zb {
pub backlight_auto_dim: ZigbeeTh1500zbBacklightautodim,
#[serde(deserialize_with = "zigbeeth1500zb_enable_outdoor_temperature_deserializer")]
pub enable_outdoor_temperature: bool,
pub keypad_lockout: ZigbeeTh1500zbKeypadlockout,
pub linkquality: f64,
pub local_temperature: f64,
pub occupied_heating_setpoint: f64,
pub outdoor_temperature_timeout: f64,
pub pi_heating_demand: f64,
pub running_state: ZigbeeTh1500zbRunningstate,
pub second_display_mode: ZigbeeTh1500zbSeconddisplaymode,
pub system_mode: ZigbeeTh1500zbSystemmode,
pub temperature_display_mode: ZigbeeTh1500zbTemperaturedisplaymode,
pub thermostat_occupancy: ZigbeeTh1500zbThermostatoccupancy,
pub thermostat_outdoor_temperature: f64,
pub time_format: ZigbeeTh1500zbTimeformat,
pub unoccupied_heating_setpoint: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeth1500zb_enable_outdoor_temperature_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 ZigbeeVa4200wz {
pub battery: f64,
pub battery_low: bool,
pub linkquality: f64,
pub position: f64,
#[serde(deserialize_with = "zigbeeva4200wz_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeva4200wz_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"OPEN" => Ok(true),
"CLOSE" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either OPEN or CLOSE",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct ZigbeeVa4201wz {
pub battery: f64,
pub battery_low: bool,
pub linkquality: f64,
pub position: f64,
#[serde(deserialize_with = "zigbeeva4201wz_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeva4201wz_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"OPEN" => Ok(true),
"CLOSE" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either OPEN or CLOSE",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct ZigbeeVa4220zb {
pub battery: f64,
pub battery_low: bool,
pub linkquality: f64,
pub position: f64,
#[serde(deserialize_with = "zigbeeva4220zb_state_deserializer")]
pub state: bool,
pub voltage: f64,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeva4220zb_state_deserializer<'de, D>(deserializer: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
match String::deserialize(deserializer)?.as_ref() {
"OPEN" => Ok(true),
"CLOSE" => Ok(false),
other => Err(de::Error::invalid_value(
Unexpected::Str(other),
&"Value expected was either OPEN or CLOSE",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct ZigbeeWl4200 {
pub battery: f64,
pub battery_low: bool,
pub linkquality: f64,
pub temperature: f64,
pub water_leak: bool,
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 ZigbeeWl4200s {
pub battery: f64,
pub battery_low: bool,
pub linkquality: f64,
pub temperature: f64,
pub water_leak: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSw2500zbAction {
#[serde(rename = "down_double")]
DownDouble,
#[serde(rename = "down_hold")]
DownHold,
#[serde(rename = "down_single")]
DownSingle,
#[serde(rename = "up_double")]
UpDouble,
#[serde(rename = "up_hold")]
UpHold,
#[serde(rename = "up_single")]
UpSingle,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSw2500zbKeypadlockout {
#[serde(rename = "lock")]
Lock,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbBacklightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Backlightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Keypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Maincycleoutput {
#[serde(rename = "15_min")]
Number15Min,
#[serde(rename = "15_sec")]
Number15Sec,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Runningstate {
#[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 ZigbeeTh1123zbDg2Seconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Systemmode {
#[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 ZigbeeTh1123zbDg2Temperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Thermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbDg2Timeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbKeypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbMaincycleoutput {
#[serde(rename = "15_min")]
Number15Min,
#[serde(rename = "15_sec")]
Number15Sec,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbRunningstate {
#[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 ZigbeeTh1123zbSeconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbSystemmode {
#[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 ZigbeeTh1123zbTemperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbThermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1123zbTimeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbBacklightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Backlightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Keypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Maincycleoutput {
#[serde(rename = "15_min")]
Number15Min,
#[serde(rename = "15_sec")]
Number15Sec,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Runningstate {
#[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 ZigbeeTh1124zbDg2Seconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Systemmode {
#[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 ZigbeeTh1124zbDg2Temperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Thermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbDg2Timeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbKeypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbMaincycleoutput {
#[serde(rename = "15_min")]
Number15Min,
#[serde(rename = "15_sec")]
Number15Sec,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbRunningstate {
#[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 ZigbeeTh1124zbSeconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbSystemmode {
#[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 ZigbeeTh1124zbTemperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbThermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1124zbTimeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1300zbBacklightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1300zbKeypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1300zbRunningstate {
#[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 ZigbeeTh1300zbSeconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1300zbSystemmode {
#[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 ZigbeeTh1300zbTemperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1300zbThermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1300zbTimeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbAuxcycleoutput {
#[serde(rename = "10_min")]
Number10Min,
#[serde(rename = "15_min")]
Number15Min,
#[serde(rename = "15_sec")]
Number15Sec,
#[serde(rename = "20_min")]
Number20Min,
#[serde(rename = "30_min")]
Number30Min,
#[serde(rename = "5_min")]
Number5Min,
#[serde(rename = "off")]
Off,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbBacklightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbFloorcontrolmode {
#[serde(rename = "ambiant")]
Ambiant,
#[serde(rename = "floor")]
Floor,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbFloortemperaturesensor {
#[serde(rename = "10k")]
Number10k,
#[serde(rename = "12k")]
Number12k,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbKeypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbMaincycleoutput {
#[serde(rename = "10_min")]
Number10Min,
#[serde(rename = "15_min")]
Number15Min,
#[serde(rename = "15_sec")]
Number15Sec,
#[serde(rename = "20_min")]
Number20Min,
#[serde(rename = "30_min")]
Number30Min,
#[serde(rename = "5_min")]
Number5Min,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbRunningstate {
#[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 ZigbeeTh1400zbSeconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbSystemmode {
#[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 ZigbeeTh1400zbTemperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbThermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1400zbTimeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1500zbBacklightautodim {
#[serde(rename = "on_demand")]
OnDemand,
#[serde(rename = "sensing")]
Sensing,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1500zbKeypadlockout {
#[serde(rename = "lock1")]
Lock1,
#[serde(rename = "unlock")]
Unlock,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1500zbRunningstate {
#[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 ZigbeeTh1500zbSeconddisplaymode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "outdoor temp")]
Outdoortemp,
#[serde(rename = "setpoint")]
Setpoint,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1500zbSystemmode {
#[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 ZigbeeTh1500zbTemperaturedisplaymode {
#[serde(rename = "celsius")]
Celsius,
#[serde(rename = "fahrenheit")]
Fahrenheit,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1500zbThermostatoccupancy {
#[serde(rename = "occupied")]
Occupied,
#[serde(rename = "unoccupied")]
Unoccupied,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeTh1500zbTimeformat {
#[serde(rename = "12h")]
Number12h,
#[serde(rename = "24h")]
Number24h,
}
#[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"}