@vereinkleinwohnformen/node-red-energiemonitor 0.4.1
Energy monitor connector to the KWF databases
Das Projekt Energiemonitor
Dieses Projekt soll es dir ermöglichen, deinen Energieverbrauch zu messen, in Echtzeit zu analysieren, zu verstehen und zu optimieren - mit dem Ziel dass du mit den einfachen aber richtigen Aktionen im Alltag 20% deines Energieverbrauchs einsparen kannst. Dieses Projekt wird vom Verein Kleinwohnformen getragen und ist in erster Linie auf kleine, unabhängige Wohnformen zugeschnitten. Es ist aber nicht ausgeschlossen, dass du unseren Monitor auch für deine Wohnung bauen und nutzen kannst - wir sind Open Source und Mitmachen im Projekt ist erwünscht! Einfach melden beim Energiemonitor-Team.
Projekt-Repos
- Referenz-HW und Provisionierung mit BalenaOS
- NodeRED-Connector neu
- NodeRED Beispiel-Flows (depr.)
- Energiemonitor-App (Repo)
- Energiemonitor-App (Demo)
Angestrebte Architektur
Wir befinden uns noch in der Designphase, viele der eingezeichneten Komponenten existieren noch nicht. Wir streben aber das folgende System an:
NodeRED Connector für KWF Energiemonitor (beta)
Dieser Node ist der Kernbaustein des KWF Energiemonitors. Du musst dich nur noch darum kümmern, die gewünschten Datenkanäle einzulesen, und sie in einem passenden Intervall mit dem richtigen Topic an diesen Baustein (KWF Datenbank-Connector) zu schicken, und dieser Block übernimmt den Rest, nämlich:
- Daten in einer lokalen Datenbank zwischenspeichern
- Daten regelmässig (1 mal pro Stunde) oder wenn wieder eine Internetverbindung vorhanden ist, an die Datenbank zu schicken.
So sieht eine Beispiel-Konfiguration aus. Deine NodeRED-Bausteine sollten noch folgende Aufgaben übernehmen:
- Daten ggf. aggregieren und in der empfohlenen Frequenz an diesen Connector schicken (Idee: Zukünftig könnte auch dieser Konnektor Daten aggregieren, um Fehler und falsche Inputs in der Datenbank zu vermeiden)
- Das richtige Format sicherstellen
- Das richtige Topic anfügen
Das sieht dann so aus. Auf der linken Seite hast du deine Mess-Blocks, die alle mit unserem Connector verbunden sind.
Installation
Dieser Node ist bereits in der NodeRED-Library verfügbar.
Konfiguration
Diese Parameter müssen konfiguriert werden:
- Einen Pfad, auf dem Daten persistent gespeichert werden können (für die Datenbank zur Zwischenspeicherung). Für eine Einrichtung auf Balena den Default-Wert beibehalten. Im Fall von Datenbank-Fehlern (z.B. alte Version des Blocks hat bereits ein anderes Datenbank-Format) kann es helfen, den Namen des Datenbank-Files auszutauschen.
- Sende-Intervall (ms), in dem die Daten an die Datenbank gesendet werden. Zum Testen ca. 1 Minute nehmen und im Betrieb 1 Stunde (Default).
- Die URL der API, am besten aus den Balena Flotten-Variablen übernehmen
- Deinen Device API-Key, am besten aus den Balena Device-Variablen übernehmen
Input-Datenformat
Das Input-Datenformat basiert jetzt auf Messpunkten (measurement_point), die für jede Wohneinheit separat definiert werden. Jeder Sensor hat eine eindeutige ID und jeder Datenpunkt wird einem spezifischen Messpunkt zugeordnet.
Wichtig: Topics werden nicht mehr verwendet. Alle Informationen werden in msg.payload
übertragen.
Grundlegendes Format
{
"values": {
// Sensor-spezifische Messwerte
},
"sensor_id": "eindeutige-sensor-id",
"timestamp": 1760084970005,
"metering_point": "XX"
}
Unterstützte Messpunkte
Basierend auf dem Messkonzept werden folgende Messpunkte unterstützt:
Externe Messpunkte (Rand der Systemdefinition):
E1
: Netzbezug el. Energie [kWh]E2
: Rückspeisung el. Energie [kWh]E3
: Eigenproduktion el. Energie [kWh]M1
: Gas in Flaschen [kg]M2
: Brennholz oder Pellets [kg, Ster]A1
: Abzug Verbrauch Energiemonitor [kWh]
Interne Messpunkte:
I1
: Warmwassererzeugung [kWh / kg Gas]I2
: Energiebedarf Heizung [kWh / kg / Ster]
Wohnkomfort:
K0
: Wohnkomfort Allgemein (Kombinierte Sensoren) [°C, % RH, ppm]K1
: Innentemperatur, Lieblingsort [°C]K2
: Aussentemperatur N, Schatten [°C]K3
: Luftfeuchtigkeit, Lieblingsort [% RH]K4
: CO2-Gehalt, Lieblingsort [ppm]
Wasser:
D1
: Gesamtwasserverbrauch [m3]
Beispiele für verschiedene Sensortypen
230V Stromklemmen (z.B. Shelly 3EM Pro):
{
"values": {
"voltage": 231.27,
"act_power": 14.555,
"pf": 0.33,
"aprt_power": 44.35
},
"sensor_id": "shelly-3em-pro",
"timestamp": 1760084970005,
"metering_point": "E1"
}
Netatmo Wetterstation:
{
"values": {
"device_id": "70:ee:50:a9:ea:6e",
"station_name": "Energiemonitor 1 (Indoor)",
"home_name": "Energiemonitor 1",
"device_reachable": true,
"wifi_signal_strength": 65,
"temperature_indoor": 19.8,
"humidity_indoor": 51,
"co2_indoor": 460,
"pressure": 1028.9,
"noise_level": 32,
"pressure_absolute": 976.5,
"temperature_trend": "stable",
"pressure_trend": "up",
"outdoor_module_reachable": true,
"outdoor_module_id": "02:00:00:a9:db:20",
"outdoor_module_name": "Outdoor",
"temperature_outdoor": 18.4,
"humidity_outdoor": 60,
"outdoor_temp_trend": "stable",
"battery_level": 100,
"rf_signal_strength": 53,
"battery_voltage": 6116,
"temperature_difference": 1.4
},
"sensor_id": "netatmo",
"timestamp": 1760086636000,
"metering_point": "K0"
}
Unterstützte Sensortypen
Die folgende Tabelle zeigt die aktuell unterstützten Sensortypen und ihre typischen Anwendungsfälle:
Sensortyp | Sensor ID | Beschreibung | Typische Messpunkte | Gemessene Werte |
---|---|---|---|---|
Shelly 3EM Pro | shelly-3em-pro |
230V Stromklemmen für Energiemessung | E1, E2, E3, A1, I1, I2 | voltage, act_power, pf, aprt_power |
Netatmo Wetterstation | netatmo |
Innen- und Außenklima-Monitoring | K0, K1, K2, K3, K4 | Temperatur, Luftfeuchtigkeit, CO2, Luftdruck, Lärm, Batteriestand, Signalstärke |
Todo
Weitere Aufgaben für dieses Projekt:
- Support für Victron Cerbo GX testen
- Basis-Sensoren des Energiemonitor-Kits einbinden
- Weitere Datenformate unterstützen: Alle Victron-Geräte, sowie weitere Input-Daten
- Aggregation der Messdaten übernehmen, damit nicht zuviele Daten in die Cloud geschickt werden können, sondern vorher ein Durchschnitt gebildet wird