Request: Blueprint to regulate ventilation system based on Sensors with a Z Wave Dimmer

Hi there!

I have an older Home Ventilation System that I am trying to automate. I managed the hardware part with a Z Wave Dimmer (Quobino Flush 1-10V) and can control the fan speeds in Home Assistant from 0-100% using the slider.

Now I am trying to set up a clever automation and since I am very new to HA I have no idea how!

I managed to set up a simple “Up” and “Down” automation based on a Humidity Sensor crossing certain thresholds, but this isn’t working the way I want it to.
First issue is, that I can’t set any percentages. I can only select “brighter” or “dimmer”. It also isn’t very dynamic.

Since I want to eventually have this working with 3 CO2 or VoC Sensors I need something a little more complex I’m afraid.

My idea:
The “0-10V Dimmer” should regulate in a bracket between 20 and 80% of it’s range. The “Baseline” should be 40% (that is 120m^3 of airflow).
Based on the current humidity (later CO2) readout it should ramp up slowly until the Sensor reading starts dropping and then slowly ramp down again.

I hope someone can help me with this. Thanks!

Ok, so a tiny Update…

I figured some of this out myself. It turns out that the “brightness _increase” was the wrong choice.
I use turn_on instead and then I can set a value. This is already big progress for me.

Now…at my current skill-level I would have to set up about 10 separate automations, 5 for corresponding “up” values and 5 for “down”. It would be easier and prettier if I could somehow combine this.

The idea: create a list of matching pairs…

Example:
CO2 400ppm - 20% Ventilation
CO2 600ppm - 40% Ventilation
CO2 800ppm - 50% Ventilation
CO2 1000ppm - 60% Ventilation
CO2 1200ppm - 80% Ventilation
CO2 1400ppm - 100% Ventilation

How would I go about writing this?
The triggers and actions are simple (read sensor value XX and set light_on XX)

It feels like I’m talking to myself here, but anyway…managed to get this working in a rather convoluted but functional way. I only have one CO2 Sensor so far, two more are arriving tomorrow. Will have to play around with placement and thresholds a bit, but pretty happy with the automation so far!

Here’s the resulting yaml if anyone is interested

  • id: ‘1659476482236’
    alias: Lüftung 50
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      above: 55
      below: 60
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      above: 55
      below: 60
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      above: 800
      below: 1000
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 50
      mode: single
  • id: ‘1659476857347’
    alias: Lüftung 40
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      below: 55
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      below: 55
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      below: 800
      above: 600
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 40
      mode: single
  • id: ‘1659705774041’
    alias: Lüftung 60
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      above: 60
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      above: 60
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      above: 1000
      below: 1400
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 60
      mode: single
  • id: ‘1659710845252’
    alias: Lüftung 30
    description: ‘’
    trigger:
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      below: 55
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      below: 55
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      below: 600
      above: 500
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 30
      mode: single
  • id: ‘1659711015246’
    alias: Lüftung 20
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      below: 55
      condition:
    • type: is_humidity
      condition: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      below: 55
    • type: is_carbon_dioxide
      condition: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      below: 500
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 20
      mode: single
  • id: ‘1659711621994’
    alias: Lüftung 80
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      above: 60
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      above: 70
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      above: 1400
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 80
      mode: single

I have made some changes since the origianl automation had some issues. Here is the current code:

  • id: ‘1659476482236’
    alias: Lüftung 50
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      above: 60
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      above: 60
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      above: 800
      below: 1000
    • type: carbon_dioxide
      platform: device
      device_id: 6554dfa312146774ee689699e8a2e41a
      entity_id: sensor.abluft_co2
      domain: sensor
      above: 800
      below: 1000
    • type: carbon_dioxide
      platform: device
      device_id: 687dc0ca4041da367d7a39de8573e887
      entity_id: sensor.home_wohnzimmer_obergeschoss_co2
      domain: sensor
      above: 800
      below: 1000
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 50
      mode: single
  • id: ‘1659476857347’
    alias: Lüftung 40
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      below: 60
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      below: 60
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      below: 800
      above: 600
    • type: carbon_dioxide
      platform: device
      device_id: 687dc0ca4041da367d7a39de8573e887
      entity_id: sensor.home_wohnzimmer_obergeschoss_co2
      domain: sensor
      above: 600
      below: 800
    • type: carbon_dioxide
      platform: device
      device_id: 6554dfa312146774ee689699e8a2e41a
      entity_id: sensor.abluft_co2
      domain: sensor
      above: 600
      below: 800
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 40
      mode: single
  • id: ‘1659705774041’
    alias: Lüftung 60
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      above: 65
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      above: 65
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      above: 1000
      below: 1400
    • type: carbon_dioxide
      platform: device
      device_id: 6554dfa312146774ee689699e8a2e41a
      entity_id: sensor.abluft_co2
      domain: sensor
      above: 1000
      below: 1400
    • type: carbon_dioxide
      platform: device
      device_id: 687dc0ca4041da367d7a39de8573e887
      entity_id: sensor.home_wohnzimmer_obergeschoss_co2
      domain: sensor
      above: 1000
      below: 1400
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 60
      mode: single
  • id: ‘1659710845252’
    alias: Lüftung 30
    description: ‘’
    trigger:
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      below: 60
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      below: 60
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      below: 600
      above: 500
      condition:
    • type: is_carbon_dioxide
      condition: device
      device_id: 6554dfa312146774ee689699e8a2e41a
      entity_id: sensor.abluft_co2
      domain: sensor
      above: 500
      below: 600
    • type: is_carbon_dioxide
      condition: device
      device_id: 687dc0ca4041da367d7a39de8573e887
      entity_id: sensor.home_wohnzimmer_obergeschoss_co2
      domain: sensor
      above: 500
      below: 600
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 30
      mode: single
  • id: ‘1659711015246’
    alias: Lüftung 20
    description: ‘’
    trigger:
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      below: 500
      condition:
    • type: is_carbon_dioxide
      condition: device
      device_id: 687dc0ca4041da367d7a39de8573e887
      entity_id: sensor.home_wohnzimmer_obergeschoss_co2
      domain: sensor
      below: 500
    • type: is_carbon_dioxide
      condition: device
      device_id: 6554dfa312146774ee689699e8a2e41a
      entity_id: sensor.abluft_co2
      domain: sensor
      below: 500
    • type: is_humidity
      condition: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      below: 60
    • type: is_humidity
      condition: device
      device_id: 1f258b16513f9f455882975ea05a8d49
      entity_id: sensor.schlafzimmer_heizung_humidity
      domain: sensor
      below: 60
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 20
      mode: single
  • id: ‘1659711621994’
    alias: Lüftung 80
    description: ‘’
    trigger:
    • platform: device
      device_id: 58b90fa4e8b50efd008c8c556b7270b0
      domain: climate
      entity_id: climate.schlafzimmer
      type: current_humidity_changed
      above: 70
    • type: humidity
      platform: device
      device_id: 43498c628e6ce8314085af0f139e0162
      entity_id: sensor.wandthermostat_badezimmer_humidity
      domain: sensor
      above: 70
    • type: carbon_dioxide
      platform: device
      device_id: 74a5a83b2fdaea03c15c944e0e2df9cf
      entity_id: sensor.home_wohnzimmer_co2
      domain: sensor
      above: 1400
    • type: carbon_dioxide
      platform: device
      device_id: 6554dfa312146774ee689699e8a2e41a
      entity_id: sensor.abluft_co2
      domain: sensor
      above: 1400
    • type: carbon_dioxide
      platform: device
      device_id: 687dc0ca4041da367d7a39de8573e887
      entity_id: sensor.home_wohnzimmer_obergeschoss_co2
      domain: sensor
      above: 1400
      condition: []
      action:
    • type: turn_on
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      entity_id: light.flush_dimmer_0_10v
      domain: light
      brightness_pct: 80
      mode: single
  • id: ‘1659966748946’
    alias: Node Dead?
    description: ‘’
    trigger:
    • platform: device
      device_id: 6fd1219f46b183aa2e3238e1bc3c1f72
      domain: zwave_js
      type: state.node_status
      entity_id: sensor.node_2_node_status
      from: alive
      to: dead
      condition: []
      action:
    • service: notify.mobile_app_pixel_6
      data:
      message: Flush Dimmer Dead
      title: Node Died
      mode: single

This still needs a lot of work and streamlining, but seems to be functioning fine so far. I doesn’t have any safeguards in place for outdoor CO2 being high or relative humidity being problematic, so please be aware of these limitations. As always, I am a complete novice, any help would be extremely welcome!

2 Likes