Skip to content

Commit 4ded7a4

Browse files
committed
Adding optionals for AC's
1 parent 3e3c9d8 commit 4ded7a4

File tree

2 files changed

+52
-8
lines changed

2 files changed

+52
-8
lines changed

src/tadoasync/models.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -305,16 +305,26 @@ class Capabilities(DataClassORJSONMixin):
305305
class AutoAC(DataClassORJSONMixin):
306306
"""AutoAC model represents the auto AC capabilities of a zone."""
307307

308-
fan_speeds: list[str] = field(metadata=field_options(alias="fanSpeeds"))
309-
swing_modes: list[str] = field(metadata=field_options(alias="swings"))
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
310315

311316

312317
@dataclass
313318
class CoolAC(DataClassORJSONMixin):
314319
"""CoolAC model represents the cool AC capabilities of a zone."""
315320

316-
fan_speeds: list[str] = field(metadata=field_options(alias="fanSpeeds"))
317-
swing_modes: list[str] = field(metadata=field_options(alias="swings"))
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
318328

319329

320330
@dataclass
@@ -330,16 +340,25 @@ class DryAC(DataClassORJSONMixin):
330340
class FanAC(DataClassORJSONMixin):
331341
"""FanAC model represents the fan AC capabilities of a zone."""
332342

333-
fan_speeds: list[str] = field(metadata=field_options(alias="fanSpeeds"))
334-
swing_modes: list[str] = field(metadata=field_options(alias="swings"))
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+
)
335349

336350

337351
@dataclass
338352
class HeatAC(DataClassORJSONMixin):
339353
"""HeatAC model represents the heat AC capabilities of a zone."""
340354

341-
fan_speeds: list[str] = field(metadata=field_options(alias="fanSpeeds"))
342-
swing_modes: list[str] = field(metadata=field_options(alias="swings"))
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
343362

344363

345364
@dataclass

tests/__snapshots__/test_tado.ambr

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
'MIDDLE',
4646
'LOW',
4747
]),
48+
'light': None,
4849
'swing_modes': list([
4950
'OFF',
5051
'ON',
@@ -62,6 +63,18 @@
6263
'OFF',
6364
'ON',
6465
]),
66+
'temperatures': dict({
67+
'celsius': dict({
68+
'max': 30.0,
69+
'min': 18.0,
70+
'step': 1.0,
71+
}),
72+
'fahrenheit': dict({
73+
'max': 86.0,
74+
'min': 64.0,
75+
'step': 1.0,
76+
}),
77+
}),
6578
}),
6679
'dry': dict({
6780
'swing_modes': list([
@@ -92,6 +105,18 @@
92105
'OFF',
93106
'ON',
94107
]),
108+
'temperatures': dict({
109+
'celsius': dict({
110+
'max': 30.0,
111+
'min': 16.0,
112+
'step': 1.0,
113+
}),
114+
'fahrenheit': dict({
115+
'max': 86.0,
116+
'min': 61.0,
117+
'step': 1.0,
118+
}),
119+
}),
95120
}),
96121
'temperatures': None,
97122
'type': 'AIR_CONDITIONING',

0 commit comments

Comments
 (0)