From 2f0d03337ce7206df1c4a4f2c2e4c1822e444468 Mon Sep 17 00:00:00 2001 From: David Bonnes Date: Fri, 2 Aug 2019 11:44:17 +0100 Subject: [PATCH] Correct evohome typos, add example templates (#10016) * Initial commit * small tweak * some clarifications, tweaks * some clarifications, tweaks 2 * some clarifications, tweaks 3 * :pencil2: Tweaks --- source/_components/evohome.markdown | 70 +++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/source/_components/evohome.markdown b/source/_components/evohome.markdown index 37579a80c23..250f0a0b38a 100644 --- a/source/_components/evohome.markdown +++ b/source/_components/evohome.markdown @@ -12,26 +12,27 @@ redirect_from: --- The `evohome` integration links Home Assistant with all _non-US_ [Honeywell Total Connect Comfort (TCC)](https://international.mytotalconnectcomfort.com/Account/Login) CH/DHW systems, such as: - * the Honeywell evohome CH/DHW system, and - * the Honeywell Round Thermostat + +- The Honeywell evohome CH/DHW system, and +- The Honeywell Round Thermostat It does not support the home security functionality of TCC. It uses v2 of the [evohome-client](https://github.com/watchforstock/evohome-client) client library. -Honeywell removed support for higher-precision temperatures from the v2 API, so temperatures are reported to the nearest 0.5C. +Honeywell removed support for higher-precision temperatures from the v2 API, and thus reported temperatures are rounded up to the nearest 0.5C. ### evohome -evohome is a multi-zone system. Each Zone is represented as a **Climate** device: it will expose the Zone's operating mode, temperature and setpoint. +evohome is a multi-zone system. Each zone is represented as a **Climate** device: it will expose the zone's operating mode, temperature and setpoint. -The Controller/Location is also represented as a **Climate** device: it will expose the location's operating mode (see below for details). Note that the Controller's temperatures are calculated as an average of all the Zones. +The controller/location is also represented as a **Climate** device: it will expose the location's operating mode (see below for details). Note that the controller's current temperature is calculated as an average of all the Zones. The DHW controller is represented as a **WaterHeater** device: It will report its current temperature (but not target temperature), and it can be turned on or off. ### Round Thermostat -Round Thermostat is a single zone system. It is currently implemented as two **Climate** devices, as if a single zone evohome system. +Although Round Thermostat is, strictly speaking, a Controller and a single zone, they are merged into a single **Climate** device. ## Configuration @@ -67,32 +68,65 @@ scan_interval: This is an IoT cloud-polling device, and the recommended `scan_interval` is 180 seconds. Testing has indicated that this is a safe interval that - by itself - shouldn't cause you to be rate-limited by Honeywell. -## Operating modes, and Inheritance +## Operating modes, and inheritance Zones support only three setpoint modes: **FollowSchedule**, **TemporaryOverride**, and **PermanentOverride**. -Mostly, the Zone 'inherits' its functional operating mode from the controller (the actual algorithm for this is a little complicated). +Mostly, the zone 'inherits' its functional operating mode from the controller (the actual algorithm for this is a little complicated). -The evohome Controller supports seven distinct system modes: **Auto**, **AutoWithEco**, **Away**, **DayOff**, **HeatingOff**, and **Custom**; **AutoWithReset** is a hidden mode that will revert all Zones to **FollowSchedule** mode. +The evohome controller supports seven distinct system modes: **Auto**, **AutoWithEco**, **Away**, **DayOff**, **HeatingOff**, and **Custom**; **AutoWithReset** is a hidden mode that will revert all zones to **FollowSchedule** mode. If the zone is in **FollowSchedule** mode, its `temperature` (target temperature) is a function of its scheduled temperature and its functional mode - for example, **AutoWithEco** is scheduled temperature less 3C. -If the Controller is set to **HeatingOff** (target temperature to minimum) or **Away** (target temperature to 12C), then the Zones will inherit that mode regardless of their own setpoint mode. +If the controller is set to **HeatingOff** (target temperature to a minimum) or **Away** (target temperature to 12C), then the zones will inherit that mode regardless of their own setpoint mode. -If the Zone's temperature is changed, then it will be a **TemporaryOverride** that will revert to **FollowSchedule** at the next scheduled setpoint. Once this is done, the ZOne can be switched to **PermanentOverride** mode. +If the zone's temperature is changed, then it will be a **TemporaryOverride** that will revert to **FollowSchedule** at the next scheduled setpoint. Once this is done, the zone can be switched to **PermanentOverride** mode. -In Home Assistant, all this is done via `HVAC_MODE` and `PRESET_MODE`. However, the actual operating mode of these devices can be tracked via its state attributes, which includes a JSON data structure for current state called `status`. +In Home Assistant, all this is done via `HVAC_MODE` and `PRESET_MODE` (but also see `systemModeStatus`, `setpointStatus`, below). + +## Useful Jinja Templates + +The actual operating mode of evohome entities can be tracked via their state attributes, which includes a JSON data structure for the current state called `status`. + +For the Controller, see `systemModeStatus`: -For the Controller: {% raw %} -``` -value_template: "{{ state_attr('climate.main_room', 'status').systemModeStatus.mode }}" +```text +{% if state_attr('climate.my_home', 'status').systemModeStatus.mode == "Away" %} + The system is in Away mode +{% else %} + The system is not in Away mode +{% endif %} ``` {% endraw %} -For the Zones: +For the Zones, it is `setpointStatus`: + {% raw %} +```text +{{ state_attr('climate.kitchen', 'status').setpointStatus.setpointMode }} ``` -value_template: "{{ state_attr('climate.my_house', 'status').setpointStatus.setpointMode }}" +{% endraw %} + +The Zones will expose the current/upcoming scheduled `setpoints`: + +{% raw %} +```text +{{ state_attr('climate.kitchen', 'status').setpoints.next.temperature }} ``` -{% endraw %} \ No newline at end of file +{% endraw %} + +All evohome entities may have faults, and these can be turned into sensors, or: + +{% raw %} +```text +{% if state_attr('climate.bedroom', 'status').activeFaults %} + {% if state_attr('climate.bedroom', 'status').activeFaults[0].faultType == 'TempZoneActuatorLowBattery' %} + There is a low battery + {% endif %} + There is a Fault! +{% else %} + Yay, everything is OK :) +{% endif %} +``` +{% endraw %}