python-omnilogic-local 0.28.1__tar.gz → 0.28.2__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.
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/PKG-INFO +1 -1
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/protocol.py +4 -1
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/utils.py +0 -19
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/omnitypes.py +1 -1
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyproject.toml +1 -1
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/LICENSE +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/README.md +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/__init__.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/_base.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/__init__.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/api.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/constants.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/exceptions.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/mock_api.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/backyard.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/bow.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/chlorinator.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/chlorinator_equip.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/__init__.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/cli.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/debug/__init__.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/debug/commands.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/__init__.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/backyard.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/bows.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/chlorinators.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/commands.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/csads.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/filters.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/groups.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/heaters.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/lights.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/pumps.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/relays.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/schedules.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/sensors.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/valves.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/pcap_utils.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/collections.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/colorlogiclight.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/csad.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/csad_equip.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/decorators.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/filter.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/groups.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/heater.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/heater_equip.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/__init__.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/const.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/exceptions.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/filter_diagnostics.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/leadmessage.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/mspconfig.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/telemetry.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/omnilogic.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/pump.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/py.typed +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/relay.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/schedule.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/sensor.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/system.py +0 -0
- {python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-omnilogic-local
|
|
3
|
-
Version: 0.28.
|
|
3
|
+
Version: 0.28.2
|
|
4
4
|
Summary: A library for local control of Hayward OmniHub/OmniLogic pool controllers using their local API
|
|
5
5
|
Author: Chris Jowett, djtimca, garionphx
|
|
6
6
|
Author-email: Chris Jowett <421501+cryptk@users.noreply.github.com>
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/protocol.py
RENAMED
|
@@ -43,7 +43,7 @@ class OmniLogicMessage:
|
|
|
43
43
|
payload: bytes
|
|
44
44
|
client_type: ClientType = ClientType.SIMPLE
|
|
45
45
|
version: str = PROTOCOL_VERSION
|
|
46
|
-
timestamp: int
|
|
46
|
+
timestamp: int
|
|
47
47
|
reserved_1: int = 0
|
|
48
48
|
compressed: bool = False
|
|
49
49
|
reserved_2: int = 0
|
|
@@ -54,6 +54,7 @@ class OmniLogicMessage:
|
|
|
54
54
|
msg_type: MessageType,
|
|
55
55
|
payload: str | None = None,
|
|
56
56
|
version: str = PROTOCOL_VERSION,
|
|
57
|
+
timestamp: int | None = None,
|
|
57
58
|
) -> None:
|
|
58
59
|
"""Initialize a new OmniLogicMessage.
|
|
59
60
|
|
|
@@ -62,6 +63,7 @@ class OmniLogicMessage:
|
|
|
62
63
|
msg_type: Type of message being sent.
|
|
63
64
|
payload: Optional string payload (XML or command body).
|
|
64
65
|
version: Protocol version string.
|
|
66
|
+
timestamp: Optional timestamp for the message.
|
|
65
67
|
"""
|
|
66
68
|
self.id = msg_id
|
|
67
69
|
self.type = msg_type
|
|
@@ -72,6 +74,7 @@ class OmniLogicMessage:
|
|
|
72
74
|
self.payload = bytes(payload, "utf-8")
|
|
73
75
|
|
|
74
76
|
self.version = version
|
|
77
|
+
self.timestamp = timestamp if timestamp is not None else int(time.time())
|
|
75
78
|
|
|
76
79
|
def __bytes__(self) -> bytes:
|
|
77
80
|
"""Serialize the message to bytes for UDP transmission.
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/utils.py
RENAMED
|
@@ -7,29 +7,10 @@ accessing controller data within the Click context.
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
import inspect
|
|
10
|
-
import os
|
|
11
10
|
from typing import Any
|
|
12
11
|
|
|
13
12
|
import click
|
|
14
13
|
|
|
15
|
-
from pyomnilogic_local.api.api import OmniLogicAPI
|
|
16
|
-
from pyomnilogic_local.api.mock_api import OmniLogicMockAPI
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
async def get_omni(host: str) -> OmniLogicAPI:
|
|
20
|
-
"""Create an OmniLogicAPI instance for the specified controller.
|
|
21
|
-
|
|
22
|
-
Args:
|
|
23
|
-
host: Hostname or IP address of the OmniLogic controller
|
|
24
|
-
|
|
25
|
-
Returns:
|
|
26
|
-
Configured OmniLogicAPI instance ready for communication
|
|
27
|
-
"""
|
|
28
|
-
sim_data_path = os.environ.get("PYOMNILOGIC_SIMULATION_DATA")
|
|
29
|
-
if sim_data_path:
|
|
30
|
-
return OmniLogicMockAPI(sim_data_path) # type: ignore[return-value]
|
|
31
|
-
return OmniLogicAPI(host, 10444, 5.0)
|
|
32
|
-
|
|
33
14
|
|
|
34
15
|
def echo_properties(obj: Any) -> None:
|
|
35
16
|
"""Echo all properties of an object in a formatted way."""
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/omnitypes.py
RENAMED
|
@@ -120,7 +120,7 @@ class ChlorinatorAlert(Flag):
|
|
|
120
120
|
LOW_VOLTAGE = 1 << 3 # Low voltage alert
|
|
121
121
|
CELL_TEMP_LOW = 1 << 4 # Cell water temperature low
|
|
122
122
|
CELL_TEMP_SCALEBACK = 1 << 5 # Cell water temperature scaleback
|
|
123
|
-
# CELL_TEMP_LOW and CELL_TEMP_SCALEBACK
|
|
123
|
+
# NOTE: if both CELL_TEMP_LOW and CELL_TEMP_SCALEBACK are set, it indicates CELL_TEMP_HIGH
|
|
124
124
|
BOARD_TEMP_HIGH = 1 << 6 # Board temperature high
|
|
125
125
|
BOARD_TEMP_CLEARING = 1 << 7 # Board temperature clearing
|
|
126
126
|
CELL_CLEAN = 1 << 11 # Cell cleaning runtime alert
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/__init__.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/api.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/constants.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/exceptions.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/api/mock_api.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/backyard.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/chlorinator.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/__init__.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/bows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/csads.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/filters.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/groups.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/heaters.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/lights.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/pumps.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/relays.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/sensors.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/get/valves.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/cli/pcap_utils.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/collections.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/colorlogiclight.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/csad_equip.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/heater_equip.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/__init__.py
RENAMED
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/models/const.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/omnilogic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-0.28.1 → python_omnilogic_local-0.28.2}/pyomnilogic_local/schedule.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|