python-omnilogic-local 0.14.1__tar.gz → 0.14.3__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.1 → python_omnilogic_local-0.14.3}/PKG-INFO +3 -2
  2. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/cli.py +22 -23
  3. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/filter_diagnostics.py +2 -2
  4. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/leadmessage.py +1 -1
  5. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/mspconfig.py +1 -1
  6. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/telemetry.py +1 -1
  7. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyproject.toml +2 -2
  8. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/LICENSE +0 -0
  9. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/README.md +0 -0
  10. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/__init__.py +0 -0
  11. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/api.py +0 -0
  12. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/exceptions.py +0 -0
  13. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/__init__.py +0 -0
  14. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/const.py +0 -0
  15. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/models/util.py +0 -0
  16. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/protocol.py +0 -0
  17. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/types.py +0 -0
  18. {python_omnilogic_local-0.14.1 → python_omnilogic_local-0.14.3}/pyomnilogic_local/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-omnilogic-local
3
- Version: 0.14.1
3
+ Version: 0.14.3
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
@@ -16,8 +16,9 @@ Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
19
20
  Classifier: Topic :: Software Development :: Libraries
20
- Requires-Dist: pydantic (>=1.10.7,<2.0.0)
21
+ Requires-Dist: pydantic (>=1.10.17)
21
22
  Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
22
23
  Project-URL: Repository, https://github.com/cryptk/python-omnilogic-local
23
24
  Description-Content-Type: text/markdown
@@ -18,44 +18,43 @@ RELAY_SYSTEM_ID = 13
18
18
 
19
19
 
20
20
  async def async_main() -> None:
21
- diags: FilterDiagnostics # noqa: F842
22
- mspconfig: MSPConfig # noqa: F842
23
- telem: Telemetry # noqa: F842
21
+ filter_diags: FilterDiagnostics # pylint: disable=unused-variable # noqa: F842
22
+ mspconfig: MSPConfig
23
+ telem: Telemetry
24
24
 
25
25
  omni = OmniLogicAPI(os.environ.get("OMNILOGIC_HOST", "127.0.0.1"), 10444, 5.0)
26
+ get_raw = os.environ.get("OMNILOGIC_RAW", False)
26
27
 
27
28
  # Some basic calls to run some testing against the library
28
29
 
29
- # Fetch the MSPConfig data parsed into a model
30
- mspconfig = await omni.async_get_config()
31
- # Fetch the MSPConfig data as the raw XML
32
- # mspconfig = await omni.async_get_config(raw=True)
33
- print(mspconfig)
30
+ # Fetch the MSPConfig data
31
+ mspconfig = await omni.async_get_config(raw=get_raw) # pylint: disable=unexpected-keyword-arg
34
32
 
35
- # Fetch the current telemetry data parsed into a model
36
- telem = await omni.async_get_telemetry()
37
- # Fetch the current telemetry data as the raw XML
38
- # telem = await omni.async_get_telemetry(raw=True)
39
- print(telem)
33
+ # Fetch the current telemetry data
34
+ telem = await omni.async_get_telemetry(raw=get_raw) # pylint: disable=unexpected-keyword-arg
40
35
 
41
36
  # Fetch a list of current alarms
42
37
  # print(await omni.async_get_alarm_list())
43
38
 
44
39
  # Fetch diagnostic data for a filter pump
45
- diags = await omni.async_get_filter_diagnostics(POOL_ID, PUMP_EQUIPMENT_ID)
46
- print(diags)
40
+ # filter_diags = await omni.async_get_filter_diagnostics(POOL_ID, PUMP_EQUIPMENT_ID, raw=get_raw)
41
+
42
+ print(mspconfig)
43
+ print(telem)
44
+ # print(filter_diags)
45
+
47
46
  # Decode the filter display revision
48
- # b1=chr(diags.get_param_by_name("DisplayFWRevisionB1"))
49
- # b2=chr(diags.get_param_by_name("DisplayFWRevisionB2"))
50
- # b3=chr(diags.get_param_by_name("DisplayFWRevisionB3"))
51
- # b4=chr(diags.get_param_by_name("DisplayFWRevisionB4"))
47
+ # b1=chr(filter_diags.get_param_by_name("DisplayFWRevisionB1"))
48
+ # b2=chr(filter_diags.get_param_by_name("DisplayFWRevisionB2"))
49
+ # b3=chr(filter_diags.get_param_by_name("DisplayFWRevisionB3"))
50
+ # b4=chr(filter_diags.get_param_by_name("DisplayFWRevisionB4"))
52
51
  # b5 and b6 are whitespace and a null terminator
53
- # b5=chr(diags.get_param_by_name("DisplayFWRevisionB5"))
54
- # b6=chr(diags.get_param_by_name("DisplayFWRevisionB6"))
52
+ # b5=chr(filter_diags.get_param_by_name("DisplayFWRevisionB5"))
53
+ # b6=chr(filter_diags.get_param_by_name("DisplayFWRevisionB6"))
55
54
  # print(f"{b1}{b2}.{b3}.{b4}")
56
55
  # Decode the filter power consumption (don't do this, it's returned already decoded in the telemetry)
57
- # p1=diags.get_param_by_name("PowerMSB")
58
- # p2=diags.get_param_by_name("PowerLSB")
56
+ # p1=filter_diags.get_param_by_name("PowerMSB")
57
+ # p2=filter_diags.get_param_by_name("PowerLSB")
59
58
  # The f-string below converts the bytes to hex and displays them. Just get this value from the telemetry, it's easier
60
59
  # print(f"{p1:x}{p2:x}")
61
60
 
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from pydantic import BaseModel, Field
3
+ from pydantic.v1 import BaseModel, Field
4
4
  from xmltodict import parse as xml_parse
5
5
 
6
6
 
@@ -23,7 +23,7 @@ class FilterDiagnostics(BaseModel):
23
23
  orm_mode = True
24
24
 
25
25
  def get_param_by_name(self, name: str) -> int:
26
- return [param.value for param in self.parameters if param.name == name][0] # pylint: disable=not-an-iterable
26
+ return [param.value for param in self.parameters if param.name == name][0]
27
27
 
28
28
  @staticmethod
29
29
  def load_xml(xml: str) -> FilterDiagnostics:
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from pydantic import BaseModel, Field
3
+ from pydantic.v1 import BaseModel, Field
4
4
 
5
5
  from .util import ParameterGetter
6
6
 
@@ -9,7 +9,7 @@ if sys.version_info >= (3, 11):
9
9
  else:
10
10
  from typing_extensions import Self
11
11
 
12
- from pydantic import BaseModel, Field, ValidationError
12
+ from pydantic.v1 import BaseModel, Field, ValidationError
13
13
  from xmltodict import parse as xml_parse
14
14
 
15
15
  from ..exceptions import OmniParsingException
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any, SupportsInt, TypeAlias, TypeVar, cast, overload
4
4
 
5
- from pydantic import BaseModel, Field, ValidationError
5
+ from pydantic.v1 import BaseModel, Field, ValidationError
6
6
  from xmltodict import parse as xml_parse
7
7
 
8
8
  from ..exceptions import OmniParsingException
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-omnilogic-local"
3
- version = "0.14.1"
3
+ version = "0.14.3"
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"
@@ -20,7 +20,7 @@ omnilogic = "pyomnilogic_local.cli:main"
20
20
 
21
21
  [tool.poetry.dependencies]
22
22
  python = "^3.10"
23
- pydantic = "^1.10.7"
23
+ pydantic = ">=1.10.17"
24
24
  xmltodict = "^0.13.0"
25
25
 
26
26
  [tool.poetry.group.dev.dependencies]