From c045b90d2be17429d333dec7c001f7977404f911 Mon Sep 17 00:00:00 2001 From: Hacker-CB Date: Tue, 6 Oct 2020 22:37:15 +0300 Subject: [PATCH] =?UTF-8?q?Add=20tz.tuya=5Fthermostat=5Faway=5Fmode=20(fix?= =?UTF-8?q?=20for=20https://github.com/Koenkk/z=E2=80=A6=20(#4510)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add tz.tuya_thermostat_away_mode (fix for https://github.com/Koenkk/zigbee2mqtt/pull/4491) * Added /* istanbul ignore else */ --- lib/extension/homeassistant.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/extension/homeassistant.js b/lib/extension/homeassistant.js index 65fe40a65..a21f81561 100644 --- a/lib/extension/homeassistant.js +++ b/lib/extension/homeassistant.js @@ -820,15 +820,16 @@ const climate = (minTemp=7, maxTemp=30, temperatureStateProperty='occupied_heati // HA has special behaviour for the away mode // https://github.com/Koenkk/zigbee2mqtt/pull/4491#issuecomment-701550476 - // const indexOfAway = holdModes.indexOf('away'); - // if (indexOfAway > -1) { - // holdModes.splice(indexOfAway, 1); // HA will add "Away" to modes by itself - // retVal.discovery_payload.away_mode_command_topic = true; - // retVal.discovery_payload.away_mode_state_topic = true; - // retVal.discovery_payload.away_mode_state_template = - // '{{ value_json.away_mode }}'; - // } + const indexOfAway = holdModes.indexOf('away'); /* istanbul ignore else */ + if (indexOfAway > -1) { + holdModes.splice(indexOfAway, 1); // HA will add "Away" to modes by itself + retVal.discovery_payload.away_mode_command_topic = true; + retVal.discovery_payload.away_mode_state_topic = true; + retVal.discovery_payload.away_mode_state_template = + '{{ value_json.away_mode }}'; + } + if (holdModes.length > 0) { // || indexOfAway > -1) { retVal.discovery_payload.hold_modes = holdModes; retVal.discovery_payload.hold_command_topic = true; @@ -1814,13 +1815,13 @@ class HomeAssistant extends Extension { payload.hold_state_topic = stateTopic; } - // if (payload.away_mode_state_topic) { - // payload.away_mode_state_topic = stateTopic; - // } + if (payload.away_mode_state_topic) { + payload.away_mode_state_topic = stateTopic; + } - // if (payload.away_mode_command_topic) { - // payload.away_mode_command_topic = `${stateTopic}/set/away_mode`; - // } + if (payload.away_mode_command_topic) { + payload.away_mode_command_topic = `${stateTopic}/set/away_mode`; + } if (payload.current_temperature_topic) { payload.current_temperature_topic = stateTopic;