Modbus Sensor TCP for Komfovent

Ops,
I updated and now i can’t see the version on the panel. Anyone who know what to do?

Hi All, i’m new in this community and i was looking for the modbus connection between home assistant and komfovent. i was wondering if it’s possible tot read/write value’s from knx tot the komfovent modbus. Vallue’s like CO2, temp, humidity,… Maybe someone has some examples…

Looking forward for your reply’s :smile:

1 Like

solved, just had to do a hard power reset and the panel went back online again showing the current firmware version.

Does anyone have the C6M Modbus protocol? is it just an extension of the C6 protocol or is it completely different?

You need to state the data_type - seems the default doesn’t actually work (or is not as stated). one of those listed here Modbus - Home Assistant

I found that where the doc says unsigned char you need to use uint16

1 Like

Really interesting and negates the need for physical relays.

Quick check and the commands for the modes are…

  • 282 Kitchen (as you said)
  • 283 Fireplace
  • 284 Override

All need a time the mode will be used for. Not yet experimented with this but can see some possibilities.

[edit]
I have created a Package File to combine all these good ideas into a single file. Please view and commit any additions and changes as you feel necessary.

I have started a new thread Komfovent C6 & C6M Controller Package File

This is still under development but wanted to share what I have.

[Edit]
Has anyone put anything in place to control the fan speed or change the setpoint of the Ventilation Unit via a Lovelace card? I know how to do it from a MODBUS perspective, it is the Lovelace/entity part I’m struggling with.

I have found the GitHub - htmltiger/numberbox-card: Replace input_number sliders with plus and minus buttons to provide the control to provide the incrementing UI, just working out how to actually use this.

The Template Fan integration is not really any use as it requires an on/off action which isn’t really appropriate.

1 Like

That would be really interesting thing to do. Did you have any success? Otherwise you can build all the smart control by humidity/co2 logic to HA as well.

I have solved it by introducing a pwm converter connected to esp32. Esp32 reads data from Netatmo inhouse air quality monitor towers. Values are then converted to voltage by help of mentioned pwm converter and feeds that value into dedicated input on C6 board for CO2. Theres a defined range from 0 to 10V that you can feed into C6 controllers CO2 . Asked also if CO2 values can be sent via modbus. Komfovent technicians said it is not possible

Could you post a bit more detail, please? Could you do the the same for a particulate sensor?

It has 2 connections B8 and B9. Both B8 and B9 are described to be Air quality / Humidity sensors. You can only tell your komfovent what type of sensor is connected inside your settings and then pass it a value of 0-10V. I will show my solution later.

1 Like

How did you calibrate the voltage?

I’ve gotten an updated C6 Modbus document, if it helps anyone. It has a few new entries, like “Constant heat recovery”.

3 Likes

I get a lot of modbus errors. Running latest HA.

Logger: homeassistant.components.modbus.base_platform
Source: components/modbus/base_platform.py:178
Integration: Modbus (documentation, issues)
First occurred: 9:49:14 PM (365 occurrences)
Last logged: 10:01:13 PM

Received 4 bytes, unpack error unpack requires a buffer of 2 bytes

Does anybody have the same?

1 Like

I have the same. Any ideas?

Here is a configuration that works. Some data_types were not defined before.

modbus:
  - name: Komfovent
    type: tcp
    host: 192.168.1.247
    port: 502
    switches:
      - name: "Komfovent Auto Mode"
        slave: 1
        address: 3
        command_on: 1
        command_off: 0
      - name: "Komfovent Power"
        slave: 1
        address: 0
        command_on: 1
        command_off: 0
      - name: "Komfovent Eco Mode"
        slave: 1
        address: 2
        command_on: 1
        command_off: 0
    sensors:
      - name: "Komfovent Power"
        address: 0
        scan_interval: 10
      - name: "Komfovent Eco"
        address: 2
        scan_interval: 10
      - name: "Komfovent Mode"
        address: 4
        scan_interval: 10
      - name: "Komfovent Auto"
        address: 3
        scan_interval: 10
      - name: "Komfovent Shedule"
        address: 5
        scan_interval: 10
      - name: "Komfovent Status bit mask"
        address: 899
        scan_interval: 10
      - name: "Komfovent Supply temperature 'C"
        address: 901
        scan_interval: 10
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        device_class: temperature
      - name: "Komfovent Extract temperature 'C"
        address: 902
        scan_interval: 10
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        device_class: temperature
      - name: "Komfovent Supply Fan Intensivity '%"
        address: 909
        scan_interval: 10
        unit_of_measurement: '%'
        scale: 0.1
        precision: 1
      - name: "Komfovent Extract Fan Intensivity '%"
        address: 910
        scan_interval: 10
        unit_of_measurement: '%'
        scale: 0.1
        precision: 1
      - name: "Komfovent Outdoor temperature 'C"
        address: 903
        scan_interval: 10
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
        device_class: temperature
      - name: "Komfovent Filter Impurity, %"
        address: 916
        scan_interval: 10
        unit_of_measurement: '%'
      - name: "Komfovent Heat exchanger, %"
        address: 911
        scan_interval: 30
        unit_of_measurement: '%'
        scale: 0.1
        precision: 0
      - name: "Komfovent Heating power, W"
        address: 912
        scan_interval: 10
        unit_of_measurement: W
        device_class: power
      - name: "Komfovent Power consumption, W"
        address: 920
        scan_interval: 10
        unit_of_measurement: W
        device_class: power
      - name: "Komfovent Power consumption Month, kWh"
        address: 928
        scan_interval: 10
        unit_of_measurement: kWh
        data_type: 'int32'
        count: 2
        precision: 0
        scale: 0.001
        state_class: total_increasing
        device_class: energy
      - name: "Komfovent Power consumption Total, kWh"
        address: 930
        scan_interval: 300
        unit_of_measurement: kWh
        data_type: 'int32'
        count: 2
        precision: 0
        scale: 0.001
        state_class: total_increasing
        device_class: energy        
      - name: "Komfovent Heating Recovery Month, kWh"
        address: 940
        scan_interval: 10
        unit_of_measurement: kWh
        data_type: 'int32'
        count: 2
        precision: 0
        scale: 0.001
        device_class: energy
      - name: "Komfovent Heating Recovery Total, kWh"
        address: 942
        scan_interval: 10
        unit_of_measurement: kWh
        data_type: 'int32'
        count: 2
        precision: 0
        scale: 0.001
        state_class: total_increasing
        device_class: energy
      - name: "Komfovent Heat Recovery, W"
        address: 922
        scan_interval: 10
        unit_of_measurement: W
      - name: "Komfovent Heat exchanger efficiency, %"
        address: 923
        scan_interval: 10
        scale: 1
        precision: 0
        unit_of_measurement: '%'
      - name: "Komfovent Energy saving, %"
        address: 924
        scan_interval: 10
      - name: "Komfovent Specific power (SPI)"
        address: 925
        scan_interval: 10
        scale: 0.001
        precision: 2

it works! thanks!

I’ve defined significantly more sensors in my config ha_komfovent_config/komfovent.yaml at b07cb34cdd3265460e9d3d5433c904a919fb91a6 · borpin/ha_komfovent_config · GitHub and they have data_type defined. I also define the device_class, measurement_class and state_class if appropriate.

I do get SlaveBusy errors about once or twice an hour, but that is the nature of Modbus and I am polling it quite hard.

I’ve got an error in one of the automation ATM but you don’t have to use those (I use them for increasing and decreasing the fan speed).

1 Like

Impressive work you have fone! Can you please share the locelace card as well?

Nice! One question, which sesnor should I use to Energy dashboard?
Screenshot 2022-11-30 at 15.30.23
Screenshot 2022-11-30 at 15.30.29

I have just published all my cards (they do various things) and some images in the readme of those cards. GitHub - borpin/ha_komfovent_config: Set of files for configuring MODBUS connection to a Komfovent Unit. There was a brief UI YAML file there already.

It depends what you want to show :grin: I’d suggest the ahu_consumption_total as this is the total consumption. It should be configured correctly to work with the Energy dashboard.

I don’t think these come from my config.