python-omnilogic-local 0.20.11__tar.gz → 0.20.13__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 (61) hide show
  1. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/PKG-INFO +1 -1
  2. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/api/api.py +1 -1
  3. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/debug/commands.py +4 -11
  4. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyproject.toml +1 -1
  5. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/LICENSE +0 -0
  6. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/README.md +0 -0
  7. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/__init__.py +0 -0
  8. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/_base.py +0 -0
  9. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/api/__init__.py +0 -0
  10. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/api/constants.py +0 -0
  11. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/api/exceptions.py +0 -0
  12. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/api/protocol.py +0 -0
  13. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/backyard.py +0 -0
  14. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/bow.py +0 -0
  15. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/chlorinator.py +0 -0
  16. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/chlorinator_equip.py +0 -0
  17. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/__init__.py +0 -0
  18. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/cli.py +0 -0
  19. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/debug/__init__.py +0 -0
  20. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/__init__.py +0 -0
  21. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/backyard.py +0 -0
  22. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/bows.py +0 -0
  23. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/chlorinators.py +0 -0
  24. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/commands.py +0 -0
  25. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/csads.py +0 -0
  26. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/filters.py +0 -0
  27. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/groups.py +0 -0
  28. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/heaters.py +0 -0
  29. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/lights.py +0 -0
  30. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/pumps.py +0 -0
  31. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/relays.py +0 -0
  32. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/schedules.py +0 -0
  33. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/sensors.py +0 -0
  34. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/get/valves.py +0 -0
  35. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/pcap_utils.py +0 -0
  36. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/cli/utils.py +0 -0
  37. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/collections.py +0 -0
  38. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/colorlogiclight.py +0 -0
  39. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/csad.py +0 -0
  40. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/csad_equip.py +0 -0
  41. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/decorators.py +0 -0
  42. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/filter.py +0 -0
  43. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/groups.py +0 -0
  44. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/heater.py +0 -0
  45. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/heater_equip.py +0 -0
  46. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/__init__.py +0 -0
  47. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/const.py +0 -0
  48. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/exceptions.py +0 -0
  49. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/filter_diagnostics.py +0 -0
  50. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/leadmessage.py +0 -0
  51. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/mspconfig.py +0 -0
  52. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/models/telemetry.py +0 -0
  53. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/omnilogic.py +0 -0
  54. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/omnitypes.py +0 -0
  55. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/pump.py +0 -0
  56. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/py.typed +0 -0
  57. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/relay.py +0 -0
  58. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/schedule.py +0 -0
  59. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/sensor.py +0 -0
  60. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/pyomnilogic_local/system.py +0 -0
  61. {python_omnilogic_local-0.20.11 → python_omnilogic_local-0.20.13}/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.20.11
3
+ Version: 0.20.13
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>
@@ -373,7 +373,7 @@ class OmniLogicAPI:
373
373
  self,
374
374
  pool_id: int,
375
375
  equipment_id: int,
376
- is_on: int | bool,
376
+ is_on: int | bool | str,
377
377
  is_countdown_timer: bool = False,
378
378
  start_time_hours: int = 0,
379
379
  start_time_minutes: int = 0,
@@ -182,22 +182,15 @@ def set_equipment(ctx: click.Context, bow_id: int, equip_id: int, is_on: str) ->
182
182
  ensure_connection(ctx)
183
183
  omni: OmniLogicAPI = ctx.obj["OMNI"]
184
184
 
185
+ is_on_value: int | bool | str
185
186
  # Parse is_on parameter - can be bool-like string or integer
186
187
  is_on_lower = is_on.lower()
187
188
  if is_on_lower in ("true", "on", "yes", "1"):
188
- is_on_value: int | bool = True
189
+ is_on_value = True
189
190
  elif is_on_lower in ("false", "off", "no", "0"):
190
191
  is_on_value = False
191
192
  else:
192
- # Try to parse as integer for variable speed equipment
193
- try:
194
- is_on_value = int(is_on)
195
- if not 0 <= is_on_value <= 100:
196
- click.echo(f"Error: Integer value must be between 0-100, got {is_on_value}", err=True)
197
- raise click.Abort
198
- except ValueError as exc:
199
- click.echo(f"Error: Invalid value '{is_on}'. Use true/false, on/off, or 0-100 for speed.", err=True)
200
- raise click.Abort from exc
193
+ is_on_value = is_on
201
194
 
202
195
  # Execute the command
203
196
  try:
@@ -243,7 +236,7 @@ def set_chlor_params(ctx: click.Context, bow_id: int, equip_id: int, timed_perce
243
236
  omni: OmniLogicAPI = ctx.obj["OMNI"]
244
237
 
245
238
  # Validate timed_percent
246
- if not 0 <= timed_percent <= 100:
239
+ if not 0 <= timed_percent <= 1000: # Temporarily allow up to 1000 to test ORP behavior
247
240
  click.echo(f"Error: timed_percent must be between 0-100, got {timed_percent}", err=True)
248
241
  raise click.Abort
249
242
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-omnilogic-local"
3
- version = "0.20.11"
3
+ version = "0.20.13"
4
4
  description = "A library for local control of Hayward OmniHub/OmniLogic pool controllers using their local API"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<4.0.0"