Browse Source

Fix: use HA built-in mode name (#405)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Retha Runolfsson 1 day ago
parent
commit
a338b70513

+ 2 - 2
switchbot/const/climate.py

@@ -29,9 +29,9 @@ class SmartThermostatRadiatorMode(Enum):
     SCHEDULE = 0
     MANUAL = 1
     OFF = 2
-    ECONOMIC = 3
+    ECO = 3
     COMFORT = 4
-    FAST_HEATING = 5
+    BOOST = 5
 
     @property
     def lname(self) -> str:

+ 4 - 6
switchbot/devices/smart_thermostat_radiator.py

@@ -32,13 +32,13 @@ COMMAND_SET_MODE = {
 # fast heating default use max temperature
 COMMAND_SET_TEMP = {
     STRMode.MANUAL.lname: "570F7801{temp:04X}",
-    STRMode.ECONOMIC.lname: "570F7802{temp:02X}",
+    STRMode.ECO.lname: "570F7802{temp:02X}",
     STRMode.COMFORT.lname: "570F7803{temp:02X}",
     STRMode.SCHEDULE.lname: "570F7806{temp:04X}",
 }
 
 MODE_TEMP_RANGE = {
-    STRMode.ECONOMIC.lname: (10.0, 20.0),
+    STRMode.ECO.lname: (10.0, 20.0),
     STRMode.COMFORT.lname: (10.0, 25.0),
 }
 
@@ -139,10 +139,8 @@ class SwitchbotSmartThermostatRadiator(
         """Send command to set target temperature."""
         if self.preset_mode == STRMode.OFF.lname:
             raise SwitchbotOperationError("Cannot set temperature when mode is OFF.")
-        if self.preset_mode == STRMode.FAST_HEATING.lname:
-            raise SwitchbotOperationError(
-                "Fast Heating mode defaults to max temperature."
-            )
+        if self.preset_mode == STRMode.BOOST.lname:
+            raise SwitchbotOperationError("Boost mode defaults to max temperature.")
 
         temp_value = int(temperature * 10)
         cmd = COMMAND_SET_TEMP[self.preset_mode].format(temp=temp_value)

+ 4 - 4
tests/test_smart_thermostat_radiator.py

@@ -103,9 +103,9 @@ async def test_set_hvac_mode_commands(mode, expected_command) -> None:
         (STRMode.SCHEDULE.lname, COMMAND_SET_MODE[STRMode.SCHEDULE.lname]),
         (STRMode.MANUAL.lname, COMMAND_SET_MODE[STRMode.MANUAL.lname]),
         (STRMode.OFF.lname, COMMAND_SET_MODE[STRMode.OFF.lname]),
-        (STRMode.ECONOMIC.lname, COMMAND_SET_MODE[STRMode.ECONOMIC.lname]),
+        (STRMode.ECO.lname, COMMAND_SET_MODE[STRMode.ECO.lname]),
         (STRMode.COMFORT.lname, COMMAND_SET_MODE[STRMode.COMFORT.lname]),
-        (STRMode.FAST_HEATING.lname, COMMAND_SET_MODE[STRMode.FAST_HEATING.lname]),
+        (STRMode.BOOST.lname, COMMAND_SET_MODE[STRMode.BOOST.lname]),
     ],
 )
 @pytest.mark.asyncio
@@ -131,7 +131,7 @@ async def test_set_target_temperature_command() -> None:
     ("mode", "match"),
     [
         (STRMode.OFF.lname, "Cannot set temperature when mode is OFF."),
-        (STRMode.FAST_HEATING.lname, "Fast Heating mode defaults to max temperature."),
+        (STRMode.BOOST.lname, "Boost mode defaults to max temperature."),
     ],
 )
 async def test_set_target_temperature_with_invalid_mode(mode, match) -> None:
@@ -180,7 +180,7 @@ async def test_get_basic_info_none() -> None:
                 0.8,
                 62,
                 "comfort",
-                "economic",
+                "eco",
                 24.0,
                 4.0,
                 13.0,