@@ -171,13 +171,24 @@ class Zone(DataClassORJSONMixin): # pylint: disable=too-many-instance-attribute
171171 date_created : str = field (metadata = field_options (alias = "dateCreated" ))
172172 device_types : list [str ] = field (metadata = field_options (alias = "deviceTypes" ))
173173 devices : list [Device ]
174- report_available : bool = field (metadata = field_options (alias = "reportAvailable" ))
175- show_schedule_detup : bool = field (metadata = field_options (alias = "showScheduleSetup" ))
176- supports_dazzle : bool = field (metadata = field_options (alias = "supportsDazzle" ))
177- dazzle_enabled : bool = field (metadata = field_options (alias = "dazzleEnabled" ))
178- dazzle_mode : DazzleMode = field (metadata = field_options (alias = "dazzleMode" ))
179- open_window_detection : OpenWindowDetection = field (
180- metadata = field_options (alias = "openWindowDetection" )
174+ dazzle_mode : DazzleMode | None = field (
175+ metadata = field_options (alias = "dazzleMode" ),
176+ default = None ,
177+ )
178+ open_window_detection : OpenWindowDetection | None = field (
179+ metadata = field_options (alias = "openWindowDetection" ), default = None
180+ )
181+ report_available : bool = field (
182+ metadata = field_options (alias = "reportAvailable" ), default = False
183+ )
184+ show_schedule_setup : bool = field (
185+ metadata = field_options (alias = "showScheduleSetup" ), default = False
186+ )
187+ supports_dazzle : bool = field (
188+ metadata = field_options (alias = "supportsDazzle" ), default = False
189+ )
190+ dazzle_enabled : bool = field (
191+ metadata = field_options (alias = "dazzleEnabled" ), default = False
181192 )
182193
183194
@@ -277,7 +288,77 @@ class Capabilities(DataClassORJSONMixin):
277288 """Capabilities model represents the capabilities of a zone."""
278289
279290 type : str
280- temperatures : Temperatures
291+ temperatures : Temperatures | None = None
292+ can_set_temperature : bool | None = field (
293+ metadata = field_options (alias = "canSetTemperature" ), default = None
294+ )
295+
296+ # Air conditioning specifics
297+ auto : AutoAC | None = field (metadata = field_options (alias = "AUTO" ), default = None )
298+ cool : CoolAC | None = field (metadata = field_options (alias = "COOL" ), default = None )
299+ dry : DryAC | None = field (metadata = field_options (alias = "DRY" ), default = None )
300+ fan : FanAC | None = field (metadata = field_options (alias = "FAN" ), default = None )
301+ heat : HeatAC | None = field (metadata = field_options (alias = "HEAT" ), default = None )
302+
303+
304+ @dataclass
305+ class AutoAC (DataClassORJSONMixin ):
306+ """AutoAC model represents the auto AC capabilities of a zone."""
307+
308+ fan_speeds : list [str ] | None = field (
309+ default = None , metadata = field_options (alias = "fanSpeeds" )
310+ )
311+ swing_modes : list [str ] | None = field (
312+ default = None , metadata = field_options (alias = "swings" )
313+ )
314+ light : str | None = None
315+
316+
317+ @dataclass
318+ class CoolAC (DataClassORJSONMixin ):
319+ """CoolAC model represents the cool AC capabilities of a zone."""
320+
321+ fan_speeds : list [str ] | None = field (
322+ default = None , metadata = field_options (alias = "fanSpeeds" )
323+ )
324+ swing_modes : list [str ] | None = field (
325+ default = None , metadata = field_options (alias = "swings" )
326+ )
327+ temperatures : Temperatures | None = None
328+
329+
330+ @dataclass
331+ class DryAC (DataClassORJSONMixin ):
332+ """DryAC model represents the dry AC capabilities of a zone."""
333+
334+ swing_modes : list [str ] | None = field (
335+ default = None , metadata = field_options (alias = "swings" )
336+ )
337+
338+
339+ @dataclass
340+ class FanAC (DataClassORJSONMixin ):
341+ """FanAC model represents the fan AC capabilities of a zone."""
342+
343+ fan_speeds : list [str ] | None = field (
344+ default = None , metadata = field_options (alias = "fanSpeeds" )
345+ )
346+ swing_modes : list [str ] | None = field (
347+ default = None , metadata = field_options (alias = "swings" )
348+ )
349+
350+
351+ @dataclass
352+ class HeatAC (DataClassORJSONMixin ):
353+ """HeatAC model represents the heat AC capabilities of a zone."""
354+
355+ fan_speeds : list [str ] | None = field (
356+ default = None , metadata = field_options (alias = "fanSpeeds" )
357+ )
358+ swing_modes : list [str ] | None = field (
359+ default = None , metadata = field_options (alias = "swings" )
360+ )
361+ temperatures : Temperatures | None = None
281362
282363
283364@dataclass
0 commit comments