]> git.basschouten.com Git - openhab-addons.git/commitdiff
[daikin] Fix changing specialmode from ECO to NORMAL (#13230)
authorjimtng <2554958+jimtng@users.noreply.github.com>
Mon, 8 Aug 2022 06:47:05 +0000 (16:47 +1000)
committerGitHub <noreply@github.com>
Mon, 8 Aug 2022 06:47:05 +0000 (08:47 +0200)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java
bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java

index 24283a5e8574885354d78aaa59f30b81c7098533..e73b8fe2574e6f72da278a18e614ebf0d3b70cff 100644 (file)
@@ -137,14 +137,18 @@ public class DaikinWebTargets {
         return EnergyInfoDayAndWeek.parse(response);
     }
 
-    public void setSpecialMode(SpecialMode specialMode) throws DaikinCommunicationException {
+    public void setSpecialMode(SpecialMode newMode) throws DaikinCommunicationException {
         Map<String, String> queryParams = new HashMap<>();
-        if (specialMode == SpecialMode.NORMAL) {
+        if (newMode == SpecialMode.NORMAL) {
             queryParams.put("set_spmode", "0");
-            queryParams.put("spmode_kind", "1");
+
+            ControlInfo controlInfo = getControlInfo();
+            if (!controlInfo.advancedMode.isUndefined()) {
+                queryParams.put("spmode_kind", controlInfo.getSpecialMode().getValue());
+            }
         } else {
             queryParams.put("set_spmode", "1");
-            queryParams.put("spmode_kind", Integer.toString(specialMode.getValue()));
+            queryParams.put("spmode_kind", newMode.getValue());
         }
         String response = invoke(setSpecialModeUri, queryParams);
         if (!response.contains("ret=OK")) {
index 8f90c82635742153788740da1fa76b66bd8ae65f..cecc82618be00f55432758ff0fa9f7386ae24409 100644 (file)
@@ -181,17 +181,17 @@ public class Enums {
     }
 
     public enum SpecialMode {
-        NORMAL(0),
-        POWERFUL(1),
-        ECO(2);
+        NORMAL("0"),
+        POWERFUL("1"),
+        ECO("2");
 
-        private final int value;
+        private final String value;
 
-        SpecialMode(int value) {
+        SpecialMode(String value) {
             this.value = value;
         }
 
-        public int getValue() {
+        public String getValue() {
             return value;
         }