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 ZigbeeBsmD300zb {
pub action: ZigbeeBsmD300zbAction,
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 ZigbeeCsmD300zbUv2 {
pub battery: f64,
pub linkquality: f64,
pub people: f64,
pub status: ZigbeeCsmD300zbUv2Status,
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 ZigbeeDlmD300z {
pub action: ZigbeeDlmD300zAction,
pub action_source_name: ZigbeeDlmD300zActionsourcename,
pub action_user: f64,
pub battery: f64,
pub door_state: ZigbeeDlmD300zDoorstate,
pub linkquality: f64,
pub lock_state: ZigbeeDlmD300zLockstate,
#[serde(deserialize_with = "zigbeedlmd300z_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeedlmd300z_state_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 ZigbeeDmsD300zb {
pub battery: f64,
pub linkquality: f64,
pub occupancy_and: bool,
pub occupancy_in: bool,
pub occupancy_or: bool,
pub occupancy_out: bool,
pub occupancy_timeout: 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 ZigbeeDsmD300zb {
pub battery: f64,
pub contact: bool,
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 ZigbeeIsm300z3 {
pub linkquality: f64,
pub operation_mode: ZigbeeIsm300z3Operationmode,
#[serde(deserialize_with = "zigbeeism300z3_state_l1_deserializer")]
pub state_l1: bool,
#[serde(deserialize_with = "zigbeeism300z3_state_l2_deserializer")]
pub state_l2: bool,
#[serde(deserialize_with = "zigbeeism300z3_state_l3_deserializer")]
pub state_l3: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeeism300z3_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 zigbeeism300z3_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 zigbeeism300z3_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",
)),
}
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize)]
pub struct ZigbeeMsmD300zb {
pub action: ZigbeeMsmD300zbAction,
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 ZigbeePmmD300z1 {
pub energy: f64,
pub linkquality: f64,
pub power: 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 ZigbeePmmD300z2 {
pub ac_frequency: f64,
pub current: f64,
pub energy: f64,
pub linkquality: f64,
pub power: f64,
pub power_factor: f64,
pub temperature: 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 ZigbeePmmD300z3 {
pub ac_frequency: f64,
pub current: f64,
pub energy: f64,
pub linkquality: f64,
pub power: f64,
pub power_factor: f64,
pub temperature: 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 ZigbeeSbm300z1 {
pub linkquality: f64,
pub power_on_behavior: ZigbeeSbm300z1Poweronbehavior,
#[serde(deserialize_with = "zigbeesbm300z1_state_deserializer")]
pub state: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesbm300z1_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 ZigbeeSbm300z2 {
pub linkquality: f64,
#[serde(deserialize_with = "zigbeesbm300z2_state_bottom_deserializer")]
pub state_bottom: bool,
#[serde(deserialize_with = "zigbeesbm300z2_state_top_deserializer")]
pub state_top: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesbm300z2_state_bottom_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 zigbeesbm300z2_state_top_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 ZigbeeSbm300z3 {
pub linkquality: f64,
#[serde(deserialize_with = "zigbeesbm300z3_state_bottom_deserializer")]
pub state_bottom: bool,
#[serde(deserialize_with = "zigbeesbm300z3_state_center_deserializer")]
pub state_center: bool,
#[serde(deserialize_with = "zigbeesbm300z3_state_top_deserializer")]
pub state_top: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesbm300z3_state_bottom_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 zigbeesbm300z3_state_center_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 zigbeesbm300z3_state_top_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 ZigbeeSbm300z4 {
pub linkquality: f64,
#[serde(deserialize_with = "zigbeesbm300z4_state_bottom_left_deserializer")]
pub state_bottom_left: bool,
#[serde(deserialize_with = "zigbeesbm300z4_state_bottom_right_deserializer")]
pub state_bottom_right: bool,
#[serde(deserialize_with = "zigbeesbm300z4_state_top_left_deserializer")]
pub state_top_left: bool,
#[serde(deserialize_with = "zigbeesbm300z4_state_top_right_deserializer")]
pub state_top_right: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesbm300z4_state_bottom_left_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 zigbeesbm300z4_state_bottom_right_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 zigbeesbm300z4_state_top_left_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 zigbeesbm300z4_state_top_right_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 ZigbeeSbm300z5 {
pub linkquality: f64,
#[serde(deserialize_with = "zigbeesbm300z5_state_bottom_left_deserializer")]
pub state_bottom_left: bool,
#[serde(deserialize_with = "zigbeesbm300z5_state_bottom_right_deserializer")]
pub state_bottom_right: bool,
#[serde(deserialize_with = "zigbeesbm300z5_state_center_left_deserializer")]
pub state_center_left: bool,
#[serde(deserialize_with = "zigbeesbm300z5_state_top_left_deserializer")]
pub state_top_left: bool,
#[serde(deserialize_with = "zigbeesbm300z5_state_top_right_deserializer")]
pub state_top_right: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesbm300z5_state_bottom_left_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 zigbeesbm300z5_state_bottom_right_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 zigbeesbm300z5_state_center_left_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 zigbeesbm300z5_state_top_left_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 zigbeesbm300z5_state_top_right_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 ZigbeeSbm300z6 {
pub linkquality: f64,
#[serde(deserialize_with = "zigbeesbm300z6_state_bottom_left_deserializer")]
pub state_bottom_left: bool,
#[serde(deserialize_with = "zigbeesbm300z6_state_bottom_right_deserializer")]
pub state_bottom_right: bool,
#[serde(deserialize_with = "zigbeesbm300z6_state_center_left_deserializer")]
pub state_center_left: bool,
#[serde(deserialize_with = "zigbeesbm300z6_state_center_right_deserializer")]
pub state_center_right: bool,
#[serde(deserialize_with = "zigbeesbm300z6_state_top_left_deserializer")]
pub state_top_left: bool,
#[serde(deserialize_with = "zigbeesbm300z6_state_top_right_deserializer")]
pub state_top_right: bool,
pub last_seen: Option<LastSeen>,
pub elapsed: Option<u64>,
}
fn zigbeesbm300z6_state_bottom_left_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 zigbeesbm300z6_state_bottom_right_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 zigbeesbm300z6_state_center_left_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 zigbeesbm300z6_state_center_right_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 zigbeesbm300z6_state_top_left_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 zigbeesbm300z6_state_top_right_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 ZigbeeSbm300zb1 {
pub action: ZigbeeSbm300zb1Action,
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 ZigbeeSbm300zb2 {
pub action: ZigbeeSbm300zb2Action,
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 ZigbeeSbm300zb3 {
pub action: ZigbeeSbm300zb3Action,
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 ZigbeeSbm300zb4 {
pub action: ZigbeeSbm300zb4Action,
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 ZigbeeSbm300zc1 {
pub action: ZigbeeSbm300zc1Action,
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 ZigbeeSbm300zc2 {
pub action: ZigbeeSbm300zc2Action,
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 ZigbeeSbm300zc3 {
pub action: ZigbeeSbm300zc3Action,
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 ZigbeeSbm300zc4 {
pub action: ZigbeeSbm300zc4Action,
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 ZigbeeTsmD300zb {
pub battery: f64,
pub humidity: f64,
pub linkquality: f64,
pub temperature: 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 ZigbeeUsmD300zb {
pub battery: f64,
pub humidity: f64,
pub illuminance: f64,
pub linkquality: f64,
pub occupancy: bool,
pub temperature: 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, PartialEq)]
pub enum ZigbeeBsmD300zbAction {
#[serde(rename = "double")]
Double,
#[serde(rename = "long")]
Long,
#[serde(rename = "single")]
Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeCsmD300zbUv2Status {
#[serde(rename = "idle")]
Idle,
#[serde(rename = "in")]
In,
#[serde(rename = "out")]
Out,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeDlmD300zAction {
#[serde(rename = "auto_lock")]
AutoLock,
#[serde(rename = "key_lock")]
KeyLock,
#[serde(rename = "key_unlock")]
KeyUnlock,
#[serde(rename = "lock")]
Lock,
#[serde(rename = "lock_failure_invalid_pin_or_id")]
LockFailureInvalidPinOrId,
#[serde(rename = "lock_failure_invalid_schedule")]
LockFailureInvalidSchedule,
#[serde(rename = "manual_lock")]
ManualLock,
#[serde(rename = "manual_unlock")]
ManualUnlock,
#[serde(rename = "non_access_user_operational_event")]
NonAccessUserOperationalEvent,
#[serde(rename = "one_touch_lock")]
OneTouchLock,
#[serde(rename = "schedule_lock")]
ScheduleLock,
#[serde(rename = "schedule_unlock")]
ScheduleUnlock,
#[serde(rename = "unknown")]
Unknown,
#[serde(rename = "unlock")]
Unlock,
#[serde(rename = "unlock_failure_invalid_pin_or_id")]
UnlockFailureInvalidPinOrId,
#[serde(rename = "unlock_failure_invalid_schedule")]
UnlockFailureInvalidSchedule,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeDlmD300zActionsourcename {
#[serde(rename = "keypad")]
Keypad,
#[serde(rename = "manual")]
Manual,
#[serde(rename = "rf")]
Rf,
#[serde(rename = "rfid")]
Rfid,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeDlmD300zDoorstate {
#[serde(rename = "closed")]
Closed,
#[serde(rename = "open")]
Open,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeDlmD300zLockstate {
#[serde(rename = "locked")]
Locked,
#[serde(rename = "not_fully_locked")]
NotFullyLocked,
#[serde(rename = "unlocked")]
Unlocked,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeIsm300z3Operationmode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "latch")]
Latch,
#[serde(rename = "push")]
Push,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeMsmD300zbAction {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
#[serde(rename = "3_double")]
Number3Double,
#[serde(rename = "3_long")]
Number3Long,
#[serde(rename = "3_single")]
Number3Single,
#[serde(rename = "4_double")]
Number4Double,
#[serde(rename = "4_long")]
Number4Long,
#[serde(rename = "4_single")]
Number4Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300z1Poweronbehavior {
#[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 ZigbeeSbm300zb1Action {
#[serde(rename = "double")]
Double,
#[serde(rename = "long")]
Long,
#[serde(rename = "single")]
Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zb2Action {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zb3Action {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
#[serde(rename = "3_double")]
Number3Double,
#[serde(rename = "3_long")]
Number3Long,
#[serde(rename = "3_single")]
Number3Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zb4Action {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
#[serde(rename = "3_double")]
Number3Double,
#[serde(rename = "3_long")]
Number3Long,
#[serde(rename = "3_single")]
Number3Single,
#[serde(rename = "4_double")]
Number4Double,
#[serde(rename = "4_long")]
Number4Long,
#[serde(rename = "4_single")]
Number4Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zc1Action {
#[serde(rename = "double")]
Double,
#[serde(rename = "long")]
Long,
#[serde(rename = "single")]
Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zc2Action {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zc3Action {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
#[serde(rename = "3_double")]
Number3Double,
#[serde(rename = "3_long")]
Number3Long,
#[serde(rename = "3_single")]
Number3Single,
}
#[cfg_attr(feature = "debug", derive(Debug))]
#[cfg_attr(feature = "clone", derive(Clone))]
#[derive(Deserialize, PartialEq)]
pub enum ZigbeeSbm300zc4Action {
#[serde(rename = "1_double")]
Number1Double,
#[serde(rename = "1_long")]
Number1Long,
#[serde(rename = "1_single")]
Number1Single,
#[serde(rename = "2_double")]
Number2Double,
#[serde(rename = "2_long")]
Number2Long,
#[serde(rename = "2_single")]
Number2Single,
#[serde(rename = "3_double")]
Number3Double,
#[serde(rename = "3_long")]
Number3Long,
#[serde(rename = "3_single")]
Number3Single,
#[serde(rename = "4_double")]
Number4Double,
#[serde(rename = "4_long")]
Number4Long,
#[serde(rename = "4_single")]
Number4Single,
}
#[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"}