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

Sign up to get free protection for your applications and to get access to all the features.
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]