Hallo Rainer,
ok, dann ein paar Basics 
Die Nibe nutzt das Protokoll MODBUS TCP. Aus diversen Gründen (die hier erst mal egal sind) ist der Bus je nach Gerät nur in der Lage, einige wenige bis einige dutzende Parameter (Werte) pro Sekunde abzufragen und zu senden. Ich meine, bei der Nibe sind es 30/s (muss ich ins Handbuch schauen). Die Werte heissen da “Register” und HA macht da “Entitäten” draus. Jedes Register wird durch diverse Attribute definiert die man aus der Doku des Herstellers entnehmen muss.
Die Integration fragt einfach mal ALLE 800 Register ab… dann werden nach Erreichen des Limits Werte einfach nicht mehr gesendet, und du fragst dich, warum da immer wieder Entitäten ohne oder mit alten Werten zu sehen sind. Zu viele Abfragen.
Daher beschränkt man sich auf die, die man echt braucht und fragt auch in gezielten Intervallen ab, nicht alles pauschal alle paar Sekunden.
Homeassistant kann direkt mit Modbus arbeiten, muss man halt ein bisschen “zu Fuß” konfigurieren, das bekommen wir aber zusammen hin. Ich habe von Nibe die Modbus Doku bekommen, sag Bescheid wenn du die haben magst. Erwarte aber nicht zu viel, die listet nur Register mit Namen, nullkommagarkeine Erklärung. Das ist die schlechteste Modbus Doku die ich je gesehen habe, das machen sogar die Chinesen besser. Egal, da ich mir die Mühe mal für meine eigene VVM-S320 gemacht habe, das zu zerpflücken, musst Du das ja nicht mehr tun 
Ich gehe davon aus, dass du noch keine Modbus.yaml angelegt und auch keine Modbus Geräte innerhalb der configuration.yaml angelegt hast? Dann füge bitte als Erstes folgenden Eintrag irgendwo am Anfang zur Configuration.yaml hinzu:
modbus: !include modbus.yaml
Jetzt legst du mit dem File Editor eine neue Datei namens “modbus.yaml” an.
In diese neue Datei kopierst du das hier rein (WICHTIG: Unter HOST muss die IP deiner Nibe rein!!):
- name: modbus_tcp_nibe_s2125
type: tcp
host: IP-ADRESSE-DEINER-NIBE
port: 502
delay: 0
message_wait_milliseconds: 100
timeout: 5
sensors:
# -----------------------------------------------------------------------
# VVM S320 – Temperaturen
# -----------------------------------------------------------------------
- name: "Nibe Außenlufttemperatur (BT1)"
unique_id: nibe_aktuelle_aussenlufttemperatur_bt1
slave: 1
address: 1
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
- name: "Nibe Vorlauf (BT2)"
unique_id: nibe_vorlauf_bt2
slave: 1
address: 5
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
- name: "Nibe Rücklauf (BT3)"
unique_id: nibe_ruecklauf_bt3
slave: 1
address: 7
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
- name: "Nibe Zusatzheizung Temperatur (BT63)"
unique_id: nibe_zusatzheizung_temperatur_bt63
slave: 1
address: 72
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 30
# -----------------------------------------------------------------------
# VVM S320 – Brauchwasser
# -----------------------------------------------------------------------
- name: "Nibe Brauchwasser oben (BT7)"
unique_id: nibe_brauchwasser_oben_bt7
slave: 1
address: 8
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
- name: "Nibe Brauchwasserbereitung (BT6)"
unique_id: nibe_brauchwasserbereitung_bt6
slave: 1
address: 9
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
# -----------------------------------------------------------------------
# VVM S320 – Hydraulik & Pumpenstatus
# -----------------------------------------------------------------------
- name: "Nibe Volumenstrommesser (BF1)"
unique_id: nibe_volumenstrommesser_bf1
slave: 1
address: 40
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "l/min"
state_class: measurement
scan_interval: 15
- name: "Nibe Drehzahl Heizungsumwälzpumpe (GP1)"
unique_id: nibe_drehzahl_heizungsumwaelzpumpe_gp1
slave: 1
address: 1636
input_type: input
data_type: uint16
unit_of_measurement: "%"
state_class: measurement
scan_interval: 15
# 0=Heizung, 1=Brauchwasser
- name: "Nibe Umschaltventil Brauchwasser (QN10)"
unique_id: nibe_umschaltventil_brauchwasser_qn10
slave: 1
address: 2196
input_type: input
data_type: uint16
scan_interval: 15
# -----------------------------------------------------------------------
# VVM S320 – Phasenströme (u32, Faktor 10 → scale: 0.1)
# -----------------------------------------------------------------------
- name: "Nibe Phasenstrom L1 (BE1)"
unique_id: nibe_phasenstrom_l1_be1
slave: 1
address: 50
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "A"
device_class: current
state_class: measurement
scan_interval: 15
- name: "Nibe Phasenstrom L2 (BE2)"
unique_id: nibe_phasenstrom_l2_be2
slave: 1
address: 48
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "A"
device_class: current
state_class: measurement
scan_interval: 15
- name: "Nibe Phasenstrom L3 (BE3)"
unique_id: nibe_phasenstrom_l3_be3
slave: 1
address: 46
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "A"
device_class: current
state_class: measurement
scan_interval: 15
# -----------------------------------------------------------------------
# S2125 (EB101) – Verdichter & Ventilator
# -----------------------------------------------------------------------
# s16, Faktor 10 → scale: 0.1
- name: "Nibe Aktuelle Verdichterfrequenz (EB101)"
unique_id: nibe_aktuelle_verdichterfrequenz_eb101
slave: 1
address: 1803
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "Hz"
state_class: measurement
scan_interval: 15
- name: "Nibe Ventilatordrehzahl (EB101)"
unique_id: nibe_ventilatordrehzahl_aussenluftwaermepumpe_eb101
slave: 1
address: 401
input_type: input
data_type: uint16
unit_of_measurement: "rpm"
state_class: measurement
scan_interval: 15
# u16, Faktor 10, kW → scale: 0.1
- name: "Nibe Erzeugte Wärmeleistung (EB101)"
unique_id: nibe_aktuell_erzeugte_waermeleistung_eb101
slave: 1
address: 406
input_type: input
data_type: uint16
scale: 0.1
precision: 1
unit_of_measurement: "kW"
device_class: power
state_class: measurement
scan_interval: 30
# 0=aus, 1=aktiv, 2=passiv
- name: "Nibe Enteisung (EB101)"
unique_id: nibe_enteisung_aussenluftwaermepumpe_eb101
slave: 1
address: 1805
input_type: input
data_type: uint16
scan_interval: 15
# -----------------------------------------------------------------------
# S2125 (EB101) – Statistik
# -----------------------------------------------------------------------
- name: "Nibe Verdichter Anzahl Starts (EB101-EP14)"
unique_id: nibe_verdichter_anzahl_starts_eb101_ep14
slave: 1
address: 1489
input_type: input
data_type: uint32
swap: word
state_class: total_increasing
scan_interval: 300
# s32, Faktor 10 → scale: 0.1
- name: "Nibe Verdichter Gesamtbetriebszeit (EB101-EP14)"
unique_id: nibe_verdichter_gesamtbetriebszeit_eb101_ep14
slave: 1
address: 1491
input_type: input
data_type: int32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "h"
state_class: total_increasing
scan_interval: 300
# -----------------------------------------------------------------------
# S2125 (EB101) – Alarm
# -----------------------------------------------------------------------
- name: "Nibe Alarmnummer Außenluft-WP (EB101)"
unique_id: nibe_alarmnummer_aussenluftwaermepumpe_eb101
slave: 1
address: 400
input_type: input
data_type: uint16
scan_interval: 30
# -----------------------------------------------------------------------
# Allgemein – Regelung & Betriebsstatus
# -----------------------------------------------------------------------
- name: "Nibe Berechneter Vorlauf Klimatisierungssystem 1"
unique_id: nibe_berechneter_vorlauf_klimatisierungssystem_1
slave: 1
address: 1017
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
- name: "Nibe Berechneter Vorlauf Kühlung"
unique_id: nibe_berechneter_vorlauf_kuehlung
slave: 1
address: 1567
input_type: input
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 15
# 10=aus, 20=Brauchwasser, 30=Heizung, 40=Pool, 60=Kühlung
- name: "Nibe Betriebspriorität"
unique_id: nibe_betriebsprioritaet
slave: 1
address: 1028
input_type: input
data_type: uint16
scan_interval: 15
- name: "Nibe Gesamtbetriebszeit Zusatzheizung"
unique_id: nibe_gesamtbetriebszeit_zusatzheizung
slave: 1
address: 1025
input_type: input
data_type: int32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "h"
state_class: total_increasing
scan_interval: 300
# -----------------------------------------------------------------------
# Allgemein – Alarme
# -----------------------------------------------------------------------
# 0=kein Alarm, 1=aktiver Alarm
- name: "Nibe Aktiver Alarm"
unique_id: nibe_aktiver_alarm
slave: 1
address: 2195
input_type: input
data_type: uint16
scan_interval: 15
- name: "Nibe Alarmnummer Innengerät"
unique_id: nibe_alarmnummer_innengeraet
slave: 1
address: 1975
input_type: input
data_type: int16
scan_interval: 30
# -----------------------------------------------------------------------
# Allgemein – Leistungsaufnahme aktuell
# u32, Faktor 10, W → scale: 0.1 (Verdichter + interne Zusatzheizung)
# -----------------------------------------------------------------------
- name: "Nibe Aktuelle elektrische Leistungsaufnahme"
unique_id: nibe_aktuelle_elektrische_leistungsaufnahme_verdichter_und_zusatzheizung
slave: 1
address: 2166
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "W"
device_class: power
state_class: measurement
scan_interval: 15
# -----------------------------------------------------------------------
# EME20 / PV-Überschuss
# -----------------------------------------------------------------------
# Aktuelle PV-Einspeisung: u32, Faktor 1, W
- name: "Nibe EME20 Aktuelle PV-Leistung"
unique_id: nibe_eme20_aktuelle_pv_leistung
slave: 1
address: 2176
input_type: input
data_type: uint32
swap: word
unit_of_measurement: "W"
device_class: power
state_class: measurement
scan_interval: 15
# u32, Faktor 100, kW (CSV-Export) – beim ersten Einsatz Rohwert prüfen
- name: "Nibe EME20 Mittlere PV-Gesamtleistung"
unique_id: nibe_eme20_mittlere_pv_gesamtleistung
slave: 1
address: 2178
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kW"
device_class: power
state_class: measurement
scan_interval: 60
# s32, Faktor 10, kWh → scale: 0.1
- name: "Nibe EME20 PV-Gesamtenergie"
unique_id: nibe_eme20_pv_gesamtenergie
slave: 1
address: 2180
input_type: input
data_type: int32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
# 1=Warmwasser, 2=Heizung
- name: "Nibe EME20 Solarenergie verwendet für"
unique_id: nibe_eme20_solarenergie_verwendet_fuer
slave: 1
address: 2726
input_type: input
data_type: uint16
scan_interval: 15
- name: "Nibe Betriebsmodus PV-Module"
unique_id: nibe_betriebsmodus_pv_module
slave: 1
address: 579
input_type: input
data_type: uint16
scan_interval: 30
# -----------------------------------------------------------------------
# Energie kumuliert
# -----------------------------------------------------------------------
- name: "Nibe Energie Brauchwasser inkl. Zusatzheizung"
unique_id: nibe_energie_brauchwasser_inkl_interner_zusatzheizung
slave: 1
address: 1575
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
- name: "Nibe Energie Heizung inkl. Zusatzheizung"
unique_id: nibe_energie_heizung_inkl_interner_zusatzheizung
slave: 1
address: 1577
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
- name: "Nibe Energie Brauchwasser nur Verdichter"
unique_id: nibe_energie_brauchwasser_nur_verdichter
slave: 1
address: 1583
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
- name: "Nibe Energie Heizung nur Verdichter"
unique_id: nibe_energie_heizung_nur_verdichter
slave: 1
address: 1585
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
- name: "Nibe Gesamtproduktion Wärme"
unique_id: nibe_gesamtproduktion_waerme
slave: 1
address: 3821
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
- name: "Nibe Gesamtverbrauch elektrisch"
unique_id: nibe_gesamtverbrauch_elektrisch
slave: 1
address: 3823
input_type: input
data_type: uint32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
scan_interval: 300
# -----------------------------------------------------------------------
# Energieprotokoll letzte Stunde (gleitend, state_class: measurement)
# u32, Faktor 100, kWh → scale: 0.01
# -----------------------------------------------------------------------
- name: "Nibe Wärme Heizung letzte Stunde"
unique_id: nibe_energieprotokoll_erzeugte_waerme_heizung_letzte_stunde
slave: 1
address: 2283
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kWh"
device_class: energy
state_class: measurement
scan_interval: 300
- name: "Nibe Wärme Brauchwasser letzte Stunde"
unique_id: nibe_energieprotokoll_erzeugte_waerme_brauchwasser_letzte_stunde
slave: 1
address: 2285
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kWh"
device_class: energy
state_class: measurement
scan_interval: 300
- name: "Nibe Strombezug Heizung letzte Stunde"
unique_id: nibe_energieprotokoll_elektrischer_bezug_heizung_letzte_stunde
slave: 1
address: 2291
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kWh"
device_class: energy
state_class: measurement
scan_interval: 300
- name: "Nibe Strombezug Brauchwasser letzte Stunde"
unique_id: nibe_energieprotokoll_elektrischer_bezug_brauchwasser_letzte_stunde
slave: 1
address: 2293
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kWh"
device_class: energy
state_class: measurement
scan_interval: 300
- name: "Nibe Zusatzheizung Heizung letzte Stunde"
unique_id: nibe_energieprotokoll_zusatzheizung_heizung_letzte_stunde
slave: 1
address: 2299
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kWh"
device_class: energy
state_class: measurement
scan_interval: 300
- name: "Nibe Zusatzheizung Brauchwasser letzte Stunde"
unique_id: nibe_energieprotokoll_zusatzheizung_brauchwasser_letzte_stunde
slave: 1
address: 2301
input_type: input
data_type: uint32
swap: word
scale: 0.01
precision: 2
unit_of_measurement: "kWh"
device_class: energy
state_class: measurement
scan_interval: 300
# =======================================================================
# HOLDING REGISTER – Einstellungen (R/W)
# =======================================================================
# -----------------------------------------------------------------------
# Regelung – Gradminuten & GM-Schwellwerte
# -----------------------------------------------------------------------
# s32, Faktor 10 → scale: 0.1
- name: "Nibe Gradminuten"
unique_id: nibe_gradminuten
slave: 1
address: 11
input_type: holding
data_type: int32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "GM"
state_class: measurement
scan_interval: 15
- name: "Nibe Kühlgradminuten"
unique_id: nibe_kuehlgradminuten
slave: 1
address: 20
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "GM"
state_class: measurement
scan_interval: 60
# s16, Faktor 1, GM (ab wann startet Verdichter)
- name: "Nibe GM Schwellwert Verdichterstart"
unique_id: nibe_gm_schwellwert_verdichterstart
slave: 1
address: 97
input_type: holding
data_type: int16
unit_of_measurement: "GM"
state_class: measurement
scan_interval: 3600
# s16, Faktor 1, GM (ab wann startet Zusatzheizung)
- name: "Nibe GM Schwellwert Zusatzheizungsstart"
unique_id: nibe_gm_start_zusatzheizung
slave: 1
address: 679
input_type: holding
data_type: int16
unit_of_measurement: "GM"
state_class: measurement
scan_interval: 3600
# -----------------------------------------------------------------------
# Heizkurve
# -----------------------------------------------------------------------
- name: "Nibe Heizkurve Klimatisierungssystem 1"
unique_id: nibe_heizkurve_klimatisierungssystem_1
slave: 1
address: 26
input_type: holding
data_type: int16
scan_interval: 3600
- name: "Nibe Verschiebung Heizkurve Klimatisierungssystem 1"
unique_id: nibe_verschiebung_heizkurve_klimatisierungssystem_1
slave: 1
address: 30
input_type: holding
data_type: int16
scan_interval: 3600
# -----------------------------------------------------------------------
# Brauchwasser Einstellungen
# -----------------------------------------------------------------------
# 0=klein, 1=mittel, 2=groß, 3=nicht verwendet, 4=Smart Control
- name: "Nibe Brauchwasserstellung"
unique_id: nibe_brauchwasserstellung
slave: 1
address: 56
input_type: holding
data_type: int16
scan_interval: 3600
- name: "Nibe Starttemperatur Brauchwasser Normal"
unique_id: nibe_starttemperatur_brauchwasser_normal
slave: 1
address: 59
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 3600
- name: "Nibe Stopptemperatur Brauchwasser Normal"
unique_id: nibe_stopptemperatur_brauchwasser_normal
slave: 1
address: 63
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 3600
# -----------------------------------------------------------------------
# Betriebsmodus & Sonstiges
# -----------------------------------------------------------------------
# 0=Auto, 1=Manuell, 2=nur Zusatzheizung
- name: "Nibe Betriebsmodus"
unique_id: nibe_betriebsmodus
slave: 1
address: 237
input_type: holding
data_type: uint16
scan_interval: 3600
# Alarm Reset: Wert 1 per modbus.write_register zum Quittieren schreiben
- name: "Nibe Alarm Reset Status"
unique_id: nibe_alarm_reset
slave: 1
address: 22
input_type: holding
data_type: uint16
scan_interval: 3600
# Urlaubsfunktion: 0=aktiv, -1=inaktiv (FW-abhängig)
- name: "Nibe Urlaubsfunktion Status"
unique_id: nibe_urlaubsfunktion_status
slave: 1
address: 19
input_type: holding
data_type: int16
scan_interval: 3600
# Temperaturgrenzen alle drei BW-Modi (Holding, R/W via Service)
# s16, Faktor 10 → scale: 0.1
# -----------------------------------------------------------------------
- name: "Nibe Starttemperatur BW Hoch"
unique_id: nibe_starttemperatur_bw_hoch
slave: 1
address: 58
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 3600
- name: "Nibe Starttemperatur BW Niedrig"
unique_id: nibe_starttemperatur_bw_niedrig
slave: 1
address: 60
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 3600
- name: "Nibe Stopptemperatur BW Hoch"
unique_id: nibe_stopptemperatur_bw_hoch
slave: 1
address: 62
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 3600
- name: "Nibe Stopptemperatur BW Niedrig"
unique_id: nibe_stopptemperatur_bw_niedrig
slave: 1
address: 64
input_type: holding
data_type: int16
scale: 0.1
precision: 1
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
scan_interval: 3600
# -----------------------------------------------------------------------
# Aktueller BW-Modus (Rückmeldung, read-only)
# Reg 137: Aktiver Modus wie ihn die Steuerung intern verwendet
# s8, Faktor 1: 0=niedrig, 1=normal, 2=hoch, 4=Smart Control
# -----------------------------------------------------------------------
- name: "Nibe Aktiver Brauchwassermodus"
unique_id: nibe_aktiver_brauchwassermodus
slave: 1
address: 137
input_type: input
data_type: int16
scan_interval: 30
# Reg 1038: Aktuelle BW-Stellung ohne SPA/SC (s8)
- name: "Nibe Aktuelle Brauchwasserstellung"
unique_id: nibe_aktuelle_brauchwasserstellung
slave: 1
address: 1038
input_type: input
data_type: int16
scan_interval: 30
# -----------------------------------------------------------------------
# Mehr Brauchwasser – Status (read-only)
# u8: 0=inaktiv, 1=aktiv
# -----------------------------------------------------------------------
- name: "Nibe Mehr Brauchwasser Status"
unique_id: nibe_mehr_brauchwasser_status
slave: 1
address: 1078
input_type: input
data_type: uint16
scan_interval: 15
# -----------------------------------------------------------------------
# Interne Zusatzheizung
# -----------------------------------------------------------------------
# Leistung interne Zusatzheizung (read-only)
# s16, Faktor 100, kW → scale: 0.01
- name: "Nibe Leistung interne Zusatzheizung"
unique_id: nibe_leistung_interne_zusatzheizung
slave: 1
address: 1027
input_type: input
data_type: int16
scale: 0.01
precision: 2
unit_of_measurement: "kW"
device_class: power
state_class: measurement
scan_interval: 15
# Max. interne Zusatzheizung (Holding, R/W)
# s16, Faktor 100, kW → scale: 0.01; Min=0, Max=45 kW, Default=9 kW
- name: "Nibe Max interne Zusatzheizung"
unique_id: nibe_max_interne_zusatzheizung
slave: 1
address: 102
input_type: holding
data_type: int16
scale: 0.01
precision: 2
unit_of_measurement: "kW"
device_class: power
state_class: measurement
scan_interval: 3600
# Art der BW-Bereitung (Holding, R/W)
# u8: 0=Wärmepumpe, 1=Heizstab, 2=Wärmepumpe+Heizstab (Default=2)
# ACHTUNG: Werte sind eine Interpretation – beim ersten Einsatz verifizieren
- name: "Nibe Art der BW-Bereitung"
unique_id: nibe_art_der_bw_bereitung
slave: 1
address: 6064
input_type: holding
data_type: uint16
scan_interval: 60
# Betriebszeit Zusatzheizung für Brauchwasser (read-only)
# s32, Faktor 10, h
- name: "Nibe Betriebszeit Zusatzheizung BW"
unique_id: nibe_betriebszeit_zusatzheizung_bw
slave: 1
address: 1069
input_type: input
data_type: int32
swap: word
scale: 0.1
precision: 1
unit_of_measurement: "h"
state_class: total_increasing
scan_interval: 300
# =============================================================================
# SWITCHES (neuer Block unter dem Hub, neben sensors:)
# =============================================================================
switches:
# Mehr Brauchwasser aktivieren / deaktivieren
# Reg 697: s8, Holding – 0=aus, 1=ein
- name: "Nibe Mehr Brauchwasser"
unique_id: nibe_mehr_brauchwasser
slave: 1
address: 697
write_type: holding
command_on: 1
command_off: 0
scan_interval: 15
verify:
input_type: holding
address: 697
state_on: 1
state_off: 0
# Brauchwasserkomfort (z.B. für externe Komfortspeicher)
# Reg 694: u8, Holding – 0=aus, 1=ein
- name: "Nibe Brauchwasserkomfort"
unique_id: nibe_brauchwasserkomfort
slave: 1
address: 694
write_type: holding
command_on: 1
command_off: 0
scan_interval: 60
verify:
input_type: holding
address: 694
state_on: 1
state_off: 0
Danach neu starten und du hast nur noch diese Parameter in HA (die Nibe integration deaktivieren oder entfernen bitte! Modbus kann nur mit einem Server reden, Modbus-Integration und Nibe-Integration konkurrieren dann).
Alle Parameter die du nicht brauchst, kannst du mit der Raute auskommentieren (jeweils den ganzen Block von “-name” bis '“scan_intervall”). Achte auf die Einrückungen, die sind bei yaml wichtig. Der File editor zeigt rechts oben ein rotes Symbol, wenn ihm grobe Fehler bei der Syntax auffallen.
Das “scan_intervall” bestimmt, wie oft ein Parameter gelesen wird, damit kann man auch rumspielen.
Das ist eigentlich schon alles. Good Luck und have fun 
Frank