Mit dem Gesetz zur Digitalisierung der Energiewende vom August 2016 wurden Messstellenbetreiber dazu verpflichtet, daß
[...] ab 2017 innerhalb von acht Jahren alle Messstellen an Zählpunkten mit einem Jahresstromverbrauch über 10 000 bis einschließlich 20 000 Kilowattstunden mit einem intelligenten Messsystem ausgestattet werden [...]
Gesetz über den Messstellenbetrieb und die Datenkommunikation in intelligenten Energienetzen - §31, Punkt 1.4
Da meine Wärmepumpe bei ~11.000 kWh pro Jahr liegt, hätte ich bis 2025 angeschlossen werden müssen. Ende August 2025 habe ich von einem Subauftragnehmer der Mitnetz ein intelligentes Messystem installiert bekommen, d.h. einen digitaler Stromzähler mit angeschlossenem Smart Meter Gateway, der den Stromverbrauch alle 15 Minuten nach Hause sendet.
Die Zählerdaten wollte ich lokal abrufen und in meine Volkszähler-Instanz einspeisen - dort landen auch schon die Daten des Hausstromzählers, der schaltbaren Steckdosen und der Waschmaschine.
Theben Conexa 3.0
Der digitale Stromzähler ist ein Landis Gyr E320 Zweirichtungszähler, an den ein Smart Meter Gateway (SMGW) vom Typ Theben Conexa 3.0 angeschlossen ist. Da es im Zählerschrank nicht so guten Empfang gibt, hat der Installateur zusätzlich eine LTE-Antenne angeschlossen.
Das eigentlich schöne ist aber, daß es einen RJ45-Netzwerkanschluss gibt, der mit "HAN" - Home Area Network - betitelt ist.
IP-Adresse
Meine Kommunikationsversuche mit ihm schlugen aber alle fehl; ein Ping-Scan brachte keine Ergebnisse. Über die Netzwerkschnittstelle kamen keine Daten - nicht mal eine DHCP-Anfrage nach einer IP-Adresse. Im Handbuch steht dann folgendes:
Die IP-Adresse der HAN-Schnittstelle wird durch den Betreiber/Verwender zur Verfügung gestellt.
Portale, Portale
Da wir in digitalen Zeiten leben dachte ich mir, daß man die Zugangsdaten bestimmt online einsehen kann und registrierte mich im Kundenportal für Netzkunden - nur um festzustellen, daß es dort keine Zugangsdaten gibt.
Die restlichen Portale auf der Portale & Services-Seite der Mitnetz klangen nicht so, als sind sie für mich geeignet.
Dann las ich den Brief von der Mitnetz nochmal:
Ihr neuer Zähler ist mit dem Messdatenportal der MITNETZ STROM verbunden. Das hat für Sie den Vorteil, dass Sie Ihre Messdaten jederzeit genau im Blick haben können. Was ist dafür zu tun? Melden Sie sich nach dem Einbau einfach im Kundenportal der MITNETZ STROM unter meine.mitnetz-strom.de für diesen kostenfreien Service an.
Das "Kundenportal" unter dieser Adresse ist die
AppC App im Online-ANA & Extranet
für Installateure und Planungsbüros
, für das ich mich natürlich neu registrieren musste.
Dort gibt es einen Punkt Meine Apps > Messdaten, hinter dem
ein Formular hängt:
Sie möchten die Verbrauchswerte Ihres intelligenten Messsystems einsehen?
.
Nachdem ich das abgeschickt hatte, bekam ich 2 Tage später 3 E-Mails: Eine mit dem Benutzernamen, eine zweite mit dem Passwort, und die dritte mit der URL für das dritte Kundenportal: Das "Ecount Webportal" unter edm.mitnetz-strom.de.
HAN-Passwort
Im Ecount-Webportal gibt es - neben der Anzeige der aktuellen Verbrauchsdaten - auch einen Menüpunkt "HAN", unter dem man Benutzernamen des Stromzählers sieht und das Passwort setzen kann.
Das Formular war bei mir deaktiviert, weil meinem Account das Smart Meter Gateway nicht zugeordnet war:
Es wurde kein zugeordnetes SMGW gefunden.
Ich schrieb eine E-Mail an den Support, und 2 Wochen später konnte ich den Benutzernamen sehen (004747572657_ECPR0000476734) und ein Passwort setzen. Nach ca. 45 Minuten war das Passwort dann auf das SMGW übertragen. Vorher stand da:
Das HAN-Passwort wird in Kürze gesetzt.
und
Das HAN-Passwort kann nicht gesetzt werden. Ein Auftrag zum Setzen des Passwortes liegt bereits vor.
Es werden sogar für das SMGW komplexe Passwörter verlangt:
Passwortrichtlinien
- Mindestens 10 und maximal 32 Zeichen
- Mindestens einen Kleinbuchstaben
- Mindestens einen Großbuchstaben
- Mindestens eine Ziffer
- Mindestens ein Sonderzeichen. Zulässig sind: !/()=?+*~#',;.:-_
IP!
Initial hatte ich per E-Mail um die Zugangsdaten zum SMGW gebeten, nur um dann per Post die PIN für den digitalen Stromzähler zu bekommen.
Um das abzukürzen, hatte ich dann den Support angerufen (am Sonnabend - das ist noch Service!) und daraufhin eine E-Mail mit Hinweisen zum Zugriff erhalten:
Um die HAN-Schnittstelle des Gateways zu nutzen und die auf dem Gateway gespeicherten Daten abrufen können, stehen Ihnen zwei Möglichkeiten zur Verfügung.
Bitte beachten Sie, dass die IP-Adresse für die HAN-Schnittstelle des Gateways mit 192.168.1.200 fest vorgegeben ist.
1. Möglichkeit:
Eine vom Hersteller entwickelte Oberfläche, wo die abgespeicherten Messwerte abrufbar sind.
https://192.168.1.200/cgi-bin/hanservice.cgi
Für die Anmeldung nutzen Sie bitte folgende Nutzerdaten:
1. Der Benutzername ist voreingestellt und wird Ihnen im Visualisierungsportal unter dem Reiter "HAN" angezeigt.
2. Das Kennwort vergeben Sie sich bitte im Visualisierungsportal unter dem Reiter "HAN".
2. Möglichkeit
Über die sogenannte TruDi (transparent- und Display-Software) können Sie sich ebenfalls die im Gateway gespeicherten Messwerte über die HAN-Schnittstelle ansehen. Der Vollständigkeit halber erhalten Sie den Link zur Seite der Physikalisch Technischen Bundesanstalt (PTB), wo neben der Software TruDi auch die Bedienungsanleitung heruntergeladen werden kann.
https://www.ptb.de/cms/de/ptb/fachabteilungen/abt2/fb-23/ag-234/info-center-234/trudi.html
Für die Anmeldung benötigen Sie neben den oben benannten, folgende Informationen:
3. IP-Adresse: 192.168.1.200,
4. Port: 443.
Es gibt keine Möglichkeit, die IP-Adresse anzupassen.
Da auch die Subnetzmaske des SMGW nicht änderbar ist, kommt man mit der Änderung der eigenen Subnetzmaske auch nicht weit - die Pakete kommen dann zwar zum SMGW, aber nicht zurück. Man muss deshalb unbedingt eine Adresse im 192.168.1.x-er Netz haben, um auf das Gateway zugreifen zu können.
Mein Heimnetz liegt im Bereich 192.168.3.x, deshalb musste ich meinem Homeserver eine zweite IPv4-Adresse geben.
Conexa Web-Interface
Jetzt war der Weg frei, um an den aktuellen Stromverbrauch der Wärmepumpen zu kommen! Ich öffnete https://192.168.1.200/ im Browser, tippte Benutzernamen und Passwort ein und ... sah das:
Das wars! Keine Messdaten, keine Netzwerkinformationen, nichts. Nicht einmal das Ergebnis des Selbsttests kann man über das Interface abrufen.
Pfui, Theben Smart Energy.
Auch der versprochene hanservice.cgi ist nicht verfügbar.
API
Glücklicherweise sind die Geräte mit einer API ausgestattet, die auch von der TRuDi-Software genutzt wird. Mit dieser Software war es möglich, die Zählerdaten abzurufen.
Ich fand das smgw-theben-conexa-Projekt auf GitHub, welches eine Kopie der API-Dokumentation Schnittstellenbeschreibung IF_GW_CON.pdf enthält. Damit hatte ich alle notwendigen Informationen.
Smart Meter Gateway-Informationen
Den URL-Pfadteil ecpr0000476738.sm habe ich aus der URL des Web-Interface kopiert.
$ curl -s --digest -k --user "username:passwort"\ -XPOST -H 'Content-type: application/json'\ https://192.168.1.200/smgw/m2m/ecpr0000476738.sm/json\ --data '{"method":"smgw-info"}'\ | jq . { "elapsed-time": "28 miliseconds", "method": "smgw-info", "smgw-info": { "certificates": { "han": { "tls": "2d2d2d2d2[...]" }, "wan": [ { "cert-index": "0", "sig": "308203be[...]", "sub-ca": "308204373[...]" }, { "cert-index": "1", "sig": "308203c130[...]", "sub-ca": "3082042b3[..]" } ] }, "firmware-info": { "component": "Firmware", "hash": "bff7b08c0b6669be02fece905da7acc7c92b73a53c992893d1e19673e7dd1cfd", "version": "v3.80.3-cc" }, "smgw-id": "ethe0300427561", "smgw-state": "a0000000", "smgw-time": "2025-10-03T11:21:57" }, "version": "1.3.0" }
Logmeldungen
$ curl -s --digest -k --user "username:password"\ -XPOST -H 'Content-type: application/json'\ https://192.168.1.200/smgw/m2m/ecpr0000476738.sm/json\ --data '{"method":"log","fromtime":"2025-10-03T11:20:00"}'\ | jq . { "elapsed-time": "19 miliseconds", "log": { "entries": [ { "event-id": "13003", "event-sub-id": "0", "index": "2439", "level": "6", "message": "Die Systemzeit wurde mit der gesetzlichen Zeit synchronisiert. Die neue Zeit ist 2025-10-03T11:20:49+02:00. Die alte Zeit war 2025-10-03T11:20:49+02:00. Die Differenz betrug 22 Millisekunden.", "outcome": "0", "subject-identity": "01005e3180a0.ethe0300427561.sm", "time": "2025-10-03T09:20:50Z", "user-identity": "01005e318011.ecpr0000476738.sm", "vendor-id": "PTB", "version": "1" } ], "records": "1" }, "method": "log", "version": "1.3.0" }
Vertragsinformationen
Hier wird es interessant, weil wir für das Auslesen die usage-point-id benötigen. Bei mir gibt es 2 "usage points": Der erste gruppiert monatlich und deshalb wenig "billing-Periods"; der zweite gruppiert nach Tagen:
$ curl -s --digest -k --user "username:password"\ -XPOST -H 'Content-type: application/json'\ https://192.168.1.200/smgw/m2m/ecpr0000476738.sm/json\ --data '{"method":"user-info"}'\ | jq . { "elapsed-time": "781 miliseconds", "method": "user-info", "user-info": { "usage-points": [ { "billing-Periods": [ { "end-time": "2025-08-31T22:00:00Z", "start-time": "2025-08-29T10:30:01Z" }, { "end-time": "2025-09-30T22:00:00Z", "start-time": "2025-08-31T22:00:00Z" }, { "start-time": "2025-09-30T22:00:00Z" } ], "capture-time": "00:00:00", "delivery-id": "ecpr0000476735", "end-time": "", "meter": [ { "meter-id": "1lgz0082488485" } ], "metering-point-id": "DE0010810480800000000000000088119", "on-demand-profile-configured": "true", "start-time": "2025-08-29T10:30:01Z", "taf-number": "1", "taf-state": "running", "usage-point-id": "01005e318021.taf014042805000706de0010810480800000000000000088119000000305185.sm", "usage-point-name": "IM4G_TAF01_15MI_MON_MON" }, { "billing-Periods": [ { "end-time": "2025-08-29T22:00:00Z", "start-time": "2025-08-29T10:30:01Z" }, [...] { "end-time": "2025-10-01T22:00:00Z", "start-time": "2025-09-30T22:00:00Z" }, { "end-time": "2025-10-02T22:00:00Z", "start-time": "2025-10-01T22:00:00Z" }, { "start-time": "2025-10-02T22:00:00Z" } ], "capture-time": "00:00:00", "delivery-id": "ecpr0000476735", "end-time": "", "meter": [ { "meter-id": "1lgz0082488485" } ], "metering-point-id": "DE0010810480800000000000000088119", "on-demand-profile-configured": "true", "start-time": "2025-08-29T10:30:01Z", "taf-number": "7", "taf-state": "running", "usage-point-id": "01005e318027.taf074042805000706de0010810480800000000000000088119000000305184.sm", "usage-point-name": "IM4G_TAF07_15MI_15MI_DAY" } ] }, "version": "1.3.0" }
Ich hab mir "usage point" mit der täglichen Gruppierung ausgesucht.
Daten!
Mit der usage-point-id kann man sich Verbrauchsdaten über einen Zeitraum abholen, oder aber nur den letzten Zählerwert:
$ curl -s --digest -k --user "username:password"\ -XPOST -H 'Content-type: application/json'\ https://192.168.1.200/smgw/m2m/ecpr0000476738.sm/json\ --data '{"method":"readings","database":"origin","last-reading":true,"usage-point-id":"01005e318027.taf074042805000706de0010810480800000000000000088119000000305184.sm"}'\ | jq . { "elapsed-time": "26 miliseconds", "method": "readings", "readings": { "channels": [ { "obis": "0100010800ff", "readings": [ { "capture-time": "2025-10-03T09:29:57Z", "cosem-status": "a000000020803800", "meter-status": "20803800", "owner-number": "1lgz0082488485.sm", "signature": "91ba8abd883[...]", "smgw-status": "a0000000", "target-time": "2025-10-03T09:30:00Z", "value": "4075668" } ] } ], "records": "1" }, "version": "1.3.0" }
Die 4075668 sind 407,5668 kWh.
Volkszähler-Integration
Der Smart Meter Gateway wird auf dieselbe Weise eingebunden, wie ich es schon mit den Shelly Plug S gemacht hatte.
Zuerst im Webinterface des Volkszählers einen neuen Kanal anlegen:
- Typ
- El. Energie (Zählerstände)
- Auflösung
- 10000
- Stil
- Stufen
Nach dem Anlegen wird eine Kanal-ID angezeigt; diese braucht man jetzt bei der vzlogger-Konfiguration im meters-Abschnitt:
//wärmepumpen { "protocol": "exec", "enabled": true, "allowskip": true, "interval": 300, "command": "curl -s --digest -k --user \"username:password\" -XPOST -H 'Content-type: application/json' https://192.168.1.200/smgw/m2m/ecpr0000476738.sm/json --data '{\"method\":\"readings\",\"usage-point-id\":\"01005e318027.taf074042805000706de0010810480800000000000000088119000000305184.sm\",\"database\":\"origin\",\"last-reading\":true}' | jq -r '[\"total\", .readings.channels[].readings[].value] | join(\" \")'", "format": "$i $v", "channels": [ { "uuid": "a9cc7410-a01f-11f0-bd17-a9f5d1d0316e", "middleware": "http://strom.home.cweiske.de/middleware.php", "identifier": "total", "aggmode": "max" } ] },
Jetzt den vzlogger neustarten und die Daten fließen alle 5 Minuten in die Datenbank.
Rupert schrieb auf volkszaehler-users, daß das SMGW die Daten nur alle 15 Minuten abliest. Wenn man sich die Graphen genauer anschaut, dann stimmt das auch :( Das interval kann deshalb auf 900 geändert werden.