From dfa1d5e7a75ac23d0afcd40c600a6ae775f3c07d Mon Sep 17 00:00:00 2001 From: Xeyame Date: Fri, 5 Apr 2019 22:38:10 +0200 Subject: [PATCH] Fix HomeAssisant Thermostat integration Things like translations work proper with the auto/manual/off messages. Also it allows for working buttons in HA. --- doc/home_assistant/climate.yaml | 6 +++--- src/ems-esp.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/home_assistant/climate.yaml b/doc/home_assistant/climate.yaml index 18799bc19..2ddbbece1 100644 --- a/doc/home_assistant/climate.yaml +++ b/doc/home_assistant/climate.yaml @@ -1,9 +1,9 @@ - platform: mqtt name: Thermostat modes: - - low - - manual - - auto + - "auto" + - "manual" + - "off" mode_state_topic: "home/ems-esp/thermostat_data" current_temperature_topic: "home/ems-esp/thermostat_data" diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index eea686639..e87d1afcc 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -1233,9 +1233,9 @@ void MQTTCallback(unsigned int type, const char * topic, const char * message) { myDebug("MQTT topic: thermostat mode value %s", message); if (strcmp((char *)message, "auto") == 0) { ems_setThermostatMode(2); - } else if (strcmp((char *)message, "day") == 0) { + } else if (strcmp((char *)message, "day") == 0 || strcmp((char *)message, "manual") == 0) { ems_setThermostatMode(1); - } else if (strcmp((char *)message, "night") == 0) { + } else if (strcmp((char *)message, "night") == 0 || strcmp((char *)message, "off") == 0) { ems_setThermostatMode(0); } }