python-omnilogic-local 0.14.3__tar.gz → 0.14.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/PKG-INFO +2 -2
  2. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/api.py +5 -5
  3. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/mspconfig.py +3 -0
  4. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/telemetry.py +1 -1
  5. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/util.py +1 -1
  6. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/types.py +21 -2
  7. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyproject.toml +1 -1
  8. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/LICENSE +0 -0
  9. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/README.md +0 -0
  10. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/__init__.py +0 -0
  11. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/cli.py +0 -0
  12. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/exceptions.py +0 -0
  13. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/__init__.py +0 -0
  14. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/const.py +0 -0
  15. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/filter_diagnostics.py +0 -0
  16. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/models/leadmessage.py +0 -0
  17. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/protocol.py +0 -0
  18. {python_omnilogic_local-0.14.3 → python_omnilogic_local-0.14.6}/pyomnilogic_local/util.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: python-omnilogic-local
3
- Version: 0.14.3
3
+ Version: 0.14.6
4
4
  Summary: A library for local control of Hayward OmniHub/OmniLogic pool controllers using their local API
5
5
  Home-page: https://github.com/cryptk/python-omnilogic-local
6
6
  License: Apache-2.0
@@ -436,12 +436,12 @@ class OmniLogicAPI:
436
436
  pool_id: int,
437
437
  equipment_id: int,
438
438
  timed_percent: int,
439
+ cell_type: int,
440
+ op_mode: int,
441
+ sc_timeout: int,
442
+ bow_type: int,
443
+ orp_timeout: int,
439
444
  cfg_state: int = 3,
440
- op_mode: int = 1,
441
- bow_type: int = 0,
442
- cell_type: int = 4,
443
- sc_timeout: int = 24,
444
- orp_timeout: int = 24,
445
445
  ) -> None:
446
446
  body_element = ET.Element("Request", {"xmlns": "http://nextgen.hayward.com/api"})
447
447
 
@@ -15,6 +15,7 @@ from xmltodict import parse as xml_parse
15
15
  from ..exceptions import OmniParsingException
16
16
  from ..types import (
17
17
  BodyOfWaterType,
18
+ ChlorinatorCellType,
18
19
  ChlorinatorDispenserType,
19
20
  ColorLogicLightType,
20
21
  ColorLogicShow,
@@ -151,7 +152,9 @@ class MSPChlorinator(OmniBase):
151
152
  enabled: Literal["yes", "no"] = Field(alias="Enabled")
152
153
  timed_percent: int = Field(alias="Timed-Percent")
153
154
  superchlor_timeout: int = Field(alias="SuperChlor-Timeout")
155
+ orp_timeout: int = Field(alias="ORP-Timeout")
154
156
  dispenser_type: ChlorinatorDispenserType | str = Field(alias="Dispenser-Type")
157
+ cell_type: ChlorinatorCellType = Field(alias="Cell-Type")
155
158
  chlorinator_equipment: list[MSPChlorinatorEquip] | None
156
159
 
157
160
  def __init__(self, **data: Any) -> None:
@@ -71,7 +71,7 @@ class TelemetryChlorinator(BaseModel):
71
71
  sc_mode: int = Field(alias="@scMode")
72
72
  operating_state: int = Field(alias="@operatingState")
73
73
  timed_percent: int | None = Field(alias="@Timed-Percent")
74
- operating_mode: ChlorinatorOperatingMode | int = Field(alias="@operatingMode")
74
+ operating_mode: ChlorinatorOperatingMode = Field(alias="@operatingMode")
75
75
  enable: bool = Field(alias="@enable")
76
76
 
77
77
  # Still need to do a bit more work to determine if a chlorinator is actively chlorinating
@@ -2,7 +2,7 @@ from collections.abc import Awaitable, Callable
2
2
  import logging
3
3
  from typing import Any, Literal, TypeVar, cast, overload
4
4
 
5
- from pydantic.utils import GetterDict
5
+ from pydantic.v1.utils import GetterDict
6
6
 
7
7
  from .const import XML_NS
8
8
  from .filter_diagnostics import FilterDiagnostics
@@ -1,4 +1,4 @@
1
- from enum import Enum
1
+ from enum import Enum, IntEnum
2
2
 
3
3
  from .util import PrettyEnum
4
4
 
@@ -87,7 +87,8 @@ class BodyOfWaterType(str, PrettyEnum):
87
87
  # Chlorinator status is a bitmask that we still need to figure out
88
88
  # class ChlorinatorStatus(str,Enum):
89
89
  # pass
90
- class ChlorinatorOperatingMode(PrettyEnum):
90
+ class ChlorinatorOperatingMode(IntEnum):
91
+ DISABLED = 0
91
92
  TIMED = 1
92
93
  ORP = 2
93
94
 
@@ -96,6 +97,24 @@ class ChlorinatorDispenserType(str, PrettyEnum):
96
97
  SALT = "SALT_DISPENSING"
97
98
 
98
99
 
100
+ class ChlorinatorCellType(PrettyEnum):
101
+ T3 = "CELL_TYPE_T3"
102
+ T5 = "CELL_TYPE_T5"
103
+ T9 = "CELL_TYPE_T9"
104
+ T15 = "CELL_TYPE_T15"
105
+
106
+ # There is probably an easier way to do this
107
+ def __int__(self) -> int:
108
+ return ChlorinatorCellInt[self.name].value
109
+
110
+
111
+ class ChlorinatorCellInt(IntEnum):
112
+ T3 = 1
113
+ T5 = 2
114
+ T9 = 3
115
+ T15 = 4
116
+
117
+
99
118
  # Lights
100
119
  class ColorLogicSpeed(PrettyEnum):
101
120
  ONE_SIXTEENTH = 0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-omnilogic-local"
3
- version = "0.14.3"
3
+ version = "0.14.6"
4
4
  description = "A library for local control of Hayward OmniHub/OmniLogic pool controllers using their local API"
5
5
  authors = ["cryptk <cryptk@users.noreply.github.com>", "djtimca", "garionphx"]
6
6
  license = "Apache-2.0"