]> git.basschouten.com Git - openhab-addons.git/commitdiff
[touchwand] Fix thermostat target temperature command (#13427)
authorRoie Geron <roie.geron@gmail.com>
Sun, 25 Sep 2022 08:25:10 +0000 (11:25 +0300)
committerGitHub <noreply@github.com>
Sun, 25 Sep 2022 08:25:10 +0000 (10:25 +0200)
* Fix target temperature command

1) Fix target temperature command
2) fixed typo in log

* Allow update status even if the unit is not alive

Seems 'acwand' status is always "DOWN" so ignore this and just log debug

Signed-off-by: Roie Geron <roie.geron@gmail.com>
bundles/org.openhab.binding.touchwand/src/main/java/org/openhab/binding/touchwand/internal/TouchWandRestClient.java
bundles/org.openhab.binding.touchwand/src/main/java/org/openhab/binding/touchwand/internal/TouchWandThermostatHandler.java
bundles/org.openhab.binding.touchwand/src/main/java/org/openhab/binding/touchwand/internal/TouchWandWebSockets.java

index c9281e3a21e6e673e899a30194d3b547b2c576ab..513dcb394fd42b5d21f177f0d8629269ecbe2292 100644 (file)
@@ -230,7 +230,7 @@ public class TouchWandRestClient {
             response = request.send();
             return response.getContentAsString();
         } catch (InterruptedException | TimeoutException | ExecutionException e) {
-            logger.warn("Error opening connecton to {} : {} ", touchWandIpAddr, e.getMessage());
+            logger.warn("Error opening connection to {} : {} ", touchWandIpAddr, e.getMessage());
         }
         return "";
     }
index 81d2ca756533636ad7a502cd0b6803229df599d3..f5a686005c797160065e5b43c10776e7b79047b7 100644 (file)
@@ -58,28 +58,34 @@ public class TouchWandThermostatHandler extends TouchWandBaseUnitHandler {
         if (touchWandBridgeHandler != null) {
             if (command instanceof OnOffType) {
                 touchWandBridgeHandler.touchWandClient.cmdThermostatOnOff(unitId, (OnOffType) command);
-            } else {
-                String sCommand = command.toString();
-                switch (sCommand) {
-                    case "cool":
-                    case "heat":
-                    case "fan":
-                    case "auto":
-                    case "dry":
-                        touchWandBridgeHandler.touchWandClient.cmdThermostatMode(unitId, sCommand);
-                        break;
-                    case "low":
-                    case "medium":
-                    case "high":
-                        touchWandBridgeHandler.touchWandClient.cmdThermostatFanLevel(unitId, sCommand);
-                        break;
-                    case "fanAuto":
-                        touchWandBridgeHandler.touchWandClient.cmdThermostatFanLevel(unitId, "auto");
-                        break;
-                    default:
-                        touchWandBridgeHandler.touchWandClient.cmdThermostatTargetTemperature(unitId, sCommand);
-                        break;
-                }
+                return;
+            }
+            if (command instanceof QuantityType) {
+                final QuantityType<?> value = ((QuantityType<?>) command).toUnit(SIUnits.CELSIUS);
+                String targetTemperature = String.valueOf(value.intValue());
+                touchWandBridgeHandler.touchWandClient.cmdThermostatTargetTemperature(unitId, targetTemperature);
+                return;
+            }
+
+            String sCommand = command.toString();
+            switch (sCommand) {
+                case "cool":
+                case "heat":
+                case "fan":
+                case "auto":
+                case "dry":
+                    touchWandBridgeHandler.touchWandClient.cmdThermostatMode(unitId, sCommand);
+                    break;
+                case "low":
+                case "medium":
+                case "high":
+                    touchWandBridgeHandler.touchWandClient.cmdThermostatFanLevel(unitId, sCommand);
+                    break;
+                case "fanAuto":
+                    touchWandBridgeHandler.touchWandClient.cmdThermostatFanLevel(unitId, "auto");
+                    break;
+                default:
+                    break;
             }
         }
     }
index 24dbd8f23453b9f4673e11e61397782a605122a3..97a4241ba2c05a03f0413a7aec230642b7e580e9 100644 (file)
@@ -156,7 +156,7 @@ public class TouchWandWebSockets {
                 }
                 touchWandUnit = TouchWandUnitFromJson.parseResponse(unitObj.get("unit").getAsJsonObject());
                 if (!touchWandUnit.getStatus().equals("ALIVE")) {
-                    return;
+                    logger.debug("UNIT_CHANGED unit status not ALIVE : {}", touchWandUnit.getStatus());
                 }
                 boolean supportedUnitType = Arrays.asList(SUPPORTED_TOUCHWAND_TYPES).contains(touchWandUnit.getType());
                 if (!supportedUnitType) {