Update am 02.05.2023
Die EVN hat ein Update ausgerollt (Start war der 02.05.2023)Die Firmware Version kann man am Display des Smart Meters ablesen. Die Version V0450 ist die ist die Neue.
Ich habe eine neue Version auf Github veröffentlicht. Anleitung gibt es derzeit nur als Video.
Bitte der Video Anleitung folgen die Text Anleitung ist nicht aktuell!!!!
Einleitung
Im Zuge meiner Diplomarbeit brauchte ich die Stromverbrauchswerte von meinem Haus. Daher beschäftigte ich mich einige Zeit mit verschiedenen Zählern. Ich wollte die Daten selbst abspeichern und in keiner Cloud liegen haben. Und die Kosten sollten so gering wie Möglich sein. Daher kaufte ich mir kein extra Gerät sondern nutzte die Vorhandenen Gegebenheiten.
Voraussetzungen Hardware (Bauteileliste unten)
- Sagemcom Drehstromzähler T210-D von der Netz Niederösterreich
- Passwort für die Kundenschnittstelle (siehe unten)
- Raspberry Pi 4
- USB zu MBus Adappter
Voraussetzungen Software
- Raspbian
- Python3
- Libraries
- gurux_dlms
- beautifulsoup4
- paho-mqtt
Verkabelung des M-Bus Adapter
Der Sagemcom Drehstromzähler T210-D hat unter seinen grünen Abdeckung eine Buchse für ein RJ-12 Kabel. Mithilfe des RJ-12 Kabels kann der M-Bus Adapter verkabelt werden. Die zwei mittleren Pins werden benötigt. Die beiden Drähte werden an den M-Bus Adapter angeklemmt.
Einbau im Schaltschrank
Das RJ-12 Kabel wird einfach unter der grünen Abdeckung des Smart Meters angesteckt und der Raspberry mit seinem Hutschienen Gehäuse montiert. Der Raspberry benötigt noch Strom welchen er über das Original Netzteil bezieht. Der MBus-USB Adapter wird in der USB Port eingesteckt und ein Netzwerkkabel angeschlossen.
Passwort für die Kundenschnittstelle
Das individuelle Passwort muss man bei der Netz Niederösterreich anfragen. Am besten schreibt man eine Email an smartmeter@netz-noe.at. Die Email muss die Zählernummer, Handynummer und Kundennummer oder Vertragskontonummer enthalten.
Als Antwort erhält man eine verschlüsselte .zip das Passwort für die Datei erhält man als SMS und kann die Datei entpacken. Darin befindet sich ein PDF mit dem Zugangscode.
Installation
Es müssen folgende Pakete Installiert werden.
sudo apt install python3 idle3 # installiert Python3sudo pip3 install gurux-dlms # library für die Übersetzung in eine XMLsudo pip3 install beautifulsoup4 # library beautifulsoup4 sudo pip3 install paho-mqtt # library für die MQTT Verbindungsudo pip3 install lxml # library für XML Parsersudo apt-get install libxslt-dev # library für XML Parsersudo apt install python3-pycryptodome # library für die Entschlüsselungsudo pip3 install pyserial # library für die Seriele Schnittstellesudo pip3 install cryptography # library für die Entschlüsselung
Programm herunterladen und anpassen
Der Code ist auf der Plattform Github veröffentlicht und ist Open Source und somit kann ihn jeder herunterladen oder auf seine Bedürfnisse anpassen!
Es müssen nur noch einige Anpassungen vorgenommen werden.
Hier muss der Code von der PDF von der EVN eingegeben werden.
# EVN Schlüssel eingeben zB. "36C66639E48A8CA4D6BC8B282A793BBB"evn_schluessel = "EVN Schlüssel"
Dann kann man entscheiden ob man MQTT nutzen will, wenn man TRUE auswählt muss man einen gültigen MQTT Broker IP Adresse eingegeben werden ein Beispiel ist angeführt. Wenn der MQTT Server mit Username und Passwort versehen ist muss Programmiert werden ich habe zum Testen eine offene Verbindung angestrebt um mögliche Fehlerquellen auszuschließen.
#MQTT Verwenden (True | False)useMQTT = True#MQTT Broker IP adresse Eingeben ohne Port!mqttBroker = "192.168.8.99"
Es sollte der richtige Comport eingestellt werden wenn es Probleme gibt muss dieser eventuell verändert werden.
#Comport Config/Initcomport = "/dev/ttyUSB0"
Erste Inbetriebnahme
Als erstes sollten alle MQTT Funktionen auf FALSE gestellt werden um mögliche Fehler zu beseitigen. Nur die Variable printValue = True muss so bleiben.
Die Variable evn_schluessel muss mit dem Schlüssel aus der PDF ersetz werden.
evn_schluessel = "36C66639E48A8CA4D6BC8B282A793BBB"
Wenn man das Programm in einer Programmierumgebung hat dann kann man es mit Run testen ob alles läuft. Sonst muss man es über den folgenden Befehl starten. Gegebenenfalls muss man den Pfad wo die Datei liegt ändern.
sudo python3 /home/pi/Desktop/EvnSmartmeterMQTT.py
Sollte eine Fehlermeldung mit dem Text “Fehler beim Synchronisieren. Programm bitte ein weiteres Mal Starten” muss man das Programm nach kurzer Wartezeit neu starten.
MQTT Topics
Diese können ab der Zeile 144 bis 155 verändert werden. Standardmäßig sind folgende eingestellt.
Topic | Kommentar | Einheit |
Smartmeter/WirkenergieP | bezogene Energie | Wh |
Smartmeter/WirkenergieN | gelieferte Energie | Wh |
Smartmeter/MomentanleistungP | Momentanleistung Bezug | W |
Smartmeter/MomentanleistungN | Momentanleistung Lieferung | W |
Smartmeter/Momentanleistung | Momentanleistung Summe aus Bezug und Lieferung | W |
Smartmeter/SpannungL1 | Spannung an L1 | V |
Smartmeter/SpannungL2 | Spannung an L2 | V |
Smartmeter/SpannungL3 | Spannung an L3 | V |
Smartmeter/StromL1 | Strom an L1 | A |
Smartmeter/StromL2 | Strom an L2 | A |
Smartmeter/StromL3 | Strom an L3 | A |
Smartmeter/Leistungsfaktor | Leistungsfaktor |
Versionsunterschiede
Es sind 2 Python Programme beide machen grundsätzlich dasselbe nur die Synchronisierung ist unterschiedlich. Es funktionieren beide aber sie wurden noch nicht im Dauereinsatz getestet. Jenes Programm, welches sich als stabiler herausstellt wird auf Dauer bleiben und das andere entfernt.
EvnSmartmeterMQTT.py
Wenn es startet sollte es alle 5 Sekunden ohne Unterbrechung Werte senden.
Der längste Dauertest war 14 Tage und dann ist es abgestürzt. (Fehler muss nicht im Skript sein kann ein Absturz vom Broker oder Pi selber gewesen sein)
EVNSmartmeterMQTT_V01.py
Bei diesem Programm ist mir selber schon aufgefallen dass nicht alle 5 Sekunden Werte kommen aber dafür Synchronisiert es sich selber und stürzt nicht ab.
Testzeitraum war ca. 48 Stunden.
Bauteilliste und Unterstützung
Alle Links sind Affiliate Links. Somit unterstützt ihr diese und weitere Projekte von mir.
Spendenlink: https://www.paypal.me/MichaelReitbauer
Die Lieferzeit der MBus Adapter ist leider relativ lange mit 3 Wochen. Daher habe ich selber eine Platine entwickelt. Wenn Interesse besteht einfach per Mail melden habe noch einige über. Versand Dauer in Österreich ca. 1-3 Werktage. support@michaelreitbauer.at
MBus-Pegelwandler-SchaltplanHerunterladen
20230306-153507-3D-BetrachterHerunterladen
Produkt | wird benötigt | Amazon | Aliexpress |
Raspberry Pi 4 | Ja | https://amzn.to/3pPliDB | |
Raspberry Pi 4 Starter Set | Ja | https://amzn.to/3Jz589v | |
Raspberry Pi 4 Hutschienen Gehäuse | Nein | https://amzn.to/3HwsUkn | |
USB-zu-MBUS-Slave-Modul | Ja | https://amzn.to/3mbmUbH | https://s.click.aliexpress.com/e/_DDzNUPp |
RJ-12 Kabel | Ja | https://amzn.to/3EPZvQs | |
Schaltschrank Steckdose | Nein | https://amzn.to/32Mb3HB |
MQTT Nachrichten in Datenbank speichern
Ich habe zu diesem Thema einen eigenen Beitrag geschrieben.
Zum Beitrag
Auswertung der Daten
Dazu habe ich einen eigenen Beitrag geschrieben.