55from typing import TypedDict
66
77
8- @dataclass
9- class AnnaData :
10- """Plugwise Anna data."""
8+ class BaseGateway :
9+ """Plugwise Base Gateway data class."""
10+
11+ dev_class : str
12+ firmware : str
13+ location : str
14+ mac_address : str
15+ model : str
16+ name : str
17+ vendor : str
18+
19+
20+ class SmileP1Gateway (BaseGateway ):
21+ """Plugwise Smile P1 Gateway data class."""
22+
23+ binary_sensors : GatewayBinarySensors
24+ hardware : str
25+ model_id : str
26+
27+
28+ class SmartEnergyMeter :
29+ """DSMR Energy Meter data class."""
30+
31+ available : bool
32+ dev_class : str
33+ location : str
34+ model : str
35+ name : str
36+ sensors : SmartEnergySensors
37+ vendor : str
38+
39+
40+ class SmartEnergySensors (TypedDict , total = False ):
41+ """DSMR Energy Meter sensors class."""
42+ electricity_consumed_off_peak_cumulative : float
43+ electricity_consumed_off_peak_interval : int
44+ electricity_consumed_off_peak_point : int
45+ electricity_consumed_peak_cumulative : float
46+ electricity_consumed_peak_interval : int
47+ electricity_consumed_peak_point : int ,
48+ electricity_phase_one_consumed : int
49+ electricity_phase_one_produced : int
50+ electricity_phase_three_consumed : int
51+ electricity_phase_three_produced : int
52+ electricity_phase_two_consumed : int
53+ electricity_phase_two_produced : int
54+ electricity_produced_off_peak_cumulative : float
55+ electricity_produced_off_peak_interval : int
56+ electricity_produced_off_peak_point : int
57+ electricity_produced_peak_cumulative : float
58+ electricity_produced_peak_interval : int
59+ electricity_produced_peak_point : int
60+ gas_consumed_cumulative : float
61+ gas_consumed_interval : float
62+ net_electricity_cumulative :float
63+ net_electricity_point : int
64+ voltage_phase_one : float
65+ voltage_phase_three :float
66+ voltage_phase_two : float
67+
68+
69+ class StretchGateway (BaseGateway ):
70+ """Plugwise Stretch Gateway data class."""
71+
72+ zigbee_mac_address : str
73+
74+
75+ class SmileThermostatGateway (SmileP1Gateway ):
76+ """Plugwise Anna Smile-T Gateway data class."""
77+
78+ sensors : GatewaySensors
79+
80+
81+ class AdamGateway (SmileThermostatGateway ):
82+ """Plugwise Adam HA Gateway data class."""
83+
84+ gateway_modes : list [str ]
85+ regulation_modes : list [str ]
86+ select_gateway_mode : str
87+ select_regulation_mode : str
88+ zigbee_mac_address : str
89+
90+
91+ class GatewayBinarySensors
92+ """Gateway binary_sensors class."""
93+
94+ plugwise_notification : bool
95+
96+
97+ class GatewaySensors
98+ """Gateway sensors class."""
99+
100+ outdoor_temperature : float
101+
102+
103+ class AnnaData (TypedDict , total = False ):
104+ """Plugwise Anna data class."""
105+
106+ active_preset : str
107+ available_schedules : list [str ]
108+ dev_class : str
109+ firmware : str
110+ hardware : str
111+ location : str
112+ mode : str
113+ model : str
114+ model_id : str
115+ name : str
116+ preset_modes : list [str ]
117+ select_schedule : str
118+ sensors : AnnaSensors
119+ temperature_offset : SetpointDict
120+ thermostat : ThermostatDict
121+ vendor : str
122+
123+
124+ class AnnaAdamData (TypedDict , total = False ):
125+ """Plugwise Anna-connected-to-Adam data class."""
11126
12127 active_preset : str
128+ available : bool
13129 available_schedules : list [str ]
130+ control_state : str
14131 dev_class : str
15132 firmware : str
16133 hardware : str
@@ -21,7 +138,7 @@ class AnnaData:
21138 name : str
22139 preset_modes : list [str ]
23140 select_schedule : str
24- sensors : AnnaSensor
141+ sensors : AnnaSensors
25142 temperature_offset : SetpointDict
26143 thermostat : ThermostatDict
27144 vendor : str
@@ -30,16 +147,17 @@ class AnnaData:
30147class AnnaSensors (TypedDict , total = False ):
31148 """Anna sensors class."""
32149
150+ cooling_activation_outdoor_temperature : float
151+ cooling_deactivation_threshold : float
33152 illuminance : float
34153 setpoint : float
35154 setpoint_high : float
36155 setpoint_low : float
37156 temperature : float
38157
39158
40- @dataclass
41159class SetpointDict :
42- """Generic setpoint dict.
160+ """Generic setpoint dict class .
43161
44162 Used for temperature_offset, max_dhw_temperature,maximum_boiler_temperature.
45163 """
@@ -61,7 +179,7 @@ class ThermostatDict(TypedDict, total=False):
61179 upper_bound : float
62180
63181
64- class OnOffTherm ( TypedDict , total = False ) :
182+ class OnOffTherm :
65183 """On-off heater/cooler device class."""
66184
67185 binary_sensors : HeaterCentralBinarySensors
@@ -78,8 +196,8 @@ class OpenTherm(TypedDict, total=False):
78196 binary_sensors : HeaterCentralBinarySensors
79197 dev_class : str
80198 location : str
81- max_dhw_temperature : SetpointDict
82199 maximum_boiler_temperature : SetpointDict
200+ max_dhw_temperature : SetpointDict
83201 model : str
84202 model_id : str
85203 name : str
@@ -91,16 +209,20 @@ class OpenTherm(TypedDict, total=False):
91209class HeaterCentralBinarySensors (TypedDict , total = False ):
92210 """Heater-central binary_sensors class."""
93211
212+ compressor_state : bool
213+ cooling_enabled : bool
94214 cooling_state : bool
95215 dhw_state : bool
96216 flame_state : bool
97217 heating_state : bool
218+ secondary_boiler_state : bool
98219
99220
100221class HeaterCentralSensors (TypedDict , total = False ):
101222 """Heater-central sensors class."""
102223
103224 dhw_temperature : float
225+ domestic_hot_water_setpoint : float
104226 intended_boiler_temperature : float
105227 modulation_level : float
106228 outdoor_air_temperature : float
@@ -112,4 +234,136 @@ class HeaterCentralSensors(TypedDict, total=False):
112234class HeaterCentralSwitches (TypedDict , total = False ):
113235 """Heater-central switches class."""
114236
237+ cooling_ena_switch : bool
115238 dhw_cm_switch : bool
239+
240+
241+ @dataclass
242+ class LisaData (TypedDict , total = False ):
243+ """Plugwise Lisa data class."""
244+
245+ active_preset : str
246+ available : bool
247+ available_schedules : list [str ]
248+ binary_sensors : LisaBinarySensors
249+ control_state : str
250+ dev_class : str
251+ firmware : str
252+ hardware : str
253+ location : str
254+ mode : str
255+ model : str
256+ model_id : str
257+ name : str
258+ preset_modes : list [str ]
259+ select_schedule : str
260+ sensors : WirelessThermostatBinarySensors
261+ temperature_offset : SetpointDict
262+ thermostat : ThermostatDict
263+ vendor : str
264+ zigbee_mac_address : str
265+
266+
267+ class LisaSensors (TypedDict , total = False ):
268+ """Lisa sensors class."""
269+
270+ battery : int
271+ setpoint : float
272+ setpoint_high : float
273+ setpoint_low : float
274+ temperature : float
275+
276+
277+ class WirelessThermostatBinarySensors :
278+ """Lisa sensors class."""
279+
280+ low_battery : bool
281+
282+ @dataclass
283+ class TomParentData (TypedDict , total = False ):
284+ """Plugwise Lisa data class."""
285+
286+ active_preset : str
287+ available : bool
288+ available_schedules : list [str ]
289+ binary_sensors : WirelessThermostatBinarySensors
290+ control_state : str
291+ dev_class : str
292+ firmware : str
293+ hardware : str
294+ location : str
295+ mode : str
296+ model : str
297+ model_id : str
298+ name : str
299+ preset_modes : list [str ]
300+ select_schedule : str
301+ sensors : TomSensors
302+ temperature_offset : SetpointDict
303+ thermostat : ThermostatDict
304+ vendor : str
305+ zigbee_mac_address : str
306+
307+
308+ @dataclass
309+ class TomChildData (TypedDict , total = False ):
310+ """Plugwise Lisa data class."""
311+
312+ available : bool
313+ binary_sensors : WirelessThermostatBinarySensors
314+ dev_class : str
315+ firmware : str
316+ hardware : str
317+ location : str
318+ model : str
319+ model_id : str
320+ name : str
321+ sensors : TomSensors
322+ temperature_offset : SetpointDict
323+ vendor : str
324+ zigbee_mac_address : str
325+
326+
327+ class TomSensors (TypedDict , total = False ):
328+ """Tom sensors class."""
329+
330+ battery : int
331+ setpoint : float
332+ setpoint_high : float
333+ setpoint_low : float
334+ temperature : float
335+ temperature_difference : float
336+ valve_position : float
337+
338+
339+ class PlugData :
340+ """Plug data class."""
341+
342+ available : bool
343+ dev_class : str
344+ firmware : str
345+ # hardware: str
346+ location : str
347+ model : str
348+ model_id : str
349+ name : str
350+ sensors : PlugSensors
351+ switches : PlugSwitches
352+ vendor : str
353+ zigbee_mac_address : str
354+
355+
356+ class PlugSensors :
357+ """Plug sensors class."""
358+
359+ electricity_consumed : float
360+ electricity_consumed_interval : float
361+ electricity_produced : float
362+ electricity_produced_interval : float
363+
364+
365+ class PlugSwitches (TypedDict , total = False ):
366+ """Plug switches class."""
367+
368+ lock : bool
369+ relay : bool
0 commit comments