Automation: one thermostat "follows" central thermostat?

Hi everyone,

This can’t be difficult (but I can’t… yet :slight_smile: )

I have one virtual “central thermostat”, defined as follows:

# ===============================================
# CLIMATE
# ===============================================
climate:
  - platform: mqtt
    name: "centrale_verwarming"
    min_temp: "10"
    max_temp: "30"
    temp_step: 0.5
    modes:
      - "auto"
      - "off"
      - "heat"

    power_command_topic: "hass/hvac/centrale_verwarming/power/set"
    mode_command_topic: "hass/hvac/centrale_verwarming/mode/set"
    temperature_command_topic: "hass/hvac/centrale_verwarming/temperature/set"
    fan_mode_command_topic: "hass/hvac/centrale_verwarming/fan/set"
    swing_mode_command_topic: "hass/hvac/centrale_verwarming/swing/set"

    # huidige temperatuur (xiaomi temp sensor)
    current_temperature_topic: "zigbee2mqtt/0x00158d000323169d"
    current_temperature_template: "{{ value_json.temperature }}"
    precision: 0.1

    action_topic: "hass/hvac/centrale_verwarming/set"
    action_template: "{{ value_json.operation }}"

Than I have 4 real thermostatic radiator valves (TRV), defined as follows:

# ===============================================
# Eurotronic SPZB0001
# ===============================================
climate:
  - platform: "mqtt"
    name: "0x00158d0001ff8bca"
    availability_topic: "zigbee2mqtt/bridge/state"
    min_temp: "10"
    max_temp: "30"
    modes:
      - "off"
      - "auto"
      - "heat"

    # modus (uit/auto/aan)
    mode_state_topic: "zigbee2mqtt/0x00158d0001ff8bca"
    mode_state_template: "{{ value_json.system_mode }}"
    mode_command_topic: "zigbee2mqtt/0x00158d0001ff8bca/set/system_mode"

    # huidige temperatuur
    current_temperature_topic: "zigbee2mqtt/0x00158d0001ff8bca"
    current_temperature_template: "{{ value_json.local_temperature }}"

    # gewenste temperatuur
    temperature_state_topic: "zigbee2mqtt/0x00158d0001ff8bca"
    temperature_state_template: "{{ value_json.current_heating_setpoint }}"
    temperature_command_topic: "zigbee2mqtt/0x00158d0001ff8bca/set/current_heating_setpoint"

    temp_step: 0.5

    action_topic: "zigbee2mqtt/0x00158d0001ff8bca/set"
    action_template: "{{ value_json.operation }}"

etc… (same definitions for my other TRV’s, but with different ID of course)

Now I want my TRV’s to follow the “central thermostat”:

  • If I change temp on the central thermostat, temp should be changed on others too
  • if I change mode (heat/off/on/auto), the other TRV’s should change mode too

I configured a sample with hardcoded mode/temp and time pattern:

- alias: centrale verwarming set temperature
  initial_state: 'off'
  trigger:
    platform: time_pattern
    seconds: '/15'
  action:
    - service: mqtt.publish
      data_template:
        topic: 'zigbee2mqtt/0x00158d0001ff8bca/set/system_mode'
        payload: 'auto'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d0001ff8bca/set/current_heating_setpoint
        payload: '20'

However, I can’t find the correct syntax for triggering my TRV’s, based on changes on my central thermostat.

Any help is appreciated,

your’s dummy,
Bart

This is what I came up with, it seems to work :slight_smile:


# 
# ===============================================
# climate.centrale_verwarming
# ===============================================

- alias: centrale_verwarming_set_temperature
  initial_state: 'on'
  trigger:
    platform: mqtt
    topic: hass/hvac/centrale_verwarming/temperature/set
  action:
    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d0001ff8bca/set/current_heating_setpoint
        payload: '{{ trigger.payload }}'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d0001ff904f/set/current_heating_setpoint
        payload: '{{ trigger.payload }}'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d00053d4000/set/current_heating_setpoint
        payload: '{{ trigger.payload }}'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d00053d404d/set/current_heating_setpoint
        payload: '{{ trigger.payload }}'


- alias: centrale_verwarming_set_mode
  initial_state: 'on'
  trigger:
    platform: mqtt
    topic: hass/hvac/centrale_verwarming/mode/set
  action:
    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d0001ff8bca/set/system_mode
        payload: '{{ trigger.payload }}'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d0001ff904f/set/system_mode
        payload: '{{ trigger.payload }}'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d00053d4000/set/system_mode
        payload: '{{ trigger.payload }}'

    - service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/0x00158d00053d404d/set/system_mode
        payload: '{{ trigger.payload }}'

grtz
B