I’ve added a bucket load of code to essentially create a zone control system for my under-floor central heating with 2 x 200mm dampers controlled by 2 x Shelly 2.5’s in cover mode. A temp sensor in each bedroom feeds info back to a fake climate devices that prevent the two bedrooms from overheating when the rumpus room (where the main thermostat is located) is turned on.
Thing is, you have to reduce the fan speed if one or both of the dampers is closed to reduce the pressure in the system. With the Mitsi $2500 stock zone control system, this is automated using a pressure sensor installed during the setup.
For now, I’ve simply forced the fan speed to low if any of the two dampers close but this is not dynamic. If the dampers both open to heat the bedrooms, the fan speed does not go back up. Id like the fan speed to be dynamic and to be high when the HVAC is set to heat (and both dampers are open which is the default state), change to medium if one damper closes and down to low if both dampers close. The the reverse as the dampers open back up.
I have played around with the code below and apart from the fan speed going to high on the initial turn on of the HVAC to heat, the other fan modes (replicated by a fake input select for testing) do not change. I’ve been staring at it for so long and trying so many different options, I can’t see the wood for the trees now.
Anyone spot my errors or suggest a better way using a service template?
alias: Test fan speed based on dampers
description: ""
trigger:
- platform: state
entity_id:
- climate.rumpus
to: heat
id: Rumpus Climate on Heat
- platform: state
entity_id:
- cover.damper_group
id: Damper Group Open
alias: When Position of Damper Group changes to 100 (open)
attribute: current_position
to: "100"
- platform: state
entity_id:
- cover.damper_group
to: "0"
id: Damper Group Closed
alias: When Position of Damper Group changes to 0 (closed)
attribute: current_position
- platform: state
entity_id:
- cover.damper_group
attribute: current_position
to: "50"
id: Damper Group 50%
alias: When Position of Damper Group changes to 50 (one open, one closed)
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- Rumpus Climate on Heat
sequence:
- service: input_select.select_option
data:
option: High
target:
entity_id: input_select.fake_fan_switch
alias: Set fake fan switch to High
- conditions:
- condition: trigger
id:
- Damper Group 50%
- condition: state
entity_id: climate.rumpus
state: heat
sequence:
- service: input_select.select_option
data:
option: Medium
target:
entity_id: input_select.fake_fan_switch
alias: Set fake fan switch to Med
- conditions:
- condition: trigger
id:
- Damper Group Closed
sequence:
- service: input_select.select_option
data:
option: Low
target:
entity_id: input_select.fake_fan_switch
alias: Set fake fan switch to Low
- conditions:
- condition: trigger
id:
- Damper Group Open
sequence:
- service: input_select.select_option
data:
option: High
mode: single