|
3 | 3 | from __future__ import annotations |
4 | 4 |
|
5 | 5 | from dataclasses import dataclass, field |
| 6 | +from enum import Enum |
6 | 7 | from typing import Any |
7 | 8 |
|
8 | 9 | from mashumaro import field_options |
@@ -301,63 +302,130 @@ class Capabilities(DataClassORJSONMixin): |
301 | 302 | heat: HeatAC | None = field(metadata=field_options(alias="HEAT"), default=None) |
302 | 303 |
|
303 | 304 |
|
| 305 | +class VerticalSwing(Enum): |
| 306 | + """VerticalSwing model represents the vertical swing modes of a zone.""" |
| 307 | + |
| 308 | + OFF = "OFF" |
| 309 | + MID_UP = "MID_UP" |
| 310 | + MID_DOWN = "MID_DOWN" |
| 311 | + ON = "ON" |
| 312 | + DOWN = "DOWN" |
| 313 | + UP = "UP" |
| 314 | + MID = "MID" |
| 315 | + |
| 316 | + |
| 317 | +class HorizontalSwing(Enum): |
| 318 | + """HorizontalSwing model represents the horizontal swing modes of a zone.""" |
| 319 | + |
| 320 | + OFF = "OFF" |
| 321 | + ON = "ON" |
| 322 | + RIGHT = "RIGHT" |
| 323 | + LEFT = "LEFT" |
| 324 | + MID_RIGHT = "MID_RIGHT" |
| 325 | + MID_LEFT = "MID_LEFT" |
| 326 | + |
| 327 | + |
| 328 | +class FanLevel(Enum): |
| 329 | + """FanLevel model represents the fan levels of a zone.""" |
| 330 | + |
| 331 | + AUTO = "AUTO" |
| 332 | + LEVEL1 = "LEVEL1" |
| 333 | + LEVEL2 = "LEVEL2" |
| 334 | + LEVEL3 = "LEVEL3" |
| 335 | + LEVEL4 = "LEVEL4" |
| 336 | + LEVEL5 = "LEVEL5" |
| 337 | + SILENT = "SILENT" |
| 338 | + |
| 339 | + |
| 340 | +class Light(Enum): |
| 341 | + """Light model represents the light settings of a zone.""" |
| 342 | + |
| 343 | + ON = "ON" |
| 344 | + OFF = "OFF" |
| 345 | + |
| 346 | + |
304 | 347 | @dataclass |
305 | 348 | class AutoAC(DataClassORJSONMixin): |
306 | 349 | """AutoAC model represents the auto AC capabilities of a zone.""" |
307 | 350 |
|
308 | | - fan_speeds: list[str] | None = field( |
309 | | - default=None, metadata=field_options(alias="fanSpeeds") |
| 351 | + fan_level: list[FanLevel] | None = field( |
| 352 | + default=None, metadata=field_options(alias="fanLevel") |
310 | 353 | ) |
311 | | - swing_modes: list[str] | None = field( |
312 | | - default=None, metadata=field_options(alias="swings") |
| 354 | + vertical_swing: list[VerticalSwing] | None = field( |
| 355 | + default=None, metadata=field_options(alias="verticalSwing") |
313 | 356 | ) |
314 | | - light: str | None = None |
| 357 | + horizontal_swing: list[HorizontalSwing] | None = field( |
| 358 | + default=None, metadata=field_options(alias="horizontalSwing") |
| 359 | + ) |
| 360 | + light: list[Light] | None = None |
| 361 | + temperatures: Temperatures | None = None |
315 | 362 |
|
316 | 363 |
|
317 | 364 | @dataclass |
318 | 365 | class CoolAC(DataClassORJSONMixin): |
319 | 366 | """CoolAC model represents the cool AC capabilities of a zone.""" |
320 | 367 |
|
321 | | - fan_speeds: list[str] | None = field( |
322 | | - default=None, metadata=field_options(alias="fanSpeeds") |
| 368 | + fan_level: list[FanLevel] | None = field( |
| 369 | + default=None, metadata=field_options(alias="fanLevel") |
323 | 370 | ) |
324 | | - swing_modes: list[str] | None = field( |
325 | | - default=None, metadata=field_options(alias="swings") |
| 371 | + vertical_swing: list[VerticalSwing] | None = field( |
| 372 | + default=None, metadata=field_options(alias="verticalSwing") |
| 373 | + ) |
| 374 | + horizontal_swing: list[HorizontalSwing] | None = field( |
| 375 | + default=None, metadata=field_options(alias="horizontalSwing") |
326 | 376 | ) |
| 377 | + light: list[Light] | None = None |
327 | 378 | temperatures: Temperatures | None = None |
328 | 379 |
|
329 | 380 |
|
330 | 381 | @dataclass |
331 | 382 | class DryAC(DataClassORJSONMixin): |
332 | 383 | """DryAC model represents the dry AC capabilities of a zone.""" |
333 | 384 |
|
334 | | - swing_modes: list[str] | None = field( |
335 | | - default=None, metadata=field_options(alias="swings") |
| 385 | + fan_level: list[FanLevel] | None = field( |
| 386 | + default=None, metadata=field_options(alias="fanLevel") |
336 | 387 | ) |
| 388 | + vertical_swing: list[VerticalSwing] | None = field( |
| 389 | + default=None, metadata=field_options(alias="verticalSwing") |
| 390 | + ) |
| 391 | + horizontal_swing: list[HorizontalSwing] | None = field( |
| 392 | + default=None, metadata=field_options(alias="horizontalSwing") |
| 393 | + ) |
| 394 | + light: list[Light] | None = None |
| 395 | + temperatures: Temperatures | None = None |
337 | 396 |
|
338 | 397 |
|
339 | 398 | @dataclass |
340 | 399 | class FanAC(DataClassORJSONMixin): |
341 | 400 | """FanAC model represents the fan AC capabilities of a zone.""" |
342 | 401 |
|
343 | | - fan_speeds: list[str] | None = field( |
344 | | - default=None, metadata=field_options(alias="fanSpeeds") |
| 402 | + fan_level: list[FanLevel] | None = field( |
| 403 | + default=None, metadata=field_options(alias="fanLevel") |
345 | 404 | ) |
346 | | - swing_modes: list[str] | None = field( |
347 | | - default=None, metadata=field_options(alias="swings") |
| 405 | + vertical_swing: list[VerticalSwing] | None = field( |
| 406 | + default=None, metadata=field_options(alias="verticalSwing") |
348 | 407 | ) |
| 408 | + horizontal_swing: list[HorizontalSwing] | None = field( |
| 409 | + default=None, metadata=field_options(alias="horizontalSwing") |
| 410 | + ) |
| 411 | + light: list[Light] | None = None |
| 412 | + temperatures: Temperatures | None = None |
349 | 413 |
|
350 | 414 |
|
351 | 415 | @dataclass |
352 | 416 | class HeatAC(DataClassORJSONMixin): |
353 | 417 | """HeatAC model represents the heat AC capabilities of a zone.""" |
354 | 418 |
|
355 | | - fan_speeds: list[str] | None = field( |
356 | | - default=None, metadata=field_options(alias="fanSpeeds") |
| 419 | + fan_level: list[FanLevel] | None = field( |
| 420 | + default=None, metadata=field_options(alias="fanLevel") |
| 421 | + ) |
| 422 | + vertical_swing: list[VerticalSwing] | None = field( |
| 423 | + default=None, metadata=field_options(alias="verticalSwing") |
357 | 424 | ) |
358 | | - swing_modes: list[str] | None = field( |
359 | | - default=None, metadata=field_options(alias="swings") |
| 425 | + horizontal_swing: list[HorizontalSwing] | None = field( |
| 426 | + default=None, metadata=field_options(alias="horizontalSwing") |
360 | 427 | ) |
| 428 | + light: list[Light] | None = None |
361 | 429 | temperatures: Temperatures | None = None |
362 | 430 |
|
363 | 431 |
|
|
0 commit comments