Ian settled on the following as the device he would use in their home to monitor temperatures:
Aqara Temperature and Humidity Sensor, Zigbee, for Remote Monitoring and Home Automation
It states in the product description that an Aqara hub is required, it isn’t, the ConBee II communicates with it perfectly.
Temperature dashboards
On the Lovelace dashboard, Ian created 2 views, Climate/S and Climate/D for summary and detailed


Ian started by creating some ‘helpers’ in Home Assistant as shown below

Below is the Helpers Ian created, Helpers are basically an indicator that is either on/off or yes/no. The example below, named ‘Changed – Study’, is used to see if there has been any temperature change, any change of state then triggers an automation.

On the dashboard view titled Climate/S the card for installing a thermostat is shown below

Temperature difference
On the dashboard view Climate/D the ‘Study Temp from Target’ is used to determine if there has been a change to either the required temperature or the actual temperature

This value is calculated by creating a sensor in the ‘/config/configuration.yaml’ file, which is edited using ‘File editor’. ‘File editor’ is a Home Assistant add-on which needs to be downloaded and installed.

The actual code used above for the ‘sensor.study_temp_diff’ is shown below, the value is rounded to one decimal place
study_current_temperature:
device_class: temperature
unit_of_measurement: '°C'
friendly_name: 'Study Temperature'
value_template: "{{ states.climate.study.attributes.current_temperature }}"
study_target_temperature:
device_class: temperature
unit_of_measurement: '°C'
friendly_name: 'Study Target'
value_template: "{{ states.climate.study.attributes.temperature }}"
study_temp_diff:
friendly_name: 'Study Temperature Difference'
value_template: "{{ ((states.climate.study.attributes.current_temperature) | float - (states.climate.study.attributes.temperature) | float) |round(1) }}"
Below is the automation used to toggle whether there has been a change to any study temperature. The toggle is merely used a visual indicator to show that something has changed.
alias: Climate - Changed Temp - Study
description: ''
trigger:
- platform: state
entity_id: sensor.study_temp_diff
condition: []
action:
- service: input_boolean.toggle
target:
entity_id:
- input_boolean.study_changed
data: {}
mode: single
When you manually change the required temperature of one of the thermostats, as shown below,

First the state change from ‘off’, to keep things simple, it just causes a change to the input_boolean to ‘On’
alias: 'Climate - Boolean On - Study (HVAC) '
description: ''
trigger:
- platform: state
entity_id: climate.study
from: 'off'
condition: []
action:
- service: input_boolean.turn_on
target:
entity_id:
- input_boolean.study_call_4_heat
data: {}
mode: single
This state change can be monitored by more automation, Ian set his up to monitor change from off / on, as follows
Now when the thermostat changes, state to ‘Off’
alias: 'Climate - Boolean Off - Study (HVAC) '
description: ''
trigger:
- platform: state
entity_id: climate.study
to: 'off'
condition: []
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.study_call_4_heat
data: {}
mode: single
Setting a temperature by time
The following automation utilises time to set the required of any thermostat you wish, in this case set the required temperature to 11c at 21.30
alias: Climate - Set Thermostats to Low - 21:30
description: ''
trigger:
- platform: time
at: '21:30'
condition: []
action:
- service: climate.set_temperature
data:
temperature: 11
target:
entity_id:
- climate.kitchen
- climate.study
mode: single
Displaying status on thermostat card
The automation below uses the input_boolean.study_changed as a trigger to detect temperature changes. If the actual temperature drops by more than 1c below the required temperature, then the HVAC status for the thermostat card it set to ‘HEAT’. Though the input_boolean.block_calls_4_heat must also set to ‘Off’, this boolean is whether the sitting-room window to the Catio is open or closed.
alias: Climate - Below Target - Study
description: ''
trigger:
- platform: state
entity_id: input_boolean.study_changed
condition:
- condition: numeric_state
entity_id: sensor.study_temp_diff
below: '-1'
- condition: state
entity_id: input_boolean.block_calls_4_heat
state: 'off'
action:
- service: climate.set_hvac_mode
data:
hvac_mode: heat
target:
entity_id:
- climate.study
mode: single
Below is the automation that will set the thermostat card to heating off, when the actual temperature is 0.5c above the required temperature.
alias: Climate - Above Target - Study
description: ''
trigger:
- platform: state
entity_id: input_boolean.study_changed
condition:
- condition: numeric_state
entity_id: sensor.study_temp_diff
above: '0.5'
action:
- service: climate.set_hvac_mode
data:
hvac_mode: 'off'
target:
entity_id:
- climate.study
mode: single
Displaying Nest thermostat status
The entity below switch.on_off_light_11 is the Sonoff ZBMINI, which can be switched on and off by a relay controlled by the Nest thermostat. The automation looks for the ZBMINI changing from ‘Off’ to ‘On’, In addition, it ensures that the input_boolean.call_4_heat is not ‘On’. If the ZBMINI is on and the input_boolean.call_4_heat is off, then the ZBMINI has been switched on by the Nest thermostat.
alias: Climate - Boiler Required - Nest-4-Heat On
description: ''
trigger:
- platform: state
entity_id: switch.on_off_light_11
from: 'off'
to: 'on'
condition:
- condition: not
conditions:
- condition: state
entity_id: input_boolean.call_4_heat
state: 'On'
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.nest_4_heat
data: {}
mode: single
If ZBMINI changes from ‘On’ to ‘Off’ and the input_boolean.call_4_heat is not ‘On’, then the Nest thermostat must have switched the ZBMINI off.
alias: Climate - Boiler Required - Nest-4-Heat Off
description: ''
trigger:
- platform: state
entity_id: switch.on_off_light_11
from: 'on'
to: 'off'
condition:
- condition: not
conditions:
- condition: state
entity_id: input_boolean.call_4_heat
state: 'On'
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.nest_4_heat
data: {}
mode: single
Displaying other thermostat statuses and turning the boiler On and Off
alias: Climate - Boiler Required - Call-4-Heat On
description: ''
trigger:
- platform: state
entity_id: input_boolean.call_4_heat
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: input_boolean.block_calls_4_heat
state: 'off'
action:
- service: switch.turn_on
target:
device_id: b3fe52693f55e9f6e5616c39694c9ea4
data: {}
- delay:
hours: 0
minutes: 0
seconds: 3
milliseconds: 0
- service: input_boolean.turn_off
target:
entity_id: input_boolean.nest_4_heat
data: {}
mode: single
If the input_boolean.call_4_heat changes from ‘On’ to ‘Off’ then turns off the switch device – b3fe52693f55e9f6e5616c39694c9ea4 which is the Sonoff ZBMINI controlling the boiler.
alias: Climate - Boiler Required - Call-4-Heat Off
description: ''
trigger:
- platform: state
entity_id: input_boolean.call_4_heat
from: 'on'
to: 'off'
condition: []
action:
- service: switch.turn_off
target:
device_id: b3fe52693f55e9f6e5616c39694c9ea4
data: {}
mode: single
When the status of Block_calls_4_heat changes
If the window to the Catio is opened, the input_boolean.block_calls_4_heat will change from ‘Off’ to ‘On’. On this status change, the HVAC status of the Home Assistant thermostats are changed to ‘Off’, turning the boiler off. There is a 3 second delay, then the input_boolean.nest_4_heat is turned ‘Off’, again turning the boiler off.
alias: Climate - If Block-4-Heat Swtiched on
description: ''
trigger:
- platform: state
entity_id: input_boolean.block_calls_4_heat
from: 'off'
to: 'on'
condition: []
action:
- service: climate.set_hvac_mode
data:
hvac_mode: 'off'
target:
entity_id:
- climate.kitchen
- climate.study
- delay:
hours: 0
minutes: 0
seconds: 3
milliseconds: 0
- service: input_boolean.turn_off
target:
entity_id: input_boolean.nest_4_heat
data: {}
mode: single
When the window is closed, the input_boolean.block_calls_4_heat changes from ‘On’ to ‘Off’. This triggers a 10 second delay, then the input_booleans for the thermostats are toggled, either from ‘On’ to Off’ or from ‘Off’ to ‘On’ forcing the Home Assistant automations to decide whether the boiler needs to be fired.
alias: Climate - If Block-4-Heat Swtiched off
description: ''
trigger:
- platform: state
entity_id: input_boolean.block_calls_4_heat
from: 'on'
to: 'off'
condition: []
action:
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: input_boolean.toggle
target:
entity_id:
- input_boolean.study_changed
- input_boolean.kitchen_changed
data: {}
mode: single
Next Steps
The next steps are to install either Zigbee or Z-Wave Thermostatic Radiators Valves (TRV). We will document our progress when we start the install.