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
|
"""Thermostat request builder"""
from __future__ import annotations
from typing import Optional
from pydantic import BaseModel
from .client_request import ClientRequest
class ThermostatState(BaseModel):
"""Thermostat State."""
lowTemp: Optional[float] = None
highTemp: Optional[float] = None
mode: Optional[str] = None
fan: Optional[str] = None
sche: Optional[str] = None
class ThermostatRequestBuilder: # pylint: disable=too-few-public-methods
"""Thermostat request builder"""
@classmethod
def set_state_request(cls, state: ThermostatState) -> ClientRequest:
"""Set device state."""
return ClientRequest("setState", state.dict(exclude_none=True))
@classmethod
def set_eco_request(cls, state: str) -> ClientRequest:
"""Enable/Disable eco mode."""
return ClientRequest("setECO", {"mode": state})
|