Skip to main content

Comfort Online Einrichtung

Ressourcen

ibn_b_modbus_comfort_4_int.pdf

modbusinfo_v21.9.0.zip

Anbindung via WLAN

Ich verwende im ganzen Haus Fritz WLAN. Den Versuch auf OpenWRT hatte ich gestartet, das wurde mir dann aber für die Wartung hier privat zu komplex. Unify hatte ich im vorigen Haus, war zwar super, aber ausser, dass ich mehrere VLANS anlegen könnte um z.b. Smarthome von TV oder LAN/WLAN zu trennen, habe ich keine Vorteil. ...und dafür würde es mir zu teuer werden und auch wieder zu komplex.

Die Performance der Fritz Installation ist super und die Abdeckung durch den Einsatz von 8 Repeatern durchgängig.

Für die Anbindung der KWB Steuerung muss bei dem Einsatz einer WLAN Brücke über Fritz Repeatern die MESH Funktionalität unbedingt deaktiviert sein. Nicht komplett, nur auf dem Repeater an der Comfort Online.

IMG_6332.JPG

Ich musste das MESH noch deaktivieren, sonst wurde es nicht stabil. Seither aber alles top.

Testen

Zum Testen der Modus Funktionalität gibt es die App "oModbus Master" für unterschiedliche Betriebssysteme.

Leider ist es so, dass in der Tabelle von KWB die IDs meist um 1 zu niedrig sind. Am Besten alle gewünschten einmal ausprobieren und auf Plausibilität überprüfen.

Bildschirm­foto 2023-03-03 um 15.33.36.png

Der Wert "Kesseltemperatur" wird hier mit 622 auslesen. Die Spalte "Value" nennt 1/10. Ergibt also 62,2 Grad.

HomeAssistant

Modbus ist im Kern von HomeAssistant enthalten. Es ist nicht notwendig 

https://www.home-assistant.io/integrations/modbus/

configuration.yaml

modbus: !include modbus.yaml

modbus.yaml

- name: heizung
  type: tcp
  port: 502
  host: 192.168.178.55
  sensors:
  # Blatt Heizkreise
    # Vorlauf Temperatur SOLL
    # ok mit cco
    - name: "KWB Heizkreis Vorlauf Soll (8328)"
      address: 8328
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      scale: 0.1
      precision: 1
      count: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Vorlauftemperatur IST
    # ok mit cco
    - name: "KWB Heizkreis Vorlauf IST (8260)"
      address: 8260
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement
   
    # Raumtemperatur
    # ok mit cco
    - name: "KWB Heizkreis Raumtemperatur (8538)"
      address: 8538
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      scale: 0.1
      precision: 1
      count: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Komforttemperatur   
    - name: "KWB Heizkreis Komforttemperatur (24624)"
      address: 24624
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: holding
      scale: 0.1
      precision: 1
      count: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Absenktemperatur 
    - name: "KWB Heizkreis Absenktemperatur (24659)"
      address: 24659
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: holding
      scale: 0.1
      precision: 1
      count: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # hk_status_t
    # 0: Absenk 1: Komfort +7
    - name: "KWB Heizkreis Status (8573)"
      address: 8573
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1

  # Blatt KWB Easyfire
    # Kesselpumpe
    - name: "KWB Kessel Pumpe Status (8200)"
      address: 8200
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1

    # Kesselpumpe Leistung %
    - name: "KWB Kessel Pumpe Leistung % (8201)"
      address: 8201
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      unit_of_measurement: "%"
  
    # Kesselleistung
    - name: "KWB Kessel Leistung % (8207)"
      address: 8207
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      unit_of_measurement: "%"


    # Kesseltemperatur IST
    # ok nit cco
    - name: "KWB Kessel Temperatur IST (8198)"
      address: 8198
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Flammtemperatur
    # ok mit cco
    - name: "KWB Kessel Flammtemperatur (8215)"
      address: 8215
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      precision: 1
      scale: 0.1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Rücklauftemperatur ist 
    - name: "KWB Kessel Rücklauftemperatur (8202)"
      address: 8202
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      precision: 1
      scale: 0.1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Vollaststunden
    - name: "KWB Kessel Volllaststunden (8209)"
      address: 8209
      scan_interval: 30
      slave: 1
      data_type: uint32
      input_type: input
      count: 2
      scale: 0.0166667
      unit_of_measurement: h
 

    # Nächste Wartung in h
    # ok mit cco
    - name: "KWB Kessel Nächste Wartung in h (8224)"
      address: 8224
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      unit_of_measurement: h
  

    # Brennstoffverbrauch   
    - name: "KWB Kessel Brennstoffverbrauch (8233)"
      address: 8233
      scan_interval: 30
      slave: 1
      data_type: uint32
      input_type: input
      count: 2
      unit_of_measurement: kg

    # Füllstand Aschebehälter
    # ok mit cco
    - name: "KWB Kessel Füllstand Aschebehälter (9497)"
      address: 9497
      scan_interval: 30
      slave: 1
      data_type: uint16
      input_type: input
      count: 1
      scale: 0.1
      unit_of_measurement: "%"

    # Restmenge Brennstofflager
    - name: "KWB Brennstofflager Restmenge (24927)"
      address: 24927
      scan_interval: 30
      slave: 1
      data_type: uint32
      input_type: holding
      count: 2
      unit_of_measurement: kg
 
  # Blatt Pufferspeicher
    # Puffer Temp S1
    # ok mit cco
    - name: "KWB Pufferspeicher S1 (8710)"
      address: 8710
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Puffer Temp S3   
    - name: "KWB Pufferspeicher S3 (8778)"
      address: 8778
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Puffer Temp S4
    - name: "KWB Pufferspeicher S4 (8812)"
      address: 8812
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # Puffer Temp S5
    - name: "KWB Pufferspeicher S5 (8846)"
      address: 8846
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

  # Blatt Solar
    # Kollektortemperatur 
    # ok mit cco
    - name: "KWB Solar Kollektortemperatur (9080)"
      address: 9080
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement
     
    - name: "KWB Solar Temperatur Speicher 1 (9110)"
      address: 9110
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement

    # solar_status_t
    # Solar status
    - name: "KWB Solar Status (9094)"
      address: 9094
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1

    # Wärmeleistung
    - name: "KWB Solar Wärmeleistung (9215)"
      address: 9215
      scan_interval: 30
      slave: 1
      data_type: uint32
      input_type: input
      count: 2
      scale: 0.001
      precision: 1
      unit_of_measurement: kW
      device_class: power
      state_class: measurement

    # Wärmeleistung Tag
    - name: "KWB Solar Wärmeleistung Tag (9245)"
      address: 9245
      scan_interval: 30
      slave: 1
      data_type: uint32
      input_type: input
      count: 2
      scale: 0.001
      precision: 1
      unit_of_measurement: kWh
      device_class: energy
      state_class: total

    # Wärmeleistung Gesamt
    - name: "KWB Solar Wärmeleistung Gesamt (9275)"
      address: 9275
      scan_interval: 30
      slave: 1
      data_type: uint32
      input_type: input
      count: 2
      scale: 0.001
      unit_of_measurement: kWh
      device_class: energy
      state_class: total_increasing
      
    - name: "KWB Solar Pumpe 1 Leistung % (9466)"
      address: 9466
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      unit_of_measurement: "%"
  
    - name: "KWB Solar Pumpe 2 Leistung % (9481)"
      address: 9481
      scan_interval: 30
      slave: 1
      data_type: int16
      input_type: input
      count: 1
      unit_of_measurement: "%"

Ansicht

Für die Ansicht habe ich mir dann die wichtigsten Entites kompakt zusammengesetzt.

 Bildschirm­foto 2023-03-03 um 15.42.29.png