Skip to content

Commit e886907

Browse files
committed
Add input values checking, as suggested
1 parent d2be244 commit e886907

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

plugwise_usb/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ async def set_energy_intervals(
216216
"""Configure the energy logging interval settings."""
217217
try:
218218
await self._network.set_energy_intervals(mac, cons_interval, prod_interval)
219-
except (MessageError, NodeError) as exc:
219+
except (MessageError, NodeError, ValueError) as exc:
220220
raise NodeError(f"{exc}") from exc
221221
return True
222222

plugwise_usb/network/__init__.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,15 @@ async def set_energy_intervals(
549549
Default: consumption = 60, production = 0.
550550
For logging energy in both directions set both to 60.
551551
"""
552-
_LOGGER.debug("set_energy_intervals | cons=%s, prod=%s", consumption, production)
552+
# Validate input parameters
553+
if consumption <= 0:
554+
raise ValueError("Consumption interval must be positive")
555+
if production < 0:
556+
raise ValueError("Production interval must be non-negative")
557+
if production > 0 and production % consumption != 0:
558+
raise ValueError("Production interval must be a multiple of consumption interval")
559+
560+
_LOGGER.debug("set_energy_intervals | cons=%s, prod=%s", consumption, production)
553561
request = CircleMeasureIntervalRequest(
554562
self._controller.send, bytes(mac, UTF8), consumption, production
555563
)

0 commit comments

Comments
 (0)