Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "tadoasync"
version = "0.1.20"
version = "0.1.21"
authors = ["Erwin Douna <[email protected]>"]
classifiers = [
"Development Status :: 5 - Production/Stable",
Expand Down
83 changes: 20 additions & 63 deletions src/tadoasync/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from __future__ import annotations

from dataclasses import dataclass, field
from enum import Enum
from typing import Any

from mashumaro import field_options
Expand Down Expand Up @@ -302,130 +301,88 @@ class Capabilities(DataClassORJSONMixin):
heat: HeatAC | None = field(metadata=field_options(alias="HEAT"), default=None)


class VerticalSwing(Enum):
"""VerticalSwing model represents the vertical swing modes of a zone."""

OFF = "OFF"
MID_UP = "MID_UP"
MID_DOWN = "MID_DOWN"
ON = "ON"
DOWN = "DOWN"
UP = "UP"
MID = "MID"


class HorizontalSwing(Enum):
"""HorizontalSwing model represents the horizontal swing modes of a zone."""

OFF = "OFF"
ON = "ON"
RIGHT = "RIGHT"
LEFT = "LEFT"
MID_RIGHT = "MID_RIGHT"
MID_LEFT = "MID_LEFT"


class FanLevel(Enum):
"""FanLevel model represents the fan levels of a zone."""

AUTO = "AUTO"
LEVEL1 = "LEVEL1"
LEVEL2 = "LEVEL2"
LEVEL3 = "LEVEL3"
LEVEL4 = "LEVEL4"
LEVEL5 = "LEVEL5"
SILENT = "SILENT"


class Light(Enum):
"""Light model represents the light settings of a zone."""

ON = "ON"
OFF = "OFF"


@dataclass
class AutoAC(DataClassORJSONMixin):
"""AutoAC model represents the auto AC capabilities of a zone."""

fan_level: list[FanLevel] | None = field(
fan_level: list[str] | None = field(
default=None, metadata=field_options(alias="fanLevel")
)
vertical_swing: list[VerticalSwing] | None = field(
vertical_swing: list[str] | None = field(
default=None, metadata=field_options(alias="verticalSwing")
)
horizontal_swing: list[HorizontalSwing] | None = field(
horizontal_swing: list[str] | None = field(
default=None, metadata=field_options(alias="horizontalSwing")
)
light: list[Light] | None = None
light: list[str] | None = None
temperatures: Temperatures | None = None


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

fan_level: list[FanLevel] | None = field(
fan_level: list[str] | None = field(
default=None, metadata=field_options(alias="fanLevel")
)
vertical_swing: list[VerticalSwing] | None = field(
vertical_swing: list[str] | None = field(
default=None, metadata=field_options(alias="verticalSwing")
)
horizontal_swing: list[HorizontalSwing] | None = field(
horizontal_swing: list[str] | None = field(
default=None, metadata=field_options(alias="horizontalSwing")
)
light: list[Light] | None = None
light: list[str] | None = None
temperatures: Temperatures | None = None


@dataclass
class DryAC(DataClassORJSONMixin):
"""DryAC model represents the dry AC capabilities of a zone."""

fan_level: list[FanLevel] | None = field(
fan_level: list[str] | None = field(
default=None, metadata=field_options(alias="fanLevel")
)
vertical_swing: list[VerticalSwing] | None = field(
vertical_swing: list[str] | None = field(
default=None, metadata=field_options(alias="verticalSwing")
)
horizontal_swing: list[HorizontalSwing] | None = field(
horizontal_swing: list[str] | None = field(
default=None, metadata=field_options(alias="horizontalSwing")
)
light: list[Light] | None = None
light: list[str] | None = None
temperatures: Temperatures | None = None


@dataclass
class FanAC(DataClassORJSONMixin):
"""FanAC model represents the fan AC capabilities of a zone."""

fan_level: list[FanLevel] | None = field(
fan_level: list[str] | None = field(
default=None, metadata=field_options(alias="fanLevel")
)
vertical_swing: list[VerticalSwing] | None = field(
vertical_swing: list[str] | None = field(
default=None, metadata=field_options(alias="verticalSwing")
)
horizontal_swing: list[HorizontalSwing] | None = field(
horizontal_swing: list[str] | None = field(
default=None, metadata=field_options(alias="horizontalSwing")
)
light: list[Light] | None = None
light: list[str] | None = None
temperatures: Temperatures | None = None


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

fan_level: list[FanLevel] | None = field(
fan_level: list[str] | None = field(
default=None, metadata=field_options(alias="fanLevel")
)
vertical_swing: list[VerticalSwing] | None = field(
vertical_swing: list[str] | None = field(
default=None, metadata=field_options(alias="verticalSwing")
)
horizontal_swing: list[HorizontalSwing] | None = field(
horizontal_swing: list[str] | None = field(
default=None, metadata=field_options(alias="horizontalSwing")
)
light: list[Light] | None = None
light: list[str] | None = None
temperatures: Temperatures | None = None


Expand Down
Loading
Loading