Dieser Beitrag wurde freundlicherweise von unserem Kunde Marcel Gsteiger verfasst.
Ausgangslage
Der ZEV Höheweg 3d, Münchenbuchsee mit 7 Wohnungen wurde im Jahr 2021 in Betrieb genommen. Die Energieflüsse zwischen ZEV und VNB werden dreifach gemessen:
-
- gesetzlich vorgeschriebener VNB Zähler
-
- Zähler des PV-Lieferanten (Optimierung der Phaseneinspeisung des Wechselrichters)
-
- interner ZEV-Zähler (phasengetrennte Vollmessung in den Summenpunkt des ZEV)
Der VNB Zähler wurde ursprünglich mit einem KLAX – Modul am D0 – Optokopf ausgelesen – rein zu Kontrollzwecken, mit einer Auslesung einmal pro Viertelstunde. Der KLAX arbeitet mit LoRaWAN (TTN). Daher ist nur eine sehr geringe Ausleserate möglich, darüberhinaus ist der Betrieb mit Batterie/Akku nicht wartungsfrei.
Mit dem gPlug am neuen Smartmeter des VNB (EMAG) wird der KLAX ersetzt und damit die Auslesung sicherer, komfortabler und von LoRa / Internet unabhängig.
EMAG setzt Smartmeter des Typs Elster AS3000 mit Kommunikationsmodul AM540 ein. Die Zähler werden durch die BKW verwaltet. Die ausgegebenen Zählerdaten stimmen jedoch nicht mit den erwarteten Daten überein, insbesondere fehlen phasenbezogene Spannungs-/Stromwerte komplett. Weiter weichen die OBIS-Kennzahlen von den üblichen Gepflogenheiten ab.
Für eine Anwendung in der hier vorhandenen ZEV Lösung “Energy3d” werden nur die summarischen Leistungs- und Zählerwerte benötigt. Diese werden mit dem gPlug erhoben, anschliessend mittels MQTT an NodeRed übermittelt, bereinigt und in das lokale Monitoringsystem Zabbix übergeben. Ab diesem Zabbix System werden anschliessend die Daten via Grafana visualisiert.
Interessanterweise werden für jede Energieflussrichtung drei Zählwerte übergeben:
-
- 0: Summe
-
- 1: Niedertarif NT
-
- 2: Hochtarif HT
Obwohl 0 der Summe von 1 und 2 entspricht, wird dieser Wert getrennt erfasst und weiterverarbeitet. Er dient dem tarifunabhängigen Vergleich der VNB und ZEV-Gesamtmessung.
Folgende Komponenten mussten angepasst oder neu erstellt werden:
-
- Tasmota Script zum Auslesen des Zählers (auf dem gPlug)
-
- NodeRed Node zur Bereinigung der MQTT-Daten
-
- Zabbix Template für gPlug
-
- Grafana-Dashboard zur Visualisierung
Inbetriebnahme des gPlug
Unerwartet war, dass die Kundenschnittstelle durch den Verteilnetzbetreiber (VNB) bereits freigeschaltet war. Auf den Wunsch auf Freischaltung erhält man nur einen Hinweis, die Kundenschnittstelle werde “nicht unterhalten”. Das bedeutet aber anscheinend nicht, dass diese nicht wie gesetzlich vorgeschrieben zur Verfügung steht. EMAG schaltet die Kundenschnittstelle frei, ohne dass man dazu auffordert. Dies entspricht nicht den gesetzlichen (Datenschutz-)Vorgaben, könnte sich also jederzeit ändern.
Leider ist das “Kundenschnittstelle-Kästchen” des AM540 knapp zu klein, um den gPlug “ohne Gehäuse” darin unterzubringen. Es sollte also der gPlug “mit Gehäuse” bestellt werden. Den kann man dann leicht mit Montageband am Zähler fixieren.
Fixe IP? Fehlanzeige – zunächst
Der gPlug sollte in einem getrennten WLAN betrieben werden, in welchem auch zahlreiche WLAN-Zähler shelly 3em und WLAN-Sensoren für den Rundsteuerungsempfänger untergebracht sind. All diese Geräte werden mit statischer IP konfiguriert (kein DHCP). Nun erlaubt Tasmota im ersten Dialog (gPlug als Access Point) keine Angabe einer fixen IP. Erst im Infrastrukturmodus (gPlug als WLAN Client) ist der dazu notwendige Konsolenzugriff via Weboberfläche verfügbar. Der gPlug wird also zunächst für ein WLAN mit DHCP konfiguriert. Dann kann auf der Tasmota-Webkonsole die Konfiguration für das “statische WLAN” wie folgt erfolgen:
savedata 0
Backlog IPAddress1 <ipaddr>; IPAddress2 <gateway>; IPAddress3 <netmask>; SSID1 <ssid>; Password1 <wpa2-psk>; restart 1
Selbstredend versteht sich, dass vor dem Einrichten einer statischen IP-Adresse sichergestellt werden muss, dass diese nicht bereits vergeben ist.
Tasmota Script
Das vorhandene Tasmota Script ist wie folgt zu ersetzen (erstellt durch Modifikation des gelieferten Scripts):
NodeRed Integration
NodeRed verwendet hier den eingebauten aedes-MQTT-Broker, aber dies ist nicht zwingend; ein anderer Broker sollte auch genügen.
In NodeRed wird eine “MQTT-in” Node, ein Funktionsnode und ein Zabbix-sender Node eingefügt
Nachdem der MQTT-Server auf Tasmota aktiviert wurde, kann in NodeRed der “MQTT-in” Node “gPlug” konfiguriert werden, dabei muss die MAC-Adresse ( hier: B6C7CF ) der Angabe auf der Tasmota-Informationsseite entsprechen:
Im Node “fix_scaling” wird folgende Funktion hinterlegt, welche die MQTT – Daten für die Abgabe an den zabbix-sender umcodiert:
function wh(x) { return Number((x*1000).toFixed(0)); }
const x = JSON.parse(msg.payload);
const z = x.z;
const k = Object.keys(z)[0];
msg.payload = ["meter_grid", k, /^(E|B)/.test(k)?wh(z[k]):z[k]];
return msg;
Zabbix Template
Das Zabbix Template enthält die Werte für Leistung und Zählerwerte als ganzzahlige Werte (W resp. Wh). Die Einheiten sind im Template mit vorangestelltem Ausrufezeichen gekennzeichnet (z.B. !Wh), damit bei einer Skalierung auf kWh, MWh etc. die Einheiten nicht gerundet, sondern ganzzahlig weitergegeben werden.
In Zabbix wurde der gPlug als “Host” mit Name “meter_grid” erfasst, IP Adresse 127.0.0.1 mit Interfacetyp “SNMP” (nur “agentless” Datenerfasung via Zabbix Trapper) und dem angegebenen Template_gPlug.
Grafana Visualisierung
Grafana kann direkt MQTT-Datenströme darstellen. Da jedoch Zabbix eine umfassende Datenspeicherung und -Verdichtung enthält, wird hier via Zabbix Plugin direkt auf die in Zabbix gespeicherten Messdaten zugegriffen.
Die Visualisierung zeigt hier kWh mit drei Kommastellen an, obwohl eigentlich exakte Wh gespeichert sind. Damit kann trotz Anzeige des exakten Gesamtzählerstands auch eine geringe Energiedifferenz mit Auflösung von 1 Wh visualisiert werden.
Das Dashboard (uid mit xxxx ersetzt):
n