climate.py 914 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. """Representation of climate-related constants."""
  2. from enum import Enum
  3. class ClimateMode(Enum):
  4. """Climate Modes."""
  5. OFF = 0
  6. HEAT = 1
  7. COOL = 2
  8. HEAT_COOL = 3
  9. AUTO = 4
  10. DRY = 5
  11. FAN_ONLY = 6
  12. class ClimateAction(Enum):
  13. """Climate Actions."""
  14. OFF = 0
  15. IDLE = 1
  16. HEATING = 2
  17. class SmartThermostatRadiatorMode(Enum):
  18. """Smart Thermostat Radiator Modes."""
  19. SCHEDULE = 0
  20. MANUAL = 1
  21. OFF = 2
  22. ECONOMIC = 3
  23. COMFORT = 4
  24. FAST_HEATING = 5
  25. @property
  26. def lname(self) -> str:
  27. return self.name.lower()
  28. @classmethod
  29. def get_modes(cls) -> list[str]:
  30. return [mode.lname for mode in cls]
  31. @classmethod
  32. def get_mode_name(cls, mode_value: int) -> str:
  33. return cls(mode_value).lname
  34. @classmethod
  35. def get_valid_modes(cls) -> list[str]:
  36. return [mode.lname for mode in cls if mode != cls.OFF]