In einem modernen Smart Home ist die Wärmepumpe weit mehr als nur ein Heizgerät – sie ist der größte Energieverbraucher und gleichzeitig der wichtigste Hebel für die persönliche Energiewende. Doch wer seine Nibe SMO S40 nur über die Standard-App steuert, verschenkt massives Optimierungspotenzial. In diesem Deep Dive zeige ich dir, wie ich MyUplink mit Modbus/TCP kombiniere, um die Effizienz (COP) zu maximieren und den PV-Überschuss intelligent zu nutzen.
Die Herausforderung bei Wärmepumpen wie der Nibe S-Serie liegt oft in der Datenbeschaffung. Während die Cloud-Lösung MyUplink hervorragend für Langzeitstatistiken geeignet ist, benötigen wir für echte Echtzeit-Automatisierungen – etwa das schnelle Reagieren auf Wolken am Photovoltaik-Himmel – eine lokale, latenzfreie Verbindung. Die Lösung? Ein hybrider Ansatz aus Cloud-API und lokaler Modbus/TCP-Schnittstelle, der die Vorteile beider Welten vereint und dein System unabhängig von externen Servern macht.
[Image of a domestic heat pump system integration with a smart home controller]
Die Strategie: Warum zwei Datenquellen besser sind als eine
In meinem Setup erfasse ich die Nibe SMO S40 zweigleisig. Das klingt auf den ersten Blick redundant, ist aber für ein professionelles Monitoring und eine reaktionsschnelle Steuerung essenziell. Wir trennen hierbei strikt zwischen statistischen Langzeitdaten und operativen Livedaten:
- MyUplink (Cloud-API): Perfekt für kumulierte Energiezähler (kWh). Die Werte für
Total Consumption(elektrische Aufnahme) undTotal Production(thermische Abgabe) sind hier extrem präzise und bilden das unverzichtbare Fundament für mein monatliches Reporting und die Langzeitanalyse der Jahresarbeitszahl (JAZ). - Modbus/TCP (Lokal): Hier fließen die Livedaten im Sekundentakt direkt über dein lokales Netzwerk. Temperaturen, Verdichterfrequenzen und vor allem die Degree Minutes (Gradminuten) werden ohne Umweg über das Internet direkt in Home Assistant eingespeist. Dies ist die Basis für jede "smarte" Entscheidung.
1. MyUplink: Das Fundament für Langzeit-Statistiken
Über die offizielle MyUplink-Integration erhalten wir Zugriff auf die lebenslangen Zählerstände der Wärmepumpe. Diese Werte sind "unverlierbar" und eignen sich ideal für die Erstellung von Utility Metern in Home Assistant. Da Cloud-Abfragen oft limitiert sind (Rate Limiting), nutzen wir diese Schnittstelle primär für statische Werte oder langsame Veränderungen, die für das Energie-Dashboard relevant sind.
Mit der Utility Meter Integration breche ich den Gesamtverbrauch auf tägliche, wöchentliche und monatliche Häppchen herunter. Das ermöglicht mir den direkten Vergleich: "Wie viel Strom hat der Kälteeinbruch letzte Woche wirklich gekostet?" oder "Wie effizient war die Warmwasserbereitung im Vergleich zum Vormonat?"
# configuration.yaml (Ausschnitt)
utility_meter:
wp_energy_daily:
source: sensor.nibe_total_consumption
cycle: daily
wp_energy_monthly:
source: sensor.nibe_total_consumption
cycle: monthly
wp_heat_daily:
source: sensor.nibe_total_heat_production
cycle: daily2. Die Königsdisziplin: COP-Berechnung in Echtzeit
Der Coefficient of Performance (COP) gibt an, wie effizient die Wärmepumpe aktuell arbeitet. Er beschreibt das Verhältnis von erzeugter Wärmeenergie zu eingesetzter elektrischer Energie.
Die theoretische Formel für den Momentan-COP lautet:
$$COP = \frac{Q_{Heiz}}{W_{el}}$$
Dank meiner Tageszähler kann ich diesen Wert in Home Assistant als Template-Sensor berechnen. Ein COP von 4 bedeutet beispielsweise, dass die Nibe aus 1 kWh Strom satte 4 kWh Wärme generiert. Fällt dieser Wert im Winter stark ab (z. B. unter 2.5), erkenne ich sofort, ob die Heizkurve optimiert werden muss oder ob die Anlage zu oft in den ineffizienten Heizstab-Betrieb wechselt. Das ist echtes Performance-Monitoring, das bares Geld spart.
# template_sensors.yaml
sensor:
- name: "WP COP Heute"
unit_of_measurement: "COP"
state: >
{% set prod = states('sensor.wp_heat_daily') | float(0) %}
{% set cons = states('sensor.wp_energy_daily') | float(0) %}
{{ (prod / cons) | round(2) if cons > 0 else 0 }}3. Modbus/TCP: Volle Kontrolle durch Livedaten
Während MyUplink für die Statistik zuständig ist, übernimmt Modbus/TCP das Kommando für die Echtzeit-Steuerung. Die Nibe S-Serie bietet eine mächtige Modbus-Schnittstelle, die jedoch im Menü der Wärmepumpe (unter Einstellungen -> Drahtlose Einstellungen) erst freigeschaltet werden muss. Der entscheidende Vorteil: Die Datenübertragung erfolgt lokal im LAN, was die Ausfallsicherheit massiv erhöht und die Cloud-Latenz eliminiert.
[Image of a Modbus TCP protocol communication flow]
Ein entscheidender Wert, den ich über Modbus auslese, sind die Degree Minutes (Gradminuten). Sie stellen das Defizit zwischen der aktuellen Vorlauftemperatur und dem berechneten Sollwert über die Zeit dar. Sinken die Gradminuten unter einen bestimmten Schwellenwert (z.B. -60), startet der Verdichter. Steigen sie wieder Richtung 0, schaltet er ab. Wenn man dieses Prinzip versteht, kann man das Taktverhalten der Wärmepumpe durch Anpassung der Startparameter massiv verbessern und die Lebensdauer des Verdichters verlängern.
Echtzeit-Leistung in Watt
Da Modbus die Leistung oft in kW mit wenigen Nachkommastellen liefert, rechne ich den Wert in Watt um, um ihn in meinem PV-Dashboard sauber darstellen zu können. Dies ist besonders wichtig für die Analyse von kurzen Lastspitzen während der Abtauzyklen oder der Warmwasserbereitung.
# modbus_sensors.yaml
- name: "WP Aktuelle Leistung"
unit_of_measurement: "W"
state: "{{ (states('sensor.modbus_nibe_power_kw') | float(0) * 1000) | round(0) }}"4. Warmwasser-Optimierung mit PV-Überschuss
Das größte Einsparpotenzial liegt im Warmwasserbetrieb. Anstatt den Speicher nachts aufzuheizen (wenn es draußen kalt und der Strom teuer ist), nutze ich die Sonnenenergie meines PV-Projekts, um den Speicher "auf Vorrat" zu laden, wenn die Sonne ohnehin scheint.
Ich habe drei Automatisierungsebenen definiert, um den Eigenverbrauch zu maximieren:
- PV-Boost: Wenn die Solaranlage > 1500W liefert, schaltet die Nibe in den "Luxus"-Modus (Comfort Mode Large). Wir heben das Temperaturniveau im Speicher künstlich an, um die Energie thermisch zu speichern.
- Anwesenheits-Steuerung: Wenn das System erkennt, dass jemand nach Hause kommt und der Speicher unter 40°C liegt, wird priorisiert aufgeheizt, bevor der Abend-Peak im Stromverbrauch beginnt.
- Nachtabsenkung: Ab 22:00 Uhr wird der Modus auf "Small" gestellt, um unnötige Starts bei den kältesten Außentemperaturen in der Nacht zu unterbinden.
# automation: Warmwasser PV-Boost
alias: "Nibe WW PV-Boost"
trigger:
- platform: numeric_state
entity_id: sensor.pv_erzeugung_watt
above: 1500
action:
- service: select.select_option
target:
entity_id: select.nibe_hot_water_comfort_mode
data:
option: "Large"Fazit: Transparenz ist der Schlüssel zur Effizienz
Durch die Kombination aus Cloud-Daten (MyUplink) und lokaler Steuerung (Modbus) ist meine Nibe SMO S40 kein "Blackbox"-Gerät mehr. Ich sehe exakt, wie sie atmet, wie sie auf Außentemperaturen reagiert und wie effizient sie den PV-Strom verwertet. Diese Datenhoheit ist die Basis für ein wirklich smartes, nachhaltiges und vor allem kosteneffizientes Zuhause.
In den nächsten Teilen dieser Serie zeige ich dir, wie ich diese Daten in einer InfluxDB speichere und mit Grafana visualisiere, um Langzeit-Trends der Jahresarbeitszahl (JAZ) zu analysieren. Diese Analysen helfen dabei, die Heizkurve über Jahre hinweg perfekt auf die Gebäudesubstanz abzustimmen und das Takten des Verdichters auf ein Minimum zu reduzieren.
Hast du Fragen zur Modbus-Registerbelegung der Nibe S-Serie oder brauchst Hilfe bei deiner Home Assistant Konfiguration? Schau dir meine bisherigen Arbeiten im Portfolio an oder kontaktiere mich direkt für eine individuelle Beratung. Lass uns deine Heizung gemeinsam auf das nächste Level heben!