Ich habe mich intensiv mit der Integration meiner NIBE S40 Wärmepumpe in mein Smart Home beschäftigt, weil ich den Energieverbrauch und die Betriebszustände der Anlage möglichst genau und unabhängig von Cloud-Diensten erfassen wollte. Mein Ziel war es, die Leistungsdaten, Energieverbräuche und Betriebsmodi direkt aus der Wärmepumpe auszulesen und diese Werte übersichtlich im Home Assistant darzustellen. Besonders interessiert hat mich, wie ich die Rohdaten über Modbus-TCP abrufen und daraus aussagekräftige Sensoren für mein Energie-Dashboard erstellen kann. Aus meiner Sicht ist diese direkte Integration nicht nur für die Optimierung der Heizkosten relevant, sondern auch für eine transparente und nachvollziehbare Steuerung der gesamten Heizungsanlage.
Warum ich Modbus für die NIBE Wärmepumpe nutze
Die Standard-Integration von NIBE in Home Assistant bietet zwar eine Vielzahl von Entitäten, aber viele davon sind entweder nicht aussagekräftig oder liefern keine Echtzeitdaten. Mir war wichtig, die tatsächlichen Leistungswerte und Energieverbräuche meiner Wärmepumpe präzise zu erfassen. Mit Modbus steht mir dafür eine direkte Schnittstelle zur Verfügung, die ohne Cloud-Anbindung auskommt und den Zugriff auf die Rohdaten der Anlage ermöglicht.
Durch die Nutzung von Modbus kann ich nicht nur aktuelle Leistungswerte abrufen, sondern auch detaillierte Informationen wie Betriebsstunden, Status der Zusatzheizung und den Energieverbrauch für Heizung und Warmwasser getrennt erfassen. Das ist für mich die Grundlage, um die Wärmepumpe effizient zu überwachen und zu steuern.
Gerade im Hinblick auf steigende Energiekosten und die Optimierung meines Smart Homes ist diese Transparenz für mich unverzichtbar geworden.
Technischer Aufbau: Modbus-TCP Verbindung zur NIBE S40
Die NIBE S40 Wärmepumpe verfügt ab Werk über eine Modbus-Schnittstelle, die ich per Modbus-TCP direkt in mein Netzwerk eingebunden habe. Für die Integration in Home Assistant nutze ich die Modbus-Komponente, mit der ich gezielt auf die Register der Wärmepumpe zugreife.
Wichtig war mir, die relevanten Register zu identifizieren. Dazu gehören unter anderem die aktuelle Leistungsaufnahme, der Betriebsmodus, die Energieverbräuche für verschiedene Zeiträume und der Status des Heizstabs. Die Registeradressen und deren Bedeutung habe ich anhand der technischen Dokumentation der Wärmepumpe recherchiert.
Mit dieser Konfiguration kann ich die gewünschten Werte in Echtzeit abfragen und als Sensoren in Home Assistant abbilden. Das ermöglicht mir eine flexible Weiterverarbeitung und Visualisierung der Daten.
Umsetzung in Home Assistant: Sensoren und Dashboards
Nachdem die Modbus-Verbindung stand, habe ich in Home Assistant individuelle Sensoren angelegt, die die Werte aus den jeweiligen Modbus-Registern auslesen. So erhalte ich beispielsweise die aktuelle Leistungsaufnahme in Watt, den Betriebsmodus als Statuscode und die aufsummierten Energieverbräuche für Tag, Monat und Jahr.
Diese Sensoren habe ich in mein Energie-Dashboard eingebunden, um den Verbrauch der Wärmepumpe im Kontext des gesamten Haushalts darzustellen. Besonders hilfreich finde ich die Möglichkeit, die Kostenentwicklung direkt zu verfolgen und die Betriebszeiten von Verdichter und Heizstab getrennt zu analysieren.
Die Konfiguration der Sensoren und die Zuordnung zu den passenden Dashboards erfordert etwas Einarbeitung, bietet aber im Ergebnis eine sehr transparente Übersicht über die Heizungsanlage.
Modbus-Konfiguration für die Nibe S40
Mit dieser Modbus-Konfiguration binde ich meine Nibe S40 direkt per TCP in Home Assistant ein. Alle Sensoren liegen gesammelt im /packages-Verzeichnis und werden automatisch geladen.
modbus:
1 - name: "nibeS40"
2 type: tcp
3 host: 10.10.78.88
4 port: 502
5 sensors:
6 - name: "WP Gesamt-Leistung"
7 address: 2166
8 input_type: input
9 data_type: uint32
10 scale: 0.1
11 precision: 1
12 unit_of_measurement: "W"
13 device_class: power
14 state_class: measurement
15 slave: 1Erklärung
- type: tcp – Die Verbindung läuft direkt über Modbus TCP.
- host / port – IP-Adresse und Modbus-Port der Wärmepumpe.
- address – Das Modbus-Register aus der Nibe-Dokumentation.
- scale & precision – Rohwert wird korrekt skaliert und gerundet.
- device_class & state_class – Wichtig für Energie-Dashboards und Statistiken.
Status- und Betriebsdaten der Nibe
Diese Sensoren liefern Informationen darüber, was die Wärmepumpe gerade macht: Betriebsmodus, Abtauung, Verdichterstatus und Heizstab.
1 - name: "Nibe Zusatzheizung aktiv"
2 address: 1029
3 input_type: input
4 data_type: uint16
5 slave: 1
6
7 - name: "Nibe Betriebsmodus"
8 address: 1028
9 input_type: input
10 data_type: uint16
11 slave: 1
12
13 - name: "Nibe Abtau Status"
14 address: 1805
15 input_type: input
16 data_type: uint16
17 slave: 1
18
19 - name: "Nibe Verdichter aktiv"
20 address: 1100
21 input_type: input
22 data_type: uint16
23 slave: 1Erklärung
Die meisten dieser Register liefern numerische Werte (z. B. 0 oder 1).
Diese werden später über Template-Sensoren in lesbare Zustände übersetzt – dazu gleich mehr.
Betriebsstunden & stündlicher Stromverbrauch
Hier erfasse ich sowohl die Betriebsstunden als auch den Stromverbrauch der letzten Stunde – getrennt nach Heizung, Warmwasser und Zusatzheizung.
1 - name: "Nibe Stromverbrauch Heizung (letzte Stunde)"
2 unique_id: nibe_strom_heizung_stunde
3 data_type: int16
4 address: 2291
5 input_type: input
6 unit_of_measurement: "kWh"
7 state_class: measurement
8 scale: 0.01
9 precision: 2
10 slave: 1
11 scan_interval: 150Erklärung
- state_class: measurement – Wert gilt nur für den aktuellen Zeitraum.
- scan_interval – Schonend für Bus & Wärmepumpe.
- Ideal als Grundlage für Utility Meter oder eigene Statistiken.
Aktuelle Leistungsaufnahme in Watt
Die Nibe liefert die aktuelle Leistung in kW. Für Energie-Berechnungen wird sie hier sauber in Watt umgerechnet.
- name: "Nibe WP Leistung (W)"
1 unique_id: nibe_wp_leistung_w
2 unit_of_measurement: "W"
3 device_class: power
4 state_class: measurement
5 state: >
6 {{ states('sensor.nibe_aktuelle_leistungsaufnahme') | float(0) * 1000 }}Warum das wichtig ist
Die Integration-Plattform in Home Assistant erwartet einen Leistungswert in Watt. Ohne diese Umrechnung sind spätere Energie-Sensoren schlicht falsch.
Gesamtenergie aus Leistung berechnen
Mit der Integration-Plattform wird aus der momentanen Leistung automatisch verbrauchte Energie berechnet.
- platform: integration
source: sensor.nibe_wp_leistung_w
name: nibe_gesamtenergie
unit_prefix: k
round: 3Erklärung
- Berechnet kWh aus Watt über die Zeit
- Saubere Basis für Tages-, Monats- und Jahreswerte
- Funktioniert komplett lokalEnergieverbrauch aufsplitten (Utility Meter)
Damit die Verbrauchsdaten übersichtlich bleiben, splitte ich sie mit utility_meter in verschiedene Zeiträume.
nibe_gesamtenergie_tag:
source: sensor.nibe_gesamtenergie
cycle: dailynibe_gesamtenergie_monthly:
source: sensor.nibe_gesamtenergie
cycle: monthlynibe_gesamtenergie_yearly:
source: sensor.nibe_gesamtenergie
cycle: yearlyErgebnis
Du bekommst automatisch Sensoren für:
- Tagesverbrauch
- Monatsverbrauch
- JahresverbrauchPerfekt für Dashboards, Kostenberechnung oder Automationen.
So berechne ich aktuell die jährlichen Kosten für meine Wärmepumpe. Ob man hier einen statischen Durchschnittspreis oder einen dynamischen Wert nimmt, sollte jeder für sich selbst entscheiden.
- name: "Nibe Wärmepumpe yearly cost"
1 unique_id: nibe_gesamtenergie_yearly_cost
2 unit_of_measurement: "€"
3 state: >
4 {{
5 states('sensor.nibe_gesamtenergie_yearly') | float(0)
6 * states('sensor.strompreis_o_jahr') | float(0)
7 | round(2)
8 }}Dateistruktur
Alle gezeigten YAML-Dateien liegen bei mir im Verzeichnis:
/config/packages/
Dadurch bleibt die Konfiguration sauber getrennt und deutlich übersichtlicher als eine riesige configuration.yaml.
Voraussetzungen, Grenzen und Besonderheiten
Für die Modbus-Integration ist es notwendig, dass die Wärmepumpe im lokalen Netzwerk erreichbar ist und die Modbus-Schnittstelle korrekt konfiguriert wurde. Je nach Modell und Firmware der NIBE S40 können die verfügbaren Register und deren Adressen variieren. Ich habe die relevanten Informationen der technischen Dokumentation entnommen und auf meine Anlage angepasst.
Eine Besonderheit ist, dass Home Assistant zwar viele Entitäten aus der NIBE-Integration bereitstellt, diese aber oft nicht die gewünschten Detaildaten liefern. Erst durch die gezielte Auswahl und Konfiguration der Modbus-Register konnte ich die für mich wichtigen Werte extrahieren.
Grenzen sehe ich vor allem bei der Komplexität der Einrichtung: Ohne Grundkenntnisse in Modbus und Home Assistant kann der Einstieg herausfordernd sein. Die Vorteile in puncto Unabhängigkeit und Datenqualität überwiegen für mich jedoch deutlich.
Erweiterungen und Ausblick
Mit der aktuellen Integration habe ich die wichtigsten Verbrauchs- und Statusdaten meiner Wärmepumpe im Blick. Perspektivisch plane ich, die gewonnenen Daten für weitere Automatisierungen zu nutzen, beispielsweise zur Optimierung der Laufzeiten in Abhängigkeit von Stromtarifen oder PV-Erträgen.
Auch eine Auswertung der Langzeitdaten und die Einbindung weiterer Sensoren aus dem Heizsystem sind denkbar. Die Modbus-Schnittstelle bietet hier einen flexiblen Zugang zu nahezu allen Betriebsdaten der Anlage.
Aus meiner Sicht ist die direkte Modbus-Anbindung ein wichtiger Schritt zu einem wirklich transparenten und effizienten Smart Home Heizsystem.
