Modbus Sensor TCP for Komfovent

Cool. For the max value: can’t you use some network sniffer to check how the app communicates with the main unit?

I don’t know if it helps, but I requested modbus protocol from Komfovent:

https://mega.nz/folder/wVYAGBbQ#Po1_y6TCpkrkfrj52GZ6Ng

Hi, did some design, added some buttons and moved some.
Works like charm.

1 Like

Thats really nice. Could you please share configuration.yaml and Lovelace?

Max air you can trigger by external wired circuit contact.

I use HA. If light ON, then boost for some time recuperation.

Hi, i used narnaliai setup and just edited it a bit.
configuration.yaml

###
modbus:
  name: Komfovent
  type: tcp
  host: 192.168.1.34
  port: 502
###
switch:
  - platform: modbus
    registers:
      - name: "Komfovent Auto Mode"
        hub: Komfovent
        slave: 1
        register: 3
        command_on: 1
        command_off: 0
  - platform: modbus
    registers:
      - name: "Komfovent Power"
        hub: Komfovent
        slave: 1
        register: 0
        command_on: 1
        command_off: 0  
  - platform: modbus
    registers:
      - name: "Komfovent Eco Mode"
        hub: Komfovent
        slave: 1
        register: 2
        command_on: 1
        command_off: 0
###
sensor:
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Power"
        hub: Komfovent
        register: 0
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Eco"
        hub: Komfovent
        register: 2
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Auto"
        hub: Komfovent
        register: 3
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Mode"
        hub: Komfovent
        register: 4
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Shedule"
        hub: Komfovent
        register: 5
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Supply temperature 'C"
        hub: Komfovent
        register: 901
        register_type: holding
        unit_of_measurement: °C        
        scale: 0.1
        precision: 1
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Extract temperature 'C"
        hub: Komfovent
        register: 902
        register_type: holding
        scale: 0.1
        unit_of_measurement: °C
        precision: 1
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Supply Flow '%"
        hub: Komfovent
        register: 905
        count: 2            
        register_type: holding
        precision: 1
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Extract Flow '%"
        hub: Komfovent
        register: 907
        count: 2          
        register_type: holding
        precision: 1
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Supply Fan Intensivity '%"
        hub: Komfovent
        register: 909
        register_type: holding
        scale: 0.1
        precision: 1
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Extract Fan Intensivity '%"
        hub: Komfovent
        register: 910
        register_type: holding
        scale: 0.1
        precision: 1        
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Outdoor temperature 'C"
        hub: Komfovent
        register: 903
        register_type: holding
        unit_of_measurement: °C        
        scale: 0.1
        precision: 1        
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Filter Dirt, %"
        hub: Komfovent
        register: 918
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Filter Dirt, %"
        hub: Komfovent
        register: 917
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Filter Impurity, %"
        hub: Komfovent
        register: 916
        register_type: holding       
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Heating power, W"
        hub: Komfovent
        register: 912
        register_type: holding
        unit_of_measurement: W
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Power consumption, W"
        hub: Komfovent
        register: 920
        register_type: holding
        unit_of_measurement: W  
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Heating Recovery Day, kWh"
        hub: Komfovent
        register: 938
        register_type: holding
        unit_of_measurement: kWh
        count: 2
        precision: 1
        scale: 0.001        
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Heating Recovery Month, kWh"
        hub: Komfovent
        register: 940
        register_type: holding
        unit_of_measurement: kWh
        count: 2
        precision: 2
        scale: 0.001        
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Heating Recovery Total, kWh"
        hub: Komfovent
        register: 942
        count: 2
        register_type: holding
        unit_of_measurement: kWh
        precision: 2
        scale: 0.001
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Heat Recovery, W"
        hub: Komfovent
        register: 922
        register_type: holding 
        unit_of_measurement: W
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Heat exchanger efficiency, %"
        hub: Komfovent
        register: 923
        register_type: holding
        scale: 0.1
        precision: 2
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Energy saving, %"
        hub: Komfovent
        register: 924
        register_type: holding
  - platform: modbus
    scan_interval: 10
    registers:
      - name: "Komfovent Specific power (SPI)"
        hub: Komfovent
        register: 925
        register_type: holding 
        scale: 0.001
        precision: 2
###

Lovelace:

type: vertical-stack
name: Recuperation
cards:
  - type: horizontal-stack
    title: Töörežiimid
    cards:
      - type: button
        entity: switch.komfovent_auto_mode
        name: Auto
        icon: 'mdi:home-floor-a'
        hold_action: more_info
      - type: button
        entity: switch.komfovent_eco_mode
        name: Eco
        icon: 'mdi:alpha-e-box-outline'
        hold_action: more-info
      - type: button
        entity: switch.komfovent_power
        name: Sisse/Välja
        icon: 'mdi:power'
        hold_action: more-info
  - type: horizontal-stack
    cards:
      - type: button
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 1
        hold_action:
          action: none
        name: Eemal
        show_name: true
        icon: 'mdi:home-export-outline'
      - type: button
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 2
        hold_action:
          action: none
        name: Kodus
        show_name: true
        icon: 'mdi:home-account'
      - type: button
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 3
        hold_action:
          action: none
        name: Külalised
        show_name: true
        icon: 'mdi:fan-plus'
      - type: button
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 4
        hold_action:
          action: none
        name: Köök
        show_name: true
        icon: 'mdi:fan'
  - type: horizontal-stack
    title: Andurid
    cards:
      - type: sensor
        entity: sensor.komfovent_outdoor_temperature_c
        name: Välisõhk
        icon: 'mdi:thermometer'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_supply_temperature_c
        name: Sissepuhe
        icon: 'mdi:home-import-outline'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_extract_temperature_c
        name: Väljatõmme
        icon: 'mdi:home-export-outline'
        tap_action:
          action: none
        hold_action: more-info
  - type: horizontal-stack
    cards:
      - type: sensor
        entity: sensor.komfovent_supply_flow
        name: SP Vent
        icon: 'mdi:fan'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_extract_flow
        name: VT Vent
        icon: 'mdi:fan'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_filter_impurity
        name: Filter
        icon: 'mdi:air-filter'
        tap_action:
          action: none
        hold_action: more-info
  - type: horizontal-stack
    cards:
      - type: sensor
        entity: sensor.komfovent_heating_recovery_day_kwh
        name: 1P Tagastus
        icon: 'mdi:atom-variant'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_heat_recovery_w
        name: Tagastus
        icon: 'mdi:atom-variant'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_power_consumption_w
        name: Voolutarve
        icon: 'mdi:lightning-bolt-outline'
        hold_action: more-info
  - type: horizontal-stack
    title: Kalendergraafik
    cards:
      - type: button
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 5
            hub: Komfovent
            unit: 1
            value: 0
        hold_action:
          action: none
        name: Pidevalt kodus
        show_name: true
        icon: 'mdi:home-outline'
      - type: button
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 5
            hub: Komfovent
            unit: 1
            value: 1
        hold_action:
          action: none
        name: Töönädal
        show_name: true
        icon: 'mdi:home-city-outline'

Sorry for my estonian translations, you can edit it at lovelace.

2 Likes

I’m estonian as well, so all good. Thanks

1 Like

HI,

How you solved problems with state colors? without colors it is not clear which status

You need to install button-card.

type: vertical-stack
name: Recuperation
cards:
  - type: horizontal-stack
    title: Recuperation
    style:
      width: 50%
    cards:
      - type: button
        entity: switch.komfovent_auto_mode
        name: Auto
        icon: 'mdi:atom-variant'
        hold_action: more_info
      - type: button
        entity: switch.komfovent_eco_mode
        name: Eco
        icon: 'mdi:snowflake-variant'
        hold_action: more-info
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        entity: sensor.komfovent_mode
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 1
        hold_action:
          action: none
        name: Away
        show_name: true
        icon: 'mdi:home-export-outline'
        state:
          - value: '1'
            color: '#b58e31'
      - type: 'custom:button-card'
        entity: sensor.komfovent_mode
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 2
        hold_action:
          action: none
        name: Normal
        show_name: true
        icon: 'mdi:home-account'
        state:
          - value: '2'
            color: '#b58e31'
      - type: 'custom:button-card'
        entity: sensor.komfovent_mode
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 3
        hold_action:
          action: none
        name: Intensive
        show_name: true
        icon: 'mdi:weather-windy'
        state:
          - value: '3'
            color: '#b58e31'
      - type: 'custom:button-card'
        entity: sensor.komfovent_mode
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 4
            hub: Komfovent
            unit: 1
            value: 4
        hold_action:
          action: none
        name: Boost
        show_name: true
        icon: 'mdi:fan'
        state:
          - value: '4'
            color: '#b58e31'
  - type: horizontal-stack
    cards:
      - type: sensor
        entity: sensor.komfovent_outdoor_temperature_c
        name: 'Outside, C'
        icon: 'mdi:thermometer'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_supply_temperature_c
        name: 'Supply, C'
        icon: 'mdi:home-import-outline'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_extract_temperature_c
        name: 'Extract, C'
        icon: 'mdi:home-export-outline'
        tap_action:
          action: none
        hold_action: more-info
  - type: horizontal-stack
    title: Maintenance
    cards:
      - type: sensor
        entity: sensor.komfovent_supply_flow
        name: 'Fan, %'
        icon: 'mdi:fan'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_extract_flow
        name: 'Fan, %'
        icon: 'mdi:fan'
        tap_action:
          action: none
        hold_action: more-info
      - type: sensor
        entity: sensor.komfovent_filter_impurity
        name: 'Filter, %'
        icon: 'mdi:find-replace'
        tap_action:
          action: none
        hold_action: more-info
      - type: button
        entity: switch.komfovent_power
        name: Power
        icon: 'mdi:power'
        hold_action: more-info
  - type: horizontal-stack
    title: Power consumption
    cards:
      - type: sensor
        entity: sensor.komfovent_power_consumption_w
        name: 'Power, W'
        icon: 'mdi:power-plug'
      - type: sensor
        entity: sensor.komfovent_heating_power_w
        name: 'Heating, W'
        icon: 'mdi:radiator'
      - type: sensor
        entity: sensor.komfovent_heat_exchanger_efficiency
        name: 'Efficiency, %'
        icon: 'mdi:chart-areaspline'
  - type: horizontal-stack
    title: Schedule
    cards:
      - type: 'custom:button-card'
        entity: sensor.komfovent_shedule
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 5
            hub: Komfovent
            unit: 1
            value: 0
        hold_action:
          action: none
        name: Stay at Home
        show_name: true
        icon: 'mdi:home-outline'
        state:
          - value: '0'
            color: '#b58e31'
      - type: "custom:button-card"
        entity: sensor.komfovent_shedule 
        tap_action:
          action: call-service
          service: modbus.write_register
          service_data:
            address: 5
            hub: Komfovent
            unit: 1
            value: 1
        hold_action:
          action: none
        name: Work week
        show_name: true
        icon: 'mdi:home-city-outline'
        state:
          - value: '1'
            color: '#b58e31'

Hello.

Did anyone figure out how to control temperature (Register name - Setpoint)? I am able to change Supply/Extract flow values from HA but not temperature. Maybe it has something to do with Data type being signed short.

1 Like

Hi!

Updated to newest home assistan and chekced in the logs. There were several modbus warnings (Sensor configuration is deprecated, will be removed in a future release).

Looks like there is a new style of modbus configuration.

You can now use the new style configuration when configuring the modbus integration. The existing configuration style is kept, allowing you to change gradually.

Remark the existing configuration style will be removed in a couple of releases.

Example of an existing configuration:

modbus:
  - name: "hub1"
    type: tcp
    host: IP_ADDRESS
    port: 502

sensor:
  platform: modbus
  registers:
    - name: "Sensor1"
      hub: "hub1"
      unit_of_measurement: "°C"
      slave: 1
      register: 100

Same configuration in new style:

modbus:
  - name: "hub1"
    type: tcp
    host: IP_ADDRESS
    port: 502
    sensors:
      - name: "Sensor1"
        slave: 1
        address: 100

modbus docs: Modbus - Home Assistant

Has anybody already converted the configuration code to new style and can share it?

After latest update buttonsfor power ,eco and auto wend to be not availble…
Is this a case of “new style” modbus configs ? Are somon already have new and can share :slight_smile:

Same here.

I did automation to tackle the lack of settings for summertime use of the ventilation. Komfovent is lacking the ability to dynamically change the ventilation taking account of room temperature. So in the daytime, when it’s hot outside and inside, it blows the hot air inside. Mine has a free cooling functionality, but this can be set only to supply temperature. If you set supply temp to 22 degrees, free flow tries to keep it that way and if room temp is 25 degrees and outside temp is 17 degrees, it does not allow cooler air than 22 degrees to supply. So i have set the supply temp to 5 degrees, to ensure getting as low supply air temp as possible.

Now other thing is that i don’t want is normal flow when outside is hot and inside is hot and cool the house when outside temp is low and inside is hot. This happens in the evenings and night. So depending on the inside temp I want to to cool either on normal (65/65) flow or intensive (80/80), when it’s really hot (over 35 degrees).

I game up with a automation I would like to share, so maybe somebody else can tackle the same supper hot issue:

alias: Summer Ventilation automation
description: ''
trigger:
  - platform: time_pattern
    minutes: "/5" #automation runs every 5 minutes
condition: []
action:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.magamituba_current_temperature #my bedroom temp sensor
            above: '20'
            below: '25'
          - condition: numeric_state
            entity_id: sensor.komfovent_supply_temperature_c
            above: '22'
        sequence:
          - service: modbus.write_register
            data:
              address: 4
              hub: Komfovent
              unit: 1
              value: 1 #Set to "away", so that it doesn't blow hot air to already hot room
      - conditions:
          - condition: numeric_state
            entity_id: sensor.magamituba_current_temperature
            above: '20'
            below: '25'
          - condition: numeric_state
            entity_id: sensor.komfovent_supply_temperature_c
            below: '22' 
        sequence:
          - service: modbus.write_register
            data:
              address: 4
              hub: Komfovent
              unit: 1
              value: 2 #Set to "normal" to use cooler outside air to cool the room
      - conditions:
          - condition: numeric_state
            entity_id: sensor.magamituba_current_temperature
            above: '25'
          - condition: numeric_state
            entity_id: sensor.komfovent_supply_temperature_c
            below: '22'
        sequence:
          - service: modbus.write_register
            data:
              address: 4
              hub: Komfovent
              unit: 1
              value: 3 #Set to "intensive" to use cooler outside air to cool the room, if it's really hot inside
      - conditions:
          - condition: numeric_state
            entity_id: sensor.magamituba_current_temperature
            above: '25'
          - condition: numeric_state
            entity_id: sensor.komfovent_supply_temperature_c
            above: '22'
        sequence:
          - service: modbus.write_register
            data:
              address: 4
              hub: Komfovent
              unit: 1
              value: 1 #Set to "away", so that it doesn't blow hot air to already hot room
    default: []
mode: single
2 Likes

New style modbus configuration.yaml code:

modbus:
  - name: Komfovent
    type: tcp
    host: 192.168.1.34
    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 Supply temperature 'C"
        address: 901
        scan_interval: 10
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Komfovent Extract temperature 'C"
        address: 902
        scan_interval: 10
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Komfovent Supply Flow '%"
        address: 905
        scan_interval: 10
        count: 2
        unit_of_measurement: '%'
        precision: 1
      - name: "Komfovent Extract Flow '%"
        address: 907
        scan_interval: 10
        count: 2
        unit_of_measurement: '%'
        precision: 1
      - 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
      - name: "Komfovent Filter Dirt, %"
        address: 918
        scan_interval: 10
      - name: "Komfovent Filter Dirt, %"
        address: 917
        scan_interval: 10
      - name: "Komfovent Filter Impurity, %"
        address: 916
        scan_interval: 10
        unit_of_measurement: '%'
      - name: "Komfovent Heating power, W"
        address: 912
        scan_interval: 10
        unit_of_measurement: W
      - name: "Komfovent Power consumption, W"
        address: 920
        scan_interval: 10
        unit_of_measurement: W
      - name: "Komfovent Power consumption Month, kWh"
        address: 928
        scan_interval: 10
        unit_of_measurement: kWh
        count: 2
        precision: 0
        scale: 0.001
      - name: "Komfovent Heating Recovery Month, kWh"
        address: 940
        scan_interval: 10
        unit_of_measurement: kWh
        count: 2
        precision: 0
        scale: 0.001
      - name: "Komfovent Heating Recovery Total, kWh"
        address: 942
        scan_interval: 10
        unit_of_measurement: kWh
        count: 2
        precision: 0
        scale: 0.001
      - 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
1 Like

Ok ,thanks for th new code .
There is on thing with that , it is not changing th state , whn i change it from controller or via web page. ( So when i turn on Auto in HA it will be always on , even when i turn of from controller)… Posible to fix it ?

I uptaded all code

modbus:
  - name: komfovent
    type: tcp
    host: 192.168.50.20
    port: 502

    switches:  
      - name: "Komfovent Auto Mode"
        slave: 254
        address: 3
        command_on: 1
        command_off: 0
      - name: "Komfovent Power"
        slave: 254
        address: 1
        command_on: 1
        command_off: 0
      - name: "Komfovent Eco Mode"
        slave: 254
        address: 2
        command_on: 1
        command_off: 0
    sensors:
      - name: "Komfovent Power"
        scan_interval: 60
        address: 0
        input_type: holding
      - name: "Komfovent Eco"
        scan_interval: 60
        address: 2
        input_type: holding
      - name: "Komfovent Auto"
        scan_interval: 60
        address: 3
        input_type: holding
      - name: "Komfovent Mode"
        scan_interval: 60
        address: 4
        input_type: holding
      - name: "Komfovent Shedule"
        scan_interval: 60
        address: 5
        input_type: holding
      - name: "Komfovent Supply temperature 'C"
        address: 901
        input_type: holding
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Komfovent Extract temperature 'C"
        scan_interval: 60
        address: 902
        input_type: holding
        scale: 0.1
        unit_of_measurement: °C
        precision: 1
      - name: "Komfovent Supply Flow '%"
        scan_interval: 60
        address: 905
        count: 2
        input_type: holding
        precision: 1
      - name: "Komfovent Extract Flow '%"
        scan_interval: 60
        address: 907
        count: 2
        input_type: holding
        precision: 1
      - name: "Komfovent Supply Fan Intensivity '%"
        scan_interval: 60
        address: 909
        input_type: holding
        scale: 0.1
        precision: 1
      - name: "Komfovent Extract Fan Intensivity '%"
        scan_interval: 60
        address: 910
        input_type: holding
        scale: 0.1
        precision: 1
      - name: "Komfovent Outdoor temperature 'C"
        scan_interval: 60
        address: 903
        input_type: holding
        unit_of_measurement: °C
        scale: 0.1
        precision: 1
      - name: "Komfovent Filter Dirt, %"
        scan_interval: 60
        address: 918
        input_type: holding
      - name: "Komfovent Filter Dirt, %"
        scan_interval: 60
        address: 917
        input_type: holding
      - name: "Komfovent Filter Impurity, %"
        scan_interval: 60
        address: 916
        input_type: holding
      - name: "Komfovent Heating power, W"
        scan_interval: 60
        address: 912
        input_type: holding
      - name: "Komfovent Power consumption, W"
        scan_interval: 60
        address: 920
        input_type: holding
      - name: "Komfovent Heating Recovery Day, kWh"
        scan_interval: 60
        address: 938
        input_type: holding
        count: 2
        precision: 2
        scale: 0.001
      - name: "Komfovent Heating Recovery Month, kWh"
        scan_interval: 60
        address: 940
        input_type: holding
        count: 2
        precision: 2
        scale: 0.001
      - name: "Komfovent Heating Recovery Total, kWh"
        scan_interval: 60
        address: 942
        count: 2
        input_type: holding
        precision: 2
        scale: 0.001
      - name: "Komfovent Heat Recovery, W"
        scan_interval: 60
        address: 922
        input_type: holding
      - name: "Komfovent Heat exchanger efficiency, %"
        scan_interval: 60
        address: 923
        input_type: holding
        scale: 0.1
        precision: 2
      - name: "Komfovent Energy saving, %"
        scan_interval: 60
        address: 924
        input_type: holding
      - name: "Komfovent Specific power (SPI)"
        scan_interval: 60
        address: 925
        input_type: holding
        scale: 0.001
        precision: 2

Thank you.
But do you see posibility to update states for Auto , Power and Eco ? If i change state on controler HA will not notice it…

I’ve found that in the modbus switch configuration if you set verify: (without any attributes) then the switch state tracks the value that is set in the register.

So now my modbus switch configuration looks like:

  switches:
    - name: "Komfovent Auto Mode"
      address: 3
      command_on: 1
      command_off: 0
      verify:
    - name: "Komfovent Power"
      address: 0
      command_on: 1
      command_off: 0
      verify:
    - name: "Komfovent Eco Mode"
      address: 2
      command_on: 1
      command_off: 0
      verify:
1 Like

I find “kitchen” mode useful as it creates positive pressure (supply fan 80%, exhaust fan 20%) which helps the stove fume extractor do its job better.

I’ve looked at the HTTP request the komfovent Web UI is doing when enabling kitchen mode for 20 minutes, and it is sending 282=20 command to the backend. However if I try to set 282 register to value 20 using modbus directly, it complains about invalid value to the register. So it looks like the backend has a special interpretation for this command and possibly executes multiple modbus commands.

So I have created a shell_command service, which logs into the UI and enables kitchen mode for 20 minutes:

shell_command:
  komfovent_kitchen_mode: >-
    curl 'http://192.168.86.200/' --data-raw '1=user&2=user' &&
    curl 'http://192.168.86.200/ajax.xml' --data-raw '282=20'

This service then can be used from the lovelace ui:

          - type: horizontal-stack
            cards:
              - type: 'custom:button-card'
                entity: sensor.komfovent_mode
                tap_action:
                  action: call-service
                  service: shell_command.komfovent_kitchen_mode
                hold_action:
                  action: none
                name: Kitchen
                show_name: true
                icon: 'mdi:pot-steam-outline'
                state:
                  - value: '5'
                    color: '#f7d958'
                  - operator: default
                    color: '#4e729a'
              - type: 'custom:button-card'
                entity: switch.komfovent_eco_mode
                name: Eco
                icon: 'mdi:snowflake-variant'
                hold_action: more-info

Resulting in this panel:

2 Likes