Problem:
- I have smart TRVs across the home , 1 in every room.
- Each TRV is controlled over mqtt integration and can send/receive target and actual temps.
- Each TRV controlled via UI Generic Thermostat
- I have a boiler controlled by a Z-wave 2-channel (Hot Water and Central Heating) switch (a Danfoss RX)
- Boiler switches are binary_switch components in the UI
- I wish to control the Central Heating channel by determining if any of the TRVs are demanding heat (i.e. actual temp <> target temp)
- If there is a demand for heat , turn the Heating channel on. Otherwise, turn it off.
Current config:
Issues:
Issue 1 - Boiler kettling
I have to set the thermostats to off on the UI to prevent them running the heating on and off and on and off and ā¦ all through the night. Then in the morning I have to set the thermostats on the UI to heating. - PITA. Is there a better way? Iād prefer to have some controlling switch that I can set to AUTO, OFF and ON, such as:-
AUTO = use thermostats
ON = set heat demand permanently on irrespective of thermostats.
OFF = cancel heat demand permanently on irrespective of thermostats
I cannot turn the system on or off permanently. Once i can do this, then I can automate the setting of ON/OFF/AUTOMATE. Small steps first though. Ideally, Iād like this to be integrated as a single entity rather than using the simple two switch entities (Hot Water and Central Heating) as above. But if thatās not possible then whatās the best way? Not sure what integration / component / platform / services to use? Dont need a config.yaml from you, just the design model I should use and Iāll google it in HA docs.
Issue 2 - Multizone not working
The automation isnt working correctly to my mind.
Currently , each generic therms seem to be āpolledā , in order. Whichever is the last to be polled seems to control the heat demand on the Boiler settings. For example, if the heating is on and the ālastā therm to be polled has an actual temp that is greater than the user demand (the orange circle) then the heating is switched off , despite what the other two thermostats are doing - for example one might still be calling for heat but is disregarded.
What I actually want is:-
IF Central Heating switch is On
AND
all 3 thermostats have reached target temperature
THEN
turn off Central Heating Boiler Switch
ELSE
IF Central Heating is Off
AND
any one of the thermostats actual is less than desired temp
THEN
turn Central Heating Switch On
END IF
END IF
It is all probably working according to my config; the issue is I am not sure what design model I need to use to achieve my intents above:-
My config is below:-
# configuration.yaml
climate:
- platform: generic_thermostat
name: lounge
heater: switch.danfoss_rxz3_rf_relay_switching_unit_switch_2
target_sensor: sensor.lounge_temperature
min_temp: 10
max_temp: 23
cold_tolerance: 0.3
hot_tolerance: 0.3
initial_hvac_mode: "heat"
precision: 0.5
- platform: generic_thermostat
name: summer
heater: switch.danfoss_rxz3_rf_relay_switching_unit_switch_2
target_sensor: sensor.summer_temperature
min_temp: 10
max_temp: 23
cold_tolerance: 0.3
hot_tolerance: 0.3
initial_hvac_mode: "heat"
precision: 0.5
- platform: generic_thermostat
name: dad
heater: switch.danfoss_rxz3_rf_relay_switching_unit_switch_2
target_sensor: sensor.dad_temperature
min_temp: 10
max_temp: 23
cold_tolerance: 0.3
hot_tolerance: 0.3
initial_hvac_mode: "heat"
precision: 0.5
# automations.yaml
- alias: 'Dad temp automate'
trigger:
platform: state
entity_id: climate.dad
action:
service: input_number.set_value
entity_id: input_number.dad_temp
data_template:
value: "{{ trigger.to_state.attributes.temperature | float }}"
- alias: 'Lounge temp automate'
trigger:
platform: state
entity_id: climate.lounge
action:
service: input_number.set_value
entity_id: input_number.lounge_temp
data_template:
value: "{{ trigger.to_state.attributes.temperature | float }}"
- alias: 'Summer temp automate'
trigger:
platform: state
entity_id: climate.summer
action:
service: input_number.set_value
entity_id: input_number.summer_temp
data_template:
value: "{{ trigger.to_state.attributes.temperature | float }}"
Help!
Many thanks
EDIT 1:
Found this: Auto heating control - not easy :)
May be this would help with Issue 2; I would have a binary sensor that is moded On/Off according to the On/Off state of the 3x therms. I will look into this.
UPDATE: Nope. That wonāt work because the Generic Thermostats all require the heating variable to be defined. I dont want that. I want a binary_sensor template sensor to be set something like this, and for the Central Heating switch to be set accordingly:-
# Switch to set CH On or Off depending on thermostat heat demands
binary_sensor:
platform: template
sensors:
auto_ch_switch
value_template: >
{{ is_state('climate.dad' , 'on')
or is_state('climate.summer , 'on' )
or is_state('climate.lounge' , 'on') }}