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: singleWhen 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: singleThis 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: singleSetting 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: singleDisplaying 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: singleBelow 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: singleDisplaying 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: singleIf 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: singleDisplaying 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: singleIf 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: singleWhen 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: singleWhen 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: singleNext 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.