1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
"""constant for SwitchBot API."""
from __future__ import annotations
from enum import Enum, StrEnum
class PowerState(Enum):
"""Power state."""
ON = "on"
OFF = "off"
class BatteryCirculatorFanMode(StrEnum):
"""Fan mode types [Battery Circulator Fan] API."""
DIRECT = "direct"
NATURAL = "natural"
SLEEP = "sleep"
BABY = "baby"
class VacuumFanSpeed(StrEnum):
"""Fan options for VacuumCommands supported devices."""
VACUUM_FAN_SPEED_QUIET = "0"
VACUUM_FAN_SPEED_STANDARD = "1"
VACUUM_FAN_SPEED_STRONG = "2"
VACUUM_FAN_SPEED_MAX = "3"
class VacuumFanSpeedV2(StrEnum):
"""Fan options for VacuumV2Commands & VacuumV3Commands supported devices."""
VACUUM_FAN_SPEED_QUIET = "1"
VACUUM_FAN_SPEED_STANDARD = "2"
VACUUM_FAN_SPEED_STRONG = "3"
VACUUM_FAN_SPEED_MAX = "4"
class VacuumCleanMode(StrEnum):
"""Clean mode for Vacuum."""
SWEEP = "sweep"
MOP = "mop"
SWEEP_MOP = "sweep_mop"
class SmartRadiatorThermostatMode(Enum):
"""mode for Smart Radiator Thermostat ."""
SCHEDULE = 0
MANUAL = 1
OFF = 2
ENERGY_SAVING = 3
COMFORT = 4
FAST_HEATING = 5
@classmethod
def get_all_modes(cls) -> list[SmartRadiatorThermostatMode]:
"""Get all modes as a list."""
return [
cls.SCHEDULE,
cls.MANUAL,
cls.OFF,
cls.ENERGY_SAVING,
cls.COMFORT,
cls.FAST_HEATING,
]
class BatteryLevel(Enum):
"""Battery Level modes."""
High = "high"
Medium = "medium"
Low = "low"
Critical = "critical"
Unknown = "unknown"
@classmethod
def get_battery_level(cls, value: int) -> BatteryLevel:
"""Return a battery level."""
if 100 >= value >= 60:
return cls.High
if 60 > value >= 20:
return cls.Medium
if 20 > value >= 10:
return cls.Low
if 10 > value >= 0:
return cls.Critical
return cls.Unknown
|