use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
pub enum TemperatureUnit {
#[default]
Celsius,
Fahrenheit,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[repr(u8)]
pub enum SetPointStatus {
FollowingSchedule = 0,
ManualOverride = 2,
}
impl From<u8> for SetPointStatus {
fn from(value: u8) -> Self {
match value {
0 => Self::FollowingSchedule,
2 => Self::ManualOverride,
_ => Self::FollowingSchedule, }
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[repr(u8)]
pub enum QuickAction {
Economy = 0,
Away = 1,
DayOff = 2,
Custom = 3,
HeatingOff = 4,
Auto = 255,
}
impl From<u8> for QuickAction {
fn from(value: u8) -> Self {
match value {
0 => Self::Economy,
1 => Self::Away,
2 => Self::DayOff,
3 => Self::Custom,
4 => Self::HeatingOff,
_ => Self::Auto,
}
}
}
impl std::fmt::Display for QuickAction {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Economy => write!(f, "Economy"),
Self::Away => write!(f, "Away"),
Self::DayOff => write!(f, "Day Off"),
Self::Custom => write!(f, "Custom"),
Self::HeatingOff => write!(f, "Heating Off"),
Self::Auto => write!(f, "Auto"),
}
}
}