From 728ce99f5afab670281fa23c327dc87be25883c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 17:56:36 +0000 Subject: [PATCH 1/2] Initial plan From db2442333be817fbe12ba90fda9a3e7bd32c09d7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 18:03:10 +0000 Subject: [PATCH 2/2] Replace magic number 5 with DhwOperationSetting.VACATION enum Co-authored-by: eman <19387+eman@users.noreply.github.com> --- src/nwp500/mqtt_device_control.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/nwp500/mqtt_device_control.py b/src/nwp500/mqtt_device_control.py index 3d49854..0b57e3a 100644 --- a/src/nwp500/mqtt_device_control.py +++ b/src/nwp500/mqtt_device_control.py @@ -19,6 +19,7 @@ from typing import Any, Callable, Optional from .constants import CommandCode +from .enums import DhwOperationSetting from .exceptions import ParameterValidationError, RangeValidationError from .models import Device, fahrenheit_to_half_celsius @@ -196,7 +197,8 @@ async def set_dhw_mode( device: Device object mode_id: Mode ID (1=Heat Pump Only, 2=Electric Only, 3=Energy Saver, 4=High Demand, 5=Vacation) - vacation_days: Number of vacation days (required when mode_id == 5) + vacation_days: Number of vacation days (required when + mode_id == DhwOperationSetting.VACATION) Returns: Publish packet ID @@ -214,7 +216,7 @@ async def set_dhw_mode( - 4: High Demand (maximum heating capacity) - 5: Vacation Mode (requires vacation_days parameter) """ - if mode_id == 5: # Vacation mode + if mode_id == DhwOperationSetting.VACATION: if vacation_days is None: raise ParameterValidationError( "Vacation mode requires vacation_days (1-30)", @@ -232,7 +234,8 @@ async def set_dhw_mode( else: if vacation_days is not None: raise ParameterValidationError( - "vacation_days is only valid for vacation mode (mode 5)", + f"vacation_days is only valid for vacation mode " + f"(mode {DhwOperationSetting.VACATION})", parameter="vacation_days", ) param = [mode_id]