We have a Flexit balanced ventilation system.
Unfortunately it doesn’t have any smartness, so it stays on the same ventilation level if it’s hot or humid.
Fortunately it’s possible to control the system through relays and with the help of ESP (ESPHome) and Aqara Humidity sensors.
Since humidity is changing from day to day I have made an average humidity sensor for the whole house as a baseline to trigger changes in humidity in bathrooms.
ESP:
switch: - platform: gpio pin: 5 name: "S1 fan speed 1" id: relay1 interlock: &interlock_group [relay1, relay2, relay3, relay4] - platform: gpio pin: 4 name: "S2 fan speed 2" id: relay2 interlock: *interlock_group - platform: gpio pin: 0 name: "S3 fan speed 3" id: relay3 interlock: *interlock_group - platform: gpio pin: 14 name: "S4 fan speed 4" id: relay4 interlock: *interlock_group - platform: gpio pin: 12 name: "Cooling recovery" id: relay5 - platform: gpio pin: 13 name: "Relay 6" id: relay6
Sensor:
# Humidity average house - platform: template sensors: humidity_average_house: friendly_name: 'Humidity average house' value_template: "{{ ((state_attr('sensor.living_room1_humidity_air', 'value') + state_attr('sensor.living_room2_humidity_air', 'value') + state_attr('sensor.attic1_humidity_air', 'value') + state_attr('sensor.attic2_humidity_air', 'value') + state_attr('sensor.office_humidity_air', 'value')) /5) }}" unit_of_measurement: "%"
Binary sensor:
- platform: template sensors: high_humidity_main_bathroom: value_template: >- {{ (states('sensor.humidity_average_house') | float *1.2) < (states('sensor.main_bathroom_temperature_sensor_humidity')) | float}} - platform: template sensors: high_humidity_bathroom: value_template: >- {{ (states('sensor.humidity_average_house') | float *1.2) < (states('sensor.bathroom_temperature_sensor_humidity')) | float}}
Automation:
# Ventilation state - alias: Ventilation state id: ventilation_state trigger: - platform: homeassistant event: start - platform: time_pattern minutes: "/5" - platform: state entity_id: binary_sensor.high_humidity_main_bathroom to: 'on' - platform: state entity_id: binary_sensor.high_humidity_bathroom to: 'on' - platform: state entity_id: binary_sensor.high_humidity_main_bathroom to: 'off' - platform: state entity_id: binary_sensor.high_humidity_bathroom to: 'off' action: - choose: # Choice 0 - High temperature increase ventilation - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_temperature above: 5 - condition: numeric_state entity_id: sensor.living_room_1_temperature_air above: 24 - condition: numeric_state entity_id: sensor.living_room_2_temperature_air above: 25 - condition: numeric_state entity_id: sensor.living_room_3_temperature_air above: 25 - condition: state entity_id: switch.s4_fan_speed_4 state: 'off' - condition: state entity_id: binary_sensor.high_humidity_main_bathroom state: 'off' - condition: state entity_id: binary_sensor.high_humidity_bathroom state: 'off' sequence: - service: switch.turn_on data: entity_id: switch.s4_fan_speed_4 - delay: '00:00:10' - service: switch.turn_on data: entity_id: switch.cooling_recovery # Choice 1 - Lower temperature decrease ventilation - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.living_room_1_temperature_air below: 23.9 - condition: numeric_state entity_id: sensor.living_room_2_temperature_air below: 24.9 - condition: numeric_state entity_id: sensor.living_room_3_temperature_air below: 24.9 - condition: state entity_id: switch.s2_fan_speed_2 state: 'off' - condition: state entity_id: binary_sensor.high_humidity_main_bathroom state: 'off' - condition: state entity_id: binary_sensor.high_humidity_bathroom state: 'off' sequence: - service: switch.turn_on data: entity_id: switch.s2_fan_speed_2 - delay: '00:00:10' - service: switch.turn_off data: entity_id: switch.cooling_recovery # Choice 2 - Low temperature turn off cooling - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_temperature below: 5 - condition: state entity_id: binary_sensor.high_humidity_main_bathroom state: 'off' - condition: state entity_id: binary_sensor.high_humidity_bathroom state: 'off' sequence: - service: switch.turn_off data: entity_id: switch.cooling_recovery # Choice 3 - High humidity increase ventilation - conditions: - condition: and conditions: - condition: state entity_id: binary_sensor.high_humidity_main_bathroom state: 'on' - condition: state entity_id: switch.s4_fan_speed_4 state: 'off' sequence: - service: switch.turn_on data: entity_id: switch.s4_fan_speed_4 # Choice 4 - High humidity increase ventilation - conditions: - condition: and conditions: - condition: state entity_id: binary_sensor.high_humidity_bathroom state: 'on' - condition: state entity_id: switch.s4_fan_speed_4 state: 'off' sequence: - service: switch.turn_on data: entity_id: switch.s4_fan_speed_4 # Choice 5 - Low humidity decrease ventilation - conditions: - condition: and conditions: - condition: state entity_id: binary_sensor.high_humidity_main_bathroom state: 'off' - condition: state entity_id: binary_sensor.high_humidity_bathroom state: 'off' - condition: state entity_id: switch.s2_fan_speed_2 state: 'off' sequence: - service: switch.turn_on data: entity_id: switch.s2_fan_speed_2