Zehnder ComfoConnect component

Hi,

This integration is not integrated in the UI of Home Assistant.

As stated in the documentation, you have to edit your configuration.yaml file and add the component there.

Baptiste

They Talk about a local and Cloud API. Also about Support with those Apis in a Video linked Here:

I have a Q450 + ComfoFond too. So I have the same issue with “Outdoor Air” being the Air supplied to the Q450.

@ chrisuki You assume that the “Current RMOT” ist the correct Outdor Air temperature. This is not correct. The RMOT is “Running Mean Outdoor Temperature”. Its a calculated value based on the history of the real outside air temperatured. Its used by the Q450 to determine the heating or cooling period and trigger the Bypass.

So this is not what we are looking for. Did you manage to identify the real outdoor air temperature?

Did no one solve the issue with the outside air Temperaturen being not available with ComfoFond?

Concerning RMOT, yes my post in now OLD, and in the meantime, I got the same information about the role of the RMOT temperature.
Also not more information on my side about the outside air temperature…

Any input on how to add the ComfoFond Sensors (Temperaturen, Pump on/off?)

In the app: The ComfoFond is at 100%, the real outside temperature is 2,5°C, the temperature after the ComfoFond is 5,1°C.

how can you controll it?
In the documentation i only see sensors for HA?

You can make an automation like this:


The trigger and conditions should be blank (delete the default empty trigger).

You can make 3 automations like this. For the speed settings they differ as follows:
Speed 1 = low
Speed 2 = medium
Speed 3 = high

In the lovelace interface you can create a button, for example like this:


type: button
tap_action:
  action: call-service
  service: automation.trigger
  service_data: {}
  target:
    entity_id: automation.comfoairq_stand_1
name: Stand 1
show_state: false
icon: mdi:fan-speed-1
show_name: true

And the away setting is actually off:

.

As far as I understand on fora data it is not possible to trigger the boost.

2 Likes

I’m trying to visualise the current speed setting of the Q600 unit we have. Home assistant does know the setting because it is visible if I click the fan entity:Screenshot 2021-08-15 at 17.07.20
But how do I abstract the current speed setting to highlight current setting in a lovelace card?

edit:
Managed to make a template sensor:

- platform: template
  sensors:
    comfoairq_stand:
      friendly_name: "WTW instelling"
      value_template: "{{ state_attr('fan.comfoairq', 'speed') }}"

anybody who ceated a nice UI card for ventilation units?

is there a config parameter how for a refresh interval?
Seems like now it is updated like every second which is not needed for my use case and I would like to set another interval.

Cheers

I also have a Q350 + ComfoFond and have the same issue where home assistant only showing the out side air temperature as post ComfoFond. Looking through the information on github https://github.com/michaelarnauts/comfoconnect/blob/de1a118425724364919dd99c62d05a45fd11827b/PROTOCOL-PDO.md the sensors on the ComfoFond have been identified as No. 416, 417, 418 and 419. Does anybody know how to add these.

Hi’
Is there a way to link multiple Comfoconnect devices in HA ?
If I try this :

comfoconnect:
  - name: 'Ventilation salons'
    host: '10.2.100.8'
  - name: 'Ventilation bureau'
    host: '10.2.100.9'

I get a configuration error.

Hai Marius, old post but maybe still good to know:
Zehnder delivers multiple ways to steer the unit. You can manually control it or connect several other sensors such as CO2 and presence/humidity sensor. Thing is, these sensors from Zehnder are really expensive. I think with HA you can use also good but much cheaper ones to make the unit work really well. I have worked at Zehnder for 7 years and know the products rather good. Thing is, the software integration isn’t something they are leaders in. But on the other side, so aren’t other manufacturers of these kind of units…

1 Like

yeah, I was deciding between Zehnder and Brink. Of those, I believe the Zehnder was most advanced… On devices like that, I dont want to fiddle around too much with cheaper hand made things, because 1) I need warranty from the manufacturer and 2) need them to work stand alone too, without any HA interference.

Good to hear you have a long experience with them, maybe you can advice what unit to use and which connective device to choose, considering I want co2 and humidity sensors attached to trigger the unit?

Since the Zhender Q-series has a lot of information to share to Home Assistant I was missing overview:

So today I made a picture elements card to give me the important information in a glance:
Screenshot 2021-12-24 at 21.19.08

For anyone interested in doing the same:

type: picture-elements
image: local/images/wtw_icons2.png
elements:
  - type: state-label
    entity: sensor.comfoairq_supply_airflow
    style:
      top: 59%
      left: 73%
      color: black
  - type: state-label
    entity: sensor.comfoairq_exhaust_airflow
    style:
      top: 59%
      left: 27%
      color: black
  - type: state-label
    entity: sensor.comfoairq_inside_temperature
    style:
      top: 20%
      left: 90%
      color: darkred
  - type: state-label
    entity: sensor.comfoairq_inside_humidity
    style:
      top: 28%
      left: 90%
      color: '#4171b1'
  - type: state-label
    entity: sensor.comfoairq_supply_temperature
    style:
      top: 76%
      left: 90%
      color: darkred
  - type: state-label
    entity: sensor.comfoairq_supply_humidity
    style:
      top: 84.2%
      left: 90%
      color: '#4171b1'
  - type: state-label
    entity: sensor.comfoairq_outside_temperature
    style:
      top: 20%
      left: 12.5%
      color: '#4171b1'
  - type: state-label
    entity: sensor.comfoairq_outside_humidity
    style:
      top: 28%
      left: 12.5%
      color: '#4171b1'
  - type: state-label
    entity: sensor.comfoairq_exhaust_temperature
    style:
      top: 76%
      left: 13%
      color: '#4171b1'
  - type: state-label
    entity: sensor.comfoairq_exhaust_humidity
    style:
      top: 84.2%
      left: 13%
      color: '#4171b1'
  - type: state-label
    entity: sensor.comfoairq_bypass_state
    prefix: 'Bypass: '
    style:
      top: 26%
      left: 50%
      color: black
  - type: state-label
    entity: sensor.comfoairq_days_to_replace_filter
    prefix: 'Filterwissel in '
    suffix: agen
    style:
      top: 92%
      left: 50%
      color: black
  - type: state-label
    entity: sensor.comfoairq_current_rmot
    prefix: 'Rmot '
    style:
      top: 10%
      left: 13%
      color: grey

and the picture:
wtw_icons2

17 Likes

Works Great. Thank you!

1 Like

Great entity; thank you! Can you also provide the code for the buttons underneath?

2 Likes

It’s a horizontal stack with custom:button cards. Works as follows.

scripts.yaml:

wtw_preset_0:
  alias: Comfoairq stand 0
  icon: mdi:fan-auto
  sequence:
    - service: fan.turn_off
      target:
        entity_id: fan.comfoairq

wtw_preset_1:
  alias: Comfoairq stand 1
  icon: mdi:fan-speed-1
  sequence:
    - service: fan.set_percentage
      target:
        entity_id: fan.comfoairq
      data:
        percentage: 33

wtw_preset_2:
  alias: Comfoairq stand 2
  icon: mdi:fan-speed-2
  sequence:
    - service: fan.set_percentage
      target:
        entity_id: fan.comfoairq
      data:
        percentage: 66

wtw_preset_3:
  alias: Comfoairq stand 3
  icon: mdi:fan-speed-3
  sequence:
    - service: fan.set_percentage
      target:
        entity_id: fan.comfoairq
      data:
        percentage: 100

template.yaml:

- sensor:
  - name: "Comfoairq stand"
    state: "{{ state_attr('fan.comfoairq', 'percentage') | default(33)}}"

The lovelace card:

type: horizontal-stack
cards:
  - type: custom:button-card
    entity: sensor.comfoairq_stand
    icon: mdi:fan-auto
    size: 50%
    color_type: card
    state:
      - value: 33
        color: var(--secondary-background-color)
      - value: 66
        color: var(--secondary-background-color)
      - value: 100
        color: var(--secondary-background-color)
      - value: 0
        color: var(--paper-item-icon-color)
    name: Away
    show_state: false
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_0
    hold_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_0_timer30
  - type: custom:button-card
    entity: sensor.comfoairq_stand
    icon: mdi:fan-speed-1
    size: 50%
    color_type: card
    state:
      - value: 33
        color: var(--paper-item-icon-color)
      - value: 66
        color: var(--secondary-background-color)
      - value: 100
        color: var(--secondary-background-color)
      - value: 0
        color: var(--secondary-background-color)
    name: Stand 1
    show_state: false
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_1
  - type: custom:button-card
    entity: sensor.comfoairq_stand
    icon: mdi:fan-speed-2
    size: 50%
    color_type: card
    state:
      - value: 33
        color: var(--secondary-background-color)
      - value: 66
        color: var(--paper-item-icon-color)
      - value: 100
        color: var(--secondary-background-color)
      - value: 0
        color: var(--secondary-background-color)
    name: Stand 2
    show_state: false
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_2
    hold_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_2_timer30
  - type: custom:button-card
    entity: sensor.comfoairq_stand
    icon: mdi:fan-speed-3
    size: 50%
    color_type: card
    state:
      - value: 33
        color: var(--secondary-background-color)
      - value: 66
        color: var(--secondary-background-color)
      - value: 100
        color: var(--paper-item-icon-color)
      - value: 0
        color: var(--secondary-background-color)
    name: Stand 3
    show_state: false
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_3
    hold_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.wtw_preset_3_timer30

I have some other scripts under the long-press to run the fans for 30 minutes on a certain level and cancel other settings (fans spin up automatically here on some input from a shelly temperature measurement on the warm water pipe) but for the basic functionality you can just ignore this :wink:

edit 16-04-2022: as the low/medium/high settings for fans are no longer available rebuild the buttons to work with percentages.

8 Likes

Very Nice!