python-omnilogic-local 2.1.1__tar.gz → 2.2.0__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-2.1.1 → python_omnilogic_local-2.2.0}/PKG-INFO +1 -1
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/chlorinator.py +44 -4
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyproject.toml +1 -1
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/LICENSE +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/README.md +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/__init__.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/_base.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/__init__.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/api.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/constants.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/exceptions.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/message.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/mock_api.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/protocol.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/backyard.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/bow.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/chlorinator_equip.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/__init__.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/cli.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/debug/__init__.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/debug/commands.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/__init__.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/backyard.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/bows.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/chlorinators.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/commands.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/csads.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/filters.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/groups.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/heaters.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/lights.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/pumps.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/relays.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/schedules.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/sensors.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/valves.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/pcap_utils.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/utils.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/collections.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/colorlogiclight.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/csad.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/csad_equip.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/decorators.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/filter.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/groups.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/heater.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/heater_equip.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/__init__.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/const.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/exceptions.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/filter_diagnostics.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/leadmessage.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/mspconfig.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/telemetry.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/omnilogic.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/omnitypes.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/pump.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/py.typed +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/relay.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/schedule.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/sensor.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/system.py +0 -0
- {python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-omnilogic-local
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
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-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/chlorinator.py
RENAMED
|
@@ -372,7 +372,7 @@ class Chlorinator(OmniEquipment[MSPChlorinator, TelemetryChlorinator]):
|
|
|
372
372
|
Note:
|
|
373
373
|
This method uses the async_set_chlorinator_params API which requires
|
|
374
374
|
all chlorinator configuration parameters. The current values from
|
|
375
|
-
mspconfig are used for unchanged parameters.
|
|
375
|
+
mspconfig/telemetry are used for unchanged parameters.
|
|
376
376
|
"""
|
|
377
377
|
if self.bow_id is None or self.system_id is None:
|
|
378
378
|
msg = "Cannot set timed percent: bow_id or system_id is None"
|
|
@@ -388,17 +388,57 @@ class Chlorinator(OmniEquipment[MSPChlorinator, TelemetryChlorinator]):
|
|
|
388
388
|
msg = f"Cannot find bow with id {self.bow_id}"
|
|
389
389
|
raise OmniEquipmentNotInitializedError(msg)
|
|
390
390
|
|
|
391
|
-
# Map equipment type to numeric bow_type value
|
|
392
|
-
# BOW_POOL = 0, BOW_SPA = 1 (based on typical protocol values)
|
|
393
391
|
bow_type = 0 if bow.equip_type == "BOW_POOL" else 1
|
|
394
392
|
|
|
395
393
|
await self._api.async_set_chlorinator_params(
|
|
396
394
|
pool_id=self.bow_id,
|
|
397
395
|
equipment_id=self.system_id,
|
|
398
396
|
timed_percent=percent,
|
|
399
|
-
cell_type=self.mspconfig.cell_type.value,
|
|
397
|
+
cell_type=self.mspconfig.cell_type.value,
|
|
400
398
|
op_mode=self.operating_mode.value,
|
|
401
399
|
sc_timeout=self.superchlor_timeout,
|
|
402
400
|
bow_type=bow_type,
|
|
403
401
|
orp_timeout=self.orp_timeout,
|
|
404
402
|
)
|
|
403
|
+
|
|
404
|
+
@control_method
|
|
405
|
+
async def set_op_mode(self, op_mode: ChlorinatorOperatingMode) -> None:
|
|
406
|
+
"""Set the operating mode for chlorine generation.
|
|
407
|
+
|
|
408
|
+
Args:
|
|
409
|
+
op_mode: The operating mode for chlorine generation.
|
|
410
|
+
|
|
411
|
+
Raises:
|
|
412
|
+
OmniEquipmentNotInitializedError: If bow_id or system_id is None.
|
|
413
|
+
|
|
414
|
+
Note:
|
|
415
|
+
This method uses the async_set_chlorinator_params API which requires
|
|
416
|
+
all chlorinator configuration parameters. The current values from
|
|
417
|
+
mspconfig/telemetry are used for unchanged parameters.
|
|
418
|
+
"""
|
|
419
|
+
if self.bow_id is None or self.system_id is None:
|
|
420
|
+
msg = "Cannot set operating mode: bow_id or system_id is None"
|
|
421
|
+
raise OmniEquipmentNotInitializedError(msg)
|
|
422
|
+
|
|
423
|
+
# Get the parent Bow to determine bow_type
|
|
424
|
+
# We need to find our bow in the backyard
|
|
425
|
+
if (bow := self._omni.backyard.bow.get(self.bow_id)) is None:
|
|
426
|
+
msg = f"Cannot find bow with id {self.bow_id}"
|
|
427
|
+
raise OmniEquipmentNotInitializedError(msg)
|
|
428
|
+
|
|
429
|
+
if self.timed_percent_telemetry is None:
|
|
430
|
+
msg = "Cannot set operating mode: timed_percent telemetry value is None"
|
|
431
|
+
raise OmniEquipmentNotInitializedError(msg)
|
|
432
|
+
|
|
433
|
+
bow_type = 0 if bow.equip_type == "BOW_POOL" else 1
|
|
434
|
+
|
|
435
|
+
await self._api.async_set_chlorinator_params(
|
|
436
|
+
pool_id=self.bow_id,
|
|
437
|
+
equipment_id=self.system_id,
|
|
438
|
+
timed_percent=self.timed_percent_telemetry,
|
|
439
|
+
cell_type=self.mspconfig.cell_type.value,
|
|
440
|
+
op_mode=op_mode.value,
|
|
441
|
+
sc_timeout=self.superchlor_timeout,
|
|
442
|
+
bow_type=bow_type,
|
|
443
|
+
orp_timeout=self.orp_timeout,
|
|
444
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/constants.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/exceptions.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/message.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/mock_api.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/api/protocol.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/chlorinator_equip.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/__init__.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/backyard.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/bows.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/commands.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/csads.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/filters.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/groups.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/heaters.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/lights.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/pumps.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/relays.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/schedules.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/sensors.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/get/valves.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/pcap_utils.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/cli/utils.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/collections.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/colorlogiclight.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/csad_equip.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/heater_equip.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/__init__.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/const.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/mspconfig.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/models/telemetry.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/omnilogic.py
RENAMED
|
File without changes
|
{python_omnilogic_local-2.1.1 → python_omnilogic_local-2.2.0}/pyomnilogic_local/omnitypes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|