From e916974e38ade2cbb869bb725213eaaaa7954cc0 Mon Sep 17 00:00:00 2001 From: jimtng <2554958+jimtng@users.noreply.github.com> Date: Mon, 8 Aug 2022 16:47:05 +1000 Subject: [PATCH] [daikin] Fix changing specialmode from ECO to NORMAL (#13230) Signed-off-by: Jimmy Tanagra --- .../binding/daikin/internal/DaikinWebTargets.java | 12 ++++++++---- .../openhab/binding/daikin/internal/api/Enums.java | 12 ++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java index 24283a5e857..e73b8fe2574 100644 --- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java +++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java @@ -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 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")) { diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java index 8f90c826357..cecc82618be 100644 --- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java +++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java @@ -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; }