Teil 1: Meine Wärmepumpe (NIBE SMO S40): Von MyUplink zu lokalen Modbus-Livedaten
Blogserie: Mein Smart Home mit Home Assistant – Teil 1
Einleitung: Warum ich meine Wärmepumpe zweigleisig erfasse
In meinem Smart Home ist die Wärmepumpe Wärmepumpe (NIBE SMO S40) der wichtigste Verbraucher – und gleichzeitig der größte Hebel für Effizienz. Wenn ich verstehen will, wie gut mein Haus wirklich arbeitet, brauche ich vollständige Transparenz über:
- den Stromverbrauch der WP,
- die erzeugte Wärmemenge,
- und das Verhalten über den Tag, Woche und Monat.
Deshalb nutze ich zwei Datenquellen parallel:
- Home Assistant – MyUplink Integration für Energiezähler (kWh)
- Modbus/TCP (Wikipedia: Modbus) für Livedaten (kW/W, Temperaturen, DM-Werte)
Erst die Kombination aus beiden Datentöpfen ergibt ein vollständiges Bild – und ermöglicht echte Optimierung.
1. MyUplink – mein Fundament für Energiezähler (Tot.Cons & Tot.Prod)
MyUplink ist die Cloud-Schnittstelle von NIBE: NIBE Europäische Website – und auch wenn sie in Echtzeit limitiert ist, liefert sie zwei extrem wertvolle Messwerte:
Tot.Cons– der gesamte elektrische Verbrauch der Wärmepumpe (kWh)Tot.Prod– die insgesamt erzeugte Wärmemenge (kWh)
Da sich diese Werte kontinuierlich erhöhen, eignen sie sich hervorragend für Utility Meter in Home Assistant:
Mehr zur Funktion „Utility Meter“: Home Assistant Dokumentation – Utility Meter
1.1 Utility Meter für Tages-, Wochen-, Monats- und Jahreswerte
utility_meter:
wp_energy_day:
source: sensor.nibe_total_consumption
cycle: daily
wp_energy_week:
source: sensor.nibe_total_consumption
cycle: weekly
wp_energy_month:
source: sensor.nibe_total_consumption
cycle: monthly
wp_energy_year:
source: sensor.nibe_total_consumption
cycle: yearly
wp_heat_day:
source: sensor.nibe_total_heat
cycle: daily
Damit weiß ich z. B.:
- wie viel Strom die WP heute verbraucht,
- wie viel Wärme sie heute erzeugt,
- wie groß der Verbrauch im Monat ist,
- und vieles mehr.
2. COP – wie effizient die Wärmepumpe wirklich arbeitet
Der COP (Coefficient of Performance) ist die wichtigste Kennzahl einer Wärmepumpe. Er beschreibt, wie viel Wärme ich aus 1 kWh Strom erhalte:
COP = Tot.Prod / Tot.Cons
Da ich Tageszähler nutze, kann ich den COP für verschiedene Zeitintervalle sehr sauber berechnen.
2.1 COP heute / COP Monat
sensor:
- platform: template
sensors:
wp_cop_today:
friendly_name: "COP heute"
value_template: >
{% set prod = states('sensor.wp_heat_day') | float %}
{% set cons = states('sensor.wp_energy_day') | float %}
{% if cons > 0 %}
{{ (prod / cons) | round(2) }}
{% else %}
0
{% endif %}
So sehe ich täglich, wie effizient meine Wärmepumpe wirklich arbeitet.
3. Modbus – meine zweite Datenquelle für Livedaten
Die NIBE SMO S40 bietet über das NIBE-Sortiment eine vollständige Modbus/TCP-Schnittstelle. Damit lassen sich nahezu alle relevanten Betriebswerte in Echtzeit auslesen.
Dazu gehören:
- Leistung (kW)
- Vorlauf- und Rücklauftemperaturen
- Warmwasser oben/unten
- Degree Minutes (DM – Erklärung)
- Abtauzyklen
- Betriebsart (Heizen / Warmwasser / Standby)
3.1 Umrechnung der Modbus-Leistung in Watt
sensor:
- platform: template
sensors:
wp_power_w:
friendly_name: "WP Leistung"
unit_of_measurement: "W"
value_template: >
{{ (states('sensor.modbus_wp_power_kw') | float * 1000) | round(0) }}
So erkenne ich auf die Sekunde genau:
- wann die WP startet,
- wann sie Warmwasser lädt,
- wann sie nur „hält“,
- wie viel Energie Abtauvorgänge verbrauchen.
3.2 Weitere Modbus-basierte Livedaten
sensor:
- platform: template
sensors:
wp_vorlauf:
friendly_name: "WP Vorlauf"
unit_of_measurement: "°C"
value_template: "{{ states('sensor.modbus_vorlauf') | float }}"
wp_ruecklauf:
friendly_name: "WP Rücklauf"
unit_of_measurement: "°C"
value_template: "{{ states('sensor.modbus_ruecklauf') | float }}"
wp_delta_t:
friendly_name: "ΔT Heizkreis"
unit_of_measurement: "K"
value_template: >
{{ (states('sensor.wp_vorlauf') | float) - (states('sensor.wp_ruecklauf') | float) }}
wp_ww_oben:
friendly_name: "Warmwasser oben"
unit_of_measurement: "°C"
value_template: "{{ states('sensor.modbus_ww_oben') | float }}"
wp_ww_unten:
friendly_name: "Warmwasser unten"
unit_of_measurement: "°C"
value_template: "{{ states('sensor.modbus_ww_unten') | float }}"
4. Warum ich MyUplink und Modbus kombiniere
| Wert | Quelle | Anwendung |
|---|---|---|
| Tot.Cons / Tot.Prod | MyUplink | kWh-Zähler, COP, Monatswerte |
| WP-Leistung (W) | Modbus | Echtzeit-Stromverbrauch |
| Warmwasser oben/unten | Modbus | Warmwasserkennung |
| Degree Minutes | Modbus | Heizbedarf / Startalgorithmen |
MyUplink liefert die Energiemengen.
Modbus liefert die Leistungskurven.
Beides zusammen ergibt ein vollständiges Bild.
5. Warmwasser – mein größtes Optimierungspotenzial
Warmwasser ist bei vielen Luft/Wasser-Wärmepumpen der teuerste Teil des Betriebs. Mit Livedaten aus Modbus kann ich sehr genau erkennen:
- wie voll der Speicher ist,
- wann Warmwasser erzeugt wird,
- wann PV ideal passt,
- und wann es sinnvoll ist, die Komfortstufe zu erhöhen.
5.1 Warmwasser-Status aus Modbus ableiten
sensor:
- platform: template
sensors:
wp_ww_status:
friendly_name: "WW-Status"
value_template: >
{% set unten = states('sensor.wp_ww_unten') | float %}
{% if unten < 40 %}
leer
{% elif unten < 45 %}
mittel
{% else %}
voll
{% endif %}
5.2 Warmwasser mit PV laden – PV-Boost
alias: "WW PV-Boost"
trigger:
- platform: numeric_state
entity_id: sensor.pv_power_w
above: 1500
condition:
- condition: state
entity_id: sensor.wp_ww_status
state: "mittel"
action:
- service: select.select_option
data:
entity_id: select.nibe_hot_water_comfort_mode
option: "Medium"
5.3 Rückschaltung bei wenig PV
alias: "WW PV-Boost Ende"
trigger:
- platform: numeric_state
entity_id: sensor.pv_power_w
below: 300
for:
minutes: 10
action:
- service: select.select_option
data:
entity_id: select.nibe_hot_water_comfort_mode
option: "Small"
5.4 Komfortmodus bei Ankunft
alias: "WW Komfort bei Ankunft"
trigger:
- platform: state
entity_id: person.kathi
to: "home"
condition:
- condition: numeric_state
entity_id: sensor.wp_ww_unten
below: 40
- condition: time
after: "16:00:00"
before: "21:30:00"
action:
- service: select.select_option
data:
entity_id: select.nibe_hot_water_comfort_mode
option: "Medium"
Fazit
Mit der Kombination aus MyUplink und Modbus habe ich endlich volle Transparenz über die Wärmepumpe:
- Ich sehe, wie effizient sie wirklich ist (COP).
- Ich habe exakte Energiezähler für Tag/Woche/Monat/Jahr.
- Ich habe Livedaten für realistische Diagramme und Automationen.
- Ich steuere Warmwasser intelligent über PV und Komfortverhalten.
Im nächsten Teil geht es darum, wie ich meine PV-Anlage und den Wechselrichter lokal angebunden habe – inklusive der Speicherung in meiner ThinkKreativ-Datenbank und der Berechnung des echten Hausstromverbrauchs.