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 Python3
sudo pip3 install gurux-dlms # library für die Übersetzung in eine XML
sudo pip3 install beautifulsoup4 # library beautifulsoup4
sudo pip3 install paho-mqtt # library für die MQTT Verbindung
sudo pip3 install lxml # library für XML Parser
sudo apt-get install libxslt-dev # library für XML Parser
sudo apt install python3-pycryptodome # library für die Entschlüsselung
sudo pip3 install pyserial # library für die Seriele Schnittstelle
sudo 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/Init
comport = "/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
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/47MbgaC | 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.
Auswertung der Daten
Dazu habe ich einen eigenen Beitrag geschrieben.
Hallo,
ich hab mal alles so nach der video anleitung gemacht. bekomme auch die werte auf die Konsole.
Aber beim schreiben in die influx db habe ich in der datenbank SmartMeter die measurements Leistungsfaktor, Momentanleistung, Spannung, Strom und Wirkenergie und nicht wie bei dir SmartMeter.
Was dann auch im Grafana Dashboard nicht funktioniert.
Mache ich da was falsch oder woran kann das liegen?
Danke vorab.
lg Martin
Auf einem Raspberry hab ich das mit Grafana zum laufen bekommen, hat sich aber gestern aufgehängt. Schreibt nur mehr „no Data“
Ich hab jetzt mal zum Ausprobieren Home Assistant auf dem Raspberry installiert um auch andere Sachen auszuprobieren. Kann man das Skript irgendwie integrieren? ich glaub das wär dann eine ganz coole Lösung.
Hallo,
ich habe einen zweiten Raspberry Pi W Zero zum auslesen der Daten und sende die Mittels MQTT an den Home Assistant. Das ist für mich die beste Lösung.
LG Michael
Hallo!
Danke für das Projekt! Bin absoluter Anfänger was diese Materie angeht, abner ich halte das für machbar.
Eine Frage drängt sich mir jedoch auf:
Ich habe in meinem Haus 2 Smartmeter verbaut. Ist es möglich, beide über einen Raspberry Pi auszulesen – also 2 MBus Adapter an einem Pi?
Alternativ würden sonst 2 Geräte parallell laufen.
lg
Johannes
Hallo,
ich denke schon das es möglich ist aber ich habe es noch nicht probiert.
Man kann auch einen normalen PI nehmen und für den zweiten Zähler einen Raspberry Pi Zero https://amzn.to/3vVcAd4.
LG Michael
Hallo Michael,
funktioniert deine neue Version auch mit der Smartmeter Firmware V0150? Das EVN-Gerät meines Freundes wurde nämlich offenbar noch nicht upgedatet.
wird zwar hier nicht verwendet
aber würd die P1 Schnittstelle beim T210-D von EVN genug Strom liefern um zb Esp32 direkt zu versorgen?
finde leider nur Beschreibung zur Datenschnittstelle
danke
Nein – das ist ein reines Datensignal ~36V für high, 24V für low – und reicht gerade um die LEDs in einem Optokoppler zu versorgen.
Doch, das geht, ist aber nicht ganz einfach, ich bastel grade dran. Keine ahnung was die EVN einbaut aber die Wandler für die schnittstelle kann man fast mit 2W belasten. da die Schnittstelle ja eh meiste zeit inaktiv ist kann man damit einen Elko laden und dann damit einen stepdown versorgen. strombegrenzung braucht ma noch sicherheitshalber für den ladeelko. das kaifa hat einen Rin von ca 55 ohm und spuckt ca 28V im leerlauf aus, das sagecom hat sogar nur ca 12 ohm und spuckt im leerlauf ca 36V aus. bei einer last von ca 1,7W bricht die spannung am sagecom komplett ein und pulsiert. es ist also theoretisch möglich 😉
ist tricky aber geht, zumindest beim sagecom . mit dem datensignal einen dicken elko langsam laden; bei mir 2200uF und dann auf den 5V stepdown läuft schon ein paar wochen
Hallo, hat die EVN etwas an den Daten geändert oder funktioniert mein Setting nicht mehr? Mein Aufbau hat über mehrere Monate super funktioniert doch seit 2 Tagen erhalte ich keine Daten mehr. Wenn ich das AusleseScript starte kommt keine Meldung (trotz printValue”: true). Weder “Daten ok” noch “wrong M-Bus Start, restarting”. Woran kann das liegen?
lg
Wolfgang
Hallo, ich konnte mein Problem lösen. Hatte zu Schluss immer einen Speicherzugrifffehler. Bedeutete das das Script nicht mehr gestartet werden konnte. Nachdem ich keine Linux-Kenntnisse habe hab ich die Speicherkarte formatiert und alles neu aufgesetzt. Jetzt läuft wieder problemlos.
Lg
Wolfgang
Hi Michael!
Coole Sachen, bei meinem Zähler kommt allerdings “wrong M-Bus Start, restarting”
Was kann das sein?
Danke!
Hallo, hat wer das gleiche Problem? wenn ich die install.sh ausführe bekomme ich bei python3 immer folgende Meldung:
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing –break-system-packages.
hint: See PEP 668 for the detailed specification.
Ich vermute du verwendest die neu OS Bookworm. Da geht das “sudo pip3 install xxxx” nicht mehr.
sudo pip3 install gurux-dlms –break-system-packages
So sollte es klappen
Ich habe genau das selbe Problem leider bringt der Befehl den selben Fehler.
sudo pip3 install gurux-dlms –break-system-packages
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
For more information visit http://rptl.io/venv
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing –break-system-packages.
hint: See PEP 668 for the detailed specification.
Hallo,
pip install package_name –break-system-packages
https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3
Hoffe das hilft sonst nochmals melden.
LG Michael
Hallo Michael,
gegen Ende der Installation bekomme ich mehrmals die Meldung
Error: externally-managed-environment
This environment is externally managed. To install Python packages system-wide, try apt install python3-xyz, where xyzzy is the package you are trying to install.
Beim Aufrufen deines Ausleseskripts die Fehlermeldung “ModuleNotFoundError – No module found “serial””.
Hast du eine Idee, welchen Fehler ich mache??
Danke
Hallo,
leider kenne ich diesen Fehler auch nicht.
Am besten Googeln
LG Michael
Hallo an alle,
meine Konfiguration funktioniert seit einem Jahr, auch nach Update im Mai. Aber leider hängt sich der Script nach 8 bis 16 Stunden auf und ich muss in neu starten. Fehler ist:
Es ist ein Fehler aufgetreten.
Fehler: {“error”:”timeout”}
Der Pi hengt am SmartMeter, den Script starte ich in einer Screen Instanz die ich nach dem Start abkopple. Zum neu starten des scripts geh ich in die Screen Instanz und starten den script neu. Das muss ich mindestens einmal am Tag machen.
Bin dankbar für jede Hilfe.
lg
Hallo,
hab den selben Fehler. Tritt bei mir aber auch manchmal direkt beim Neustart auf und tüftle derzeit noch dran.
LG
Hallo,
ihr könnt mal einen Service anlegen und das hier probieren
Komandozeile:
sudo nano /etc/systemd/systemd/smartmeter.service
dann alles von [Unit] bis WantedBy=multi-user.target in das File kopieren und speichern. Das Verzeichniss muss auf deines angepasst werden WorkingDirectory je nach dem wo das Skript liegt.
[Unit]
Description=SmartMeterData Script
After=multi-user.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/pi/SmartMeterEVNSagemcom-T210-D/
ExecStart=/usr/bin/python3 AusleseSkript.py
Restart=always
RuntimeMaxSec=1h
[Install]
WantedBy=multi-user.target
Komandozeile
sudo systemctl daemon-reload
sudo systemctl enable smartmeter.service //Autostart wird aktiviert
sudo systemctl start smartmeter.service // Startet den Service einmalig
sudo systemctl stauts smartmeter.service // Hier kann der Status überprüft werden ob der Status läuft oder es Fehler gibt
Lieber Michael, seit 10 Tage läuft der Skript! Herzlichen Dank. Ich werde dir ein kleines Dankeschön per Paypal schicken.
Hallo,
Ich würde das auch gerne Auslesen, traue mich aber hier nicht das zu bauen geschweige zu programmieren. Hat jemand die Möglichkeit gegen Bezahlung mir so etwas zu bauen? Raum Mistelbach. Danke
hier gibt es fertige Geräte
wie meinst du das ?
hi,
falls du noch interesse hast, kannst dich bei mir melden (nördlich von Wien):
tomba@fukaru.com
liebe grüße,
tomba
hallo wolfgang,
du kannst dich bei mir melden, vielleicht finden wir eine lösung. ich bin nördlich von wien zuhause.
tomba@fukaru.com
lg
tomba
Hallo
Die Steirer kochen anscheinend wieder ein eigenes Süppchen und habe hier im Netz die Sachen gefunden.
P1 Standard : https://www.netbeheernederland.nl/_upload/Files/Slimme_meter_15_a727fce1f1.pdf
Github :https://github.com/debug-richard/sagemcom-dsmr
Hast du da schon eine konkrete Lösung umgesetzt? Also dieses Projekt hier einfach an den Code angepasst?
Hallo,
laut Netz NÖ soll die Kundenschnittstelle aktiviert sein. Ich messe jedoch sowohl mit dem Mulitmeter als auch mit dem Oszilloskop keine Spannung. Kennt jemand das Problem?
LG Josef Schreiber
Hallo,
ja das Problem hatten wir schon mal. Da wurde der Smart Meter ausgetauscht und dann hat sich das Problem gelöst.
LG Michael
Hallo,
Tolle Sache – Gratulation!
Trotzdem eine Frage:
Der Sagem T210 spriht ja lt. Beschreibung gar nicht M-Bus sondern “P1 Companion Standard” – siehe hier:
https://www.e-netze.at/downloads-data/pdf.aspx?pdf=EN_Update%20Kundenschnittstelle%20Smart%20Meter_ID3282_WEB_RGB.pdf
Oder wo liege ich hier falsch?
Hallo,
aber nur in bei den E Werken in der Steiermark
Stimmt, sorry. Weisst du eventuell wie die Pinbelegung zum PI4 GPIO fuer den P1 in der Steiermark aussieht?
Ich hab…
GPIO-6 (Gnd ) auf P1-RJ12-3
GPIO-10 (Rx ) auf P1-RJ12-5
Und dazu noch die Pins 1 & 2 am P1-RJ12 gebrueckt (+5V permanent am Data Req Ausgang).
Aber irgendwie funkt es gar nicht.
Hallo,
leider habe ich da keine Ahnung wie das Funktioniert
Hallo, bin auch in der Steiermark,
bei mir schickt er mit 115200 alle Pakete beginnen mit 0xdb 0x08 SAG5 0x00 ….
Weiss jemand ob es da was fertiges gibt ?
Womit liest du die Daten aus? Es gibt mittlerweile das hier: https://github.com/debug-richard/sagemcom-dsmr
Hallo Michael,
ein super Projekt hast du auf die Beine gestellt. Großes Lob.
Ich habe mich damals bei meinem Zähler für die OPT-OUT (Sagemcom T210-D, EVN) Variante entschieden. weißt du vielleicht ob dein Projekt auch bei der OPT-Out Variante funktioniert?
Bei meinem Zähler ist das Pfeil am Display unter P1 Ausgang, so wie bei deinen Bildern, nicht sichtbar. muss man den P1 Ausgang extra freischalten lassen? Bezüglich Freischaltecode habe ich schon angesucht.
vielen Dank im Voraus
goli
Hallo,
Grundsätzlich ist die Kundenschnittstelle trotzdem aktiv. Die OPT-OUT Variante besagt nur wie oft die Daten dem Netzbetreiber übermittelt werden.
Bei welchem Netzanbieter bist du ? In der Steiermark wird ein P1 Zähler Verbaut und kein Mbus.
LG Michael
vielen Dank für die Rückmeldung. Mein Netzbetrieber ist EVN.
Wieviel Spannung [Volt] sollte man bei den M-Bus Pins (die zwei mittleren) messen können? ich habe irgendwo 24V gelesen und dann alle 5 Sekunden steigt die Spannung noch an. ich messe nur im mV Bereich eine Spannung. und weil am Display beim P1 kein Pfeil ist, dachte ich, dass vielleicht eine extra Freischaltung notwendig ist.
BG
goli
Hallo
ja die Spannung an den Mbus Pins muss zwischen 20 und 30 Volt sein je nach Smart Meter.
Schreib mir eine Mail dann kann ich dir weiterhelfen. support@michaelreitbauer.at
LG Michael
Hallo Michael,
email ist raus.
vielen Dank im Voraus
BG
goli
Super! Funktioniert nach kleineren Tweaks in der config.json. Genial! 😀
Vielleicht hilft das wem: Bei mir gab es einen Error, weil ich den MQTT Port als String eingegeben hatte. Sollte aber ein Integer sein
Beispiel config.json für auf Raspberry PI 2 laufender Mosquitto Broker und USB to MBUS stick.
{
“port”: “/dev/ttyUSB0”,
“baudrate”: 2400,
“key”: “XXXXXXXXXXXXXXXXXXXXXXX”,
“printValue”: true,
“useMQTT”: true,
“mqttbrokerip”: “127.0.0.1”,
“mqttbrokerport”: 1883,
“mqttbrokeruser”: “”,
“mqttbrokerpasswort”: “”,
“useInfluxdb”: false,
“influxdbip”: “”,
“influxdbport”:””
}
Danke an den Entwickler!
Hallo Michael,
Ich bekomme leider folgenede Fehlermeldung in der Konsole:
pi@raspi:~/Desktop/SmartMeterEVNSagemcom-T210-D-EvnSmartmeterV2.1 $ sudo python3 AusleseSkript.py
Traceback (most recent call last):
File “/home/pi/Desktop/SmartMeterEVNSagemcom-T210-D-EvnSmartmeterV2.1/AusleseSkript.py”, line 30, in
config = json.load(open(configFile))
File “/usr/lib/python3.9/json/__init__.py”, line 293, in load
return loads(fp.read(),
File “/usr/lib/python3.9/json/__init__.py”, line 346, in loads
return _default_decoder.decode(s)
File “/usr/lib/python3.9/json/decoder.py”, line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “/usr/lib/python3.9/json/decoder.py”, line 355, in raw_decode
raise JSONDecodeError(“Expecting value”, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 3 column 17 (char 46)
Was kann ich da tun?
Danke!
LG
Kevin
Hallo,
da ist ein Fehler in der Config.json
nochmal die einrichtung.sh starten oder per Hand ausfüllen.
es müssen auch die Default angaben eingegeben werden wie der Port (/dev/ttyUSB0) und die Baudrate von 2400
Hallo, super Projekt. Vielen Dank für die Umsetzung.
Ich habe folgendes spannendes Problem: wenn ich das AusleseSkript starte bekomm ich alle 10 Sekunden in der Konsole “Daten OK”, es werden aber keine Daten angezeigt. Die Verbindung scheint ja zu funktionieren
Wo könnte das Problem liegen?
Hallo Wolfgang
verwendest du die aktuelle Version? Schaut fuer mich so aus als wäre “printValue”: in der config.json auf “false” gesetzt. – Wenn du’s auf “true” änderst sollts klappen.
Es war ein fehler im Programm. Habe gestern eine neue Version hochgeladen wo der Fehler behoben wurde
LG Michael
Hallo Leute,
danke für die Anregungen. Ich hab gestern wieder ein wenig Zeit in mein Projekt investiert und habe bemerkt das mein Zähler noch die alte Firmware hat (wohne nahe Gänserndorf, Nö). Bedeutet das die V1 bei mir funktioniert.
Ich hätte jetzt noch ne Frage an die Python Experten: das Auslesescript wird nach ca. einem Tag abgebrochen weil die Daten fürs Script anscheinen unsynchron werden. Gibts ne Möglichkeit das Script dahingehend zu ändern das es nicht abbricht bzw sich selbst wieder startet?
Danke!
lg
Wolfgang
Ich bin auch Gänserndorf & Co und bei mir wurde heute morgen um 7h35 ca der Update raufgespielt und alles war im A.
Zum Dauerbetrieb:
ich habe mir selber einen “watchdog” geschrieben – primitiv aber effezient.
In der Crontab wird jede minute ein Programm augerufen
* * * * * /home/pi/running/ps_check.pl
(steht für process-stats_check) das überwacht nicht nur das laufende Smartmeterprogramm, sondern auch anderes in meiner “smarthome Umgebung” das immer laufen soll.
Das ps_check.pl (ich kann nur perl) schaut wie folgt aus:
#!/usr/bin/perl -w
# prüfen ob Prozess läuft, die [] verhindern, daß der Suchprozess selber gefunden wird!
$realtime= `date +”%d.%m.%Y %H:%M:%S”`;
chomp $realtime;
# Prüfung ob Smartmeterausleseprogramm läuft
$check_ps = `ps -ef | grep [Sm]artmeter.py`;
# wird nichts gefunden, dann Neustart
if ( $check_ps eq “”) {
system “echo \”$realtime: Absturz Smartmeter.py\” >> /home/pi/logs/ps_check.log”;
system “python3 /home/pi/running/Smartmeter.py”;
}
Die beiden “time” Zeilen sind optional und nur für den logfileeintrag – der ebenfalls optional ist.
Der einzige wichtige Teil sind die Zeile mit dem “ps -ef” und die 4 Zeilen mit dem if (und die erste mit #!/usr/bin/perl -w).
damit wird jede Minute geprüft, ob das Programm noch läuft oder abgestürzt ist. Gibts den Prozess (bei mir nennt sich das Smartmeter.py -ggf anpassen) nicht mehr, dann wird er eben neu gestartet….
Damit habe ich monatelange stabile Zeiten hinter mir, wobei da Programm nur sehr selten abstürzt – 1x im Monat ist viel…
(auf einem Pi- Zero ohne Rechenpower)
Hallo!
Erstmal ein großes Danke an Mike für dieses Projekt – ich verfolge den Blog seit ich den Sagemcom-Smartmeter letztes Jahr installiert bekommen habe und lese die Daten mittels M-Bus/USB Adapter ein.
Obwohl ich das aktualisierte Script benutze, kommen am Adapter seit dem Softwareupdate immer wieder Stundenlang keine Daten an (RX-LED bleibt dunkel). Ich wollte fragen, ob andere vielleicht das gleiche Problem haben?
Beispielsweise stoppte der Datentransfer gestern (11.05.) um 16:30 um dann heute ab 09:40 wieder zu funktionieren.
Ich versuche herauszufinden, ob das Problem an meinem Setup liegt, bzw. wenn andere das gleiche Problem haben, dann liegt es eher an einem Problem mit/nach dem Update.
Danke!
Hallo,
musstest du das Skript neu Starten oder hat es einfach wieder funktioniert ?
Ich habe es dazwischen einmal neu gestartet, wobei dann noch immer keine Daten kamen und einige Zeit später hat es dann eben plötzlich wieder funktioniert.
Oke dann würde ich es einmal auf die Schnittstelle schieben wenn es öfter vorkommt einfach nochmal melden
Hallo, mich interessiert dein Projekt sehr, hab aber nur einen Raspberry Pi 3 daheim.
Macht es Sinn das Projekt auch darauf zu probieren? Denn dann versuch ich einen MBus Adapter zu bekommen.
Vielen Dank!
Hallo,
es macht auch Sinn mit einem Raspberry PI3.
Ich habe selber auch eine Platine. Wenn du bei der EVN bist und einen Sagemcom T210 hast melde dich per Mail bei mir.
support@michaelreitbauer.at
ich habs auf einem Pi Zero ohne Probleme laufen – ein Pi 3 sollt mehr als ausreichen
Ein Pi-3 reicht locker. Ich habe es auf einem Pi-Zero laufen, aber ohne MQTT und influx, dafür mit einem Webserver, der mir die vom Zähler ausgelesenen Daten (und andere aus dem Netz gesammelte) visualisiert und auch meine ganzen Shellys steuert.
Wenn Du den Sagecom Zähler hast (und den Schlüssel von der EVN) dann kannst Du den von mir erdachten “1 Euro” Adapter nachbauen (Meine Schaltpläne hat Mike oben veröffentlicht) – oder evtl. hat er noch von der Kleinserie, die er hat fertigen lassen was übrig ….
Hallo Leute
FischC hat das Projekt geforkt (https://github.com/FischC/SmartMeterEVNSagemcom-T210-D) und vor 2 Tagen
ein neues Skript geschrieben,
für mich hat es das Problem mit den “Invalid Start Bytes… waiting” behoben
Da ich nicht Python programmieren kann, kann ich auch die Änderungen nicht nachvollziehen, aber bei mir
hat hat Skript nach Eingabe meines EVN Schlüssel und den MQTT daten wieder funktioniert.
Kann ich bestätigen, bei mir läuft das Script von FischC seit gestern stabil.
Hallo! bitte meinen vorigen Kommentar einfach löschen. Die Info ist eh schon da, hab ich nur übersehen.
Hallo!
Fur Info, wird wahrscheinlich andere auch betreffen: Gestern wurde von der Netz-NÖ neue Firmware auf meinem Sagemcom-T210-D eingespielt. Seitdem können die Skripte keine Synchronisation mehr herstellen:
Antwort von smartmeter@netz-noe.at (immerhin haben die prompt geantwortet):
“Gestern Nachmittag / Abend wurde eine neue Firmware auf die Sagemcom Drehstromzähler T210-D aufgespielt.
Seitens des Herstellers, wurde ein Fehler in der Ausführung der Kundenschnittstelle bei Sagemcom Geräten bestätigt.
Die Schnittstelle hat falsche Informationen zur Längenangabe des Datensatzes beinhaltet, weshalb es bei diversen Entwicklung, bei welcher diese Information verwendet wurde, zu Problemen kam.
Alle restlichen Daten und die Funktion der Schnittstelle selbst sind nach Prüfungen korrekt implementiert und können genutzt werden.
Sollten Sie in Ihrer Entwicklung die Längenabgabe der Kundenschnittstelle verwendet haben, so kann es sein, dass seitdem Update die Funktion nicht mehr gegeben ist.
Bitte passen Sie entsprechend der Änderungen ihr Programm an, dann sollte wieder alles funktionieren. (NEU: 68FAFA68)
Das Update hat keinen Einfluss auf die Funktion der Kundenschnittstelle oder dem Schlüssel, den Sie zur Entschlüsselung bekommen haben.”
@Robert Kranzl: 1zu1 das selbe bei mir. Seit gestern Nachmittag plötzlich “Invalid Start Bytes… waiting”.
Benutze das aktuellste Script von Github.
Kann es sein, dass die EVN ein Update gemacht hat am Zähler?
Habe seit Mai 2022 einen Sagemcom T210-D Smartmeter von der EVN.
Habe einen RaspberryPi 3 und den MBUS-Adapter wie oben beschrieben.
Das Auslesen der Smartmeter-Werte hat bis heute 02.05.2023 ca. 15:42 tadellos funkioniert.
Seitdem immer der Fehler “Invalid Start Bytes… waiting”.
Finde keinen Fehler meinerseits, keine Ahnung wieso es nicht mehr funtkioniert.
Bei mir zeigt sich genau das gleiche Bild. Seit heute 02.05.2023 um 15:43 Uhr bekomme ich keine Werte mehr.
Ich habe die Checksumme vom Frame vorher nie überprüft. Aktuell stimmt sie jedenfalls nicht.
Habe auch seit diesem Zeitpunkt keine Werte mehr
mein Jpurnal gibt folgendes aus
”
Mai 02 23:59:11 raspberrypi python3[925]: Fehler beim Synchronisieren. Programm bitte ein weiteres mal Starten.
Mai 02 23:59:11 raspberrypi python3[925]: Fehler: Invalid data type.
“
Same here – ich bekomme keine wirkliche Fehlermeldung, eher sowas wie Serial Read Error -> bei mir hat es auch am 02.05.2023 um 15:43 aufgehört zu funktionieren
Bei mir ist das tatsächlich ebenfalls der Fall. Wurde hier seitens der EVN irgendetwas verändert? Es kann ja nicht sein, dass alle ab diesem Zeitpunkt keine Daten mehr bekommen.
Habe auch das selbe Problem seit diesem Zeitpunkt.
Bei mir das gleiche Problem.
Bei mir, sogar selbe uhrzeit seit dem es nicht mehr geht…
Bei mir genau das selbe.
Hab dasselbe Problem. Habe heute an Netz NÖ eine Anfrage gestellt ob hier was an den Smartmetern geändert wurde und falls ja dazu technische Details angefragt. Mal schauen ob da was zurück kommt.
Die Antwort von Netz NÖ war sehr flott da:
Gestern Nachmittag / Abend wurde eine neue Firmware auf die Sagemcom Drehstromzähler T210-D aufgespielt.
Seitens des Herstellers, wurde ein Fehler in der Ausführung der Kundenschnittstelle bei Sagemcom Geräten bestätigt.
Die Schnittstelle hat falsche Informationen zur Längenangabe des Datensatzes beinhaltet, weshalb es bei diversen Entwicklung, bei welcher diese Information verwendet wurde, zu Problemen kam.
Alle restlichen Daten und die Funktion der Schnittstelle selbst sind nach Prüfungen korrekt implementiert und können genutzt werden.
Sollten Sie in Ihrer Entwicklung die Längenabgabe der Kundenschnittstelle verwendet haben, so kann es sein, dass seitdem Update die Funktion nicht mehr gegeben ist.
Bitte passen Sie entsprechend der Änderungen ihr Programm an, dann sollte wieder alles funktionieren. (NEU: 68FAFA68)
Das Update hat keinen Einfluss auf die Funktion der Kundenschnittstelle oder dem Schlüssel, den Sie zur Entschlüsselung bekommen haben.
Wer kann jetzt mitteilen wo und was im Skript geändert werden muss, dass das wieder funktioniert?
Gemäss der alten Dokumentation funktioniert die Decodierung der Datenpakete bei mir nicht mehr:
https://www.netz-noe.at/Download-(1)/Smart-Meter/218_9_SmartMeter_Kundenschnittstelle_lektoriert_14.aspx
Dort war bereits immer “68FAFA68” der Start der Datenpakete.
Wobei das zeimalige FA in hexadezimal für eine Datenpaketlänge von 250 Zeichen steht.
Die Checksumme “M-Bus Checksum” lässt sich in dem Beispiel im PDF korrekt verifizieren.
In den Daten, die von meinem Sagemcom T210-D kommen, passt die Checksumme aber nicht.
Das mit der Checksumme ist mir auch aufgefallen. Die stimmt offensichtlich nicht mehr.
Hallo,
Wenn man im Script in Zeile 90 “68010168” mit “68fafa68” ersetzt kommt zumindest nicht mehr der Fehler “Invalid Start Bytes… waiting”. Jedoch dürfte es ein weiteres Problem danach geben. In der Zeile 116 “xml = tr.pduToXml(apdu,)” funktioniert die scheinbar die Umwandlung nach der Entschlüsselung nicht mehr. Es kommt der Fehler “Invalid data type.”.
Die gleiche Meldung kommt auch wenn man versucht den pdu-String mit einem Online-Tool umzuwandeln.
(https://www.gurux.fi/gurux_dlms_translator/Gurux_dlms_translator.html)
Mfg Stefan
Super spannendes Projekt!
Da ich es gerne “so einfach wie möglich” halten will, hätte mich das shrdzm Modul interessiert, das ist aber anscheinend nicht lieferbar, leider auch keine Antwort vom Hersteller, wann und ob wieder möglich.
Kennt jemand eine ähnlich komfortable lieferbare Lösung?
Wenns nicht so einfach geht, dann hätte ich https://www.mikroe.com/m-bus-slave-click + ESP8266 im Kopf um damit die Daten an MQTT zu senden.
Nicht ganz sicher bin ich, welcher Code der Passende ist, um die Daten korrekt zu entschlüsseln und an MQTT zu senden, vielleicht kann mich wer auf den richtigen Weg lenken?
Hast du da schon Fortschritte gemacht? Ich frage mich nämlich gerade das Gleiche, möchte keinen Pi dafür verwenden. Ich kann ESPHome als Firmware wärmstens empfehlen (vor allem, wenn du Home Assistant verwendest). Da kann man einfach per YAML den ESP konfigurieren (auch custom code möglich) und dann sogar über den Browser flashen.
Falls jemand Interesse an einem “lowest cost” MBus Adapter Marke Eigenbau hat:
Ich habe einen mal gemacht vor längerem, aber mangels “Decodierungthematik” nie eine Software dazu (bis ich hier gesolpert bin DANKE!) und heute nach vielen Probleme endlich zum Laufen bekommen, was aber am RPi lag (das Installieren der Module auf meinem aktuellen “Zähler-RPI” mit Kamera vor dem Display und LED-Auswertung… seit 4 Jahren – klappte nicht war/ist noch Jessie). Ersatz-Pi frisch aufgesetzt und nach einigen Probleme der Sorte “illegal instruction” verursacht durch die Zeile:
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
hats geklappt und somit weiß ich, daß das Interface funktioniert!
Aufwand: 2 Widerstände, eine Zenerdiode, ein Optokoppler….. fertig!
Betrieb über 3,3V vom Rpi (GPIO1) und direkt an RX (GPIO 10) – nichts anderes ist erlaubt (GPIO vertragen ja nur 3,3V Pegel)
Hättest du ein Schaltplan?
Ja 🙂
Ich hab mich mit Mike zusammenge plaudert und wir haben einen fertigen “Pegelwandler” konstruiert, der aktuell in China zur “Prototypen-Fertigung” ist – es könnte also auch mal zu einem Fertigmodul kommen, je nachdem, ob Nachfrage herrscht.
Aber du kannst mir eine email schreiben – füge hinter meinem Namen die domain dazu, die die telekom für ihr Internet benutzte, bevor sie a1.net war 😉 – dann schick ich ihn dir zu!
Hallo.
Ich habe heute von den feistritzwerken (energie steiermark) den selben zähler bekommen.
Ich habe eine synology nas, wo auch python drauf läuft, im 24/7 einsatz. Meine idee wäre, hier vielleicht etwas zu basteln. Hat dies schon jemand ungesetzt? Bzw könnte mir hier jemand helfen? Danke vorab 🙂
Hi,
ich hab die gleiche Situation. hast du das setup am laufen?
gruß,
stefan
Hallo,
ich kann versuchen euch zu helfen. Bitte meldet euch per Mail bei mir.
support@michaelreitbauer.at
Hallo!
Erst einmal ein fettes Lob für das Projekt! 👍
Ich habe das Ganze grundsätzlich bei mir auch am Laufen – nur: bei mir scheint sich die “Zählernummer” ständig zu ändern!?
Hat noch jemand dieses Phänomen beobachten können? 🤔❔
(Ich möchte die Zuordnung in der Datenbank nach Zählernummer haben, dann kann ich problemlos später auch meine anderen Unterzähler etc. einbinden. Die ersten 4 Ziffern stimmen auch, dann steht nur mehr Schrott drinnen …)
Danke und lG
Also die Implementation von M-Bus seitens des Zählers ist echt *#$_%”!!
Allein das 2. Byte ist falsch! (Sollte die Länge der Daten darstellen. Angeblich wegen Überlauf(?!?) falsch.) Egal – die Checksum konnte ich ebenfalls noch nicht korrekt überprüfen!
Hattet ihr mehr Erfolg?
Ich verstehe echt nicht, was so schwer ist, diese Rahmenbedingungen eines Protokolls richtig umzusetzen!?
In meinem konkreten Fall (Zählernummer) kann ich also nicht einmal feststellen, ob das Problem ein Übertragungsfehler (Adapter z.B. mies) oder Sendefehler (Zähler schlecht programmiert/fehlerhaft) ist …
Hallo,
ich habe von offizieller Seite (Netz Niederösterreich) folgendes mitgeteilt bekommen.
Zitat vom 30. April 2022
EVN:
Wir hatten gestern einen Call mit dem Hersteller, bei welchem uns der Fehler bei Sagemcom Geräten bestätigt wurde. Ich habe vorhin die Information per Mail versandt.
Ich:
Um welchen Fehler handelt es sich da genau. Ich habe zwei gemeldet.
EVN:
Die Längeninformation des Datensatzes bei Sagemcomzählern.
Der Hersteller arbeitet an einem Update.
Zitat Ende
Ich habe mal nachgefragt wie es mit dem Update aussieht und habe deinen Fehler auch gemeldet am besten meldest du dich noch bei mir unter support@michaelreitbauer.at.
LG Michael
Hallo zusammen, ich konnte das Problem lösen, es lag nur an der Formatierung, in Python muss diese offensichtlich ganz genau eingehalten werden, jetzt sendet der Raspi die relevanten Zählerdaten direkt über UDP zu meinem Homeserver, wo ich die Zählerstände weiter verarbeite, ohne dass ich eine Datenbank oder sonst eine Webabfrage benötige, sehr cool – vielen Dank für dieses tolle Projekt…
Hier die Fehlermeldung
line 152
WERTE = f”Wirkenergie+:{WirkenergieP}\ Wirkenergie:{WirkenergieN}\ MomentanleistungP+:{MomentanleistungP}\ MomentanleistungP-:{MomentanleistungN}\ SpannungL1:{SpannungL1}\ SpannungL2:{SpannungL2}\ SpannungL3:{SpannungL3}\ StromL1:{StromL1}\ StromL2:{StromL2}\ StromL3:{StromL3}\ Leistungsfaktor:{Leistungsfaktor}\ Momentanleistung:{Momentanleistung}”
IndentationError: unexpected unindent
Hallo zusammen!
ich kann das EVN Script erfolgreich in der console ausführen, ich würde den output gerne mittels udp Pakete zu meinem Homeserver weiterleiten. Alternativ pipe ich den terminal output in eine Datei, leider wird die Datei “output.txt” erst geschrieben wenn ich das Script abbreche… daher würde mir die udp Version gefallen.
ich habe das script mit folgendem Aufruf erweitert, leider bekomme ich einen Fehler, weiß jemand vielleicht wie das funktionieren könne?
Wäre MEGA cool, bin über jede Hilfe sehr dankbar -> DANKE
LG
Markus
UDP_IP = “xxx.xxx.xxx.xxx”
UDP_PORT = xxxx
#UPD senden
WERTE = f”Wirkenergie+:{WirkenergieP}\ Wirkenergie:{WirkenergieN}\ MomentanleistungP+:{MomentanleistungP}\ MomentanleistungP-:{MomentanleistungN}\ SpannungL1:{SpannungL1}\ SpannungL2:{SpannungL2}\ SpannungL3:{SpannungL3}\ StromL1:{StromL1}\ StromL2:{StromL2}\ StromL3:{StromL3}\ Leistungsfaktor:{Leistungsfaktor}\ Momentanleistung:{Momentanleistung}”
Hi,
funktioniert das Ganze auch bei einem Sagecom der Energie Steiermark?
Spezifikation sieht für einen Laien wie mich komplett anders aus!? (gibts das?)
Siehe hier: https://www.e-netze.at/downloads-data/pdf.aspx?pdf=EN_Update%20Kundenschnittstelle%20Smart%20Meter_ID3282_WEB_RGB.pdf
Vielen Dank!
lg
Hallo,
leider ist es unterschiedlich aber wenn sie sich bei mir melden können wir eventuell einer Lösung erarbeiten.
support@michaelreitbauer.at
LG Michael
Hallo Bernd,
ich habe Anfang Jänner ein 2023 ein Sagemcom T210-D Smartmeter eingebaut bekommen (e-netze Steiermark).
Im Kundenportal kann ich aber (stand heute) immer noch nichts konfigurieren (also auch keine Schlüssel für die Kundenschnittstelle vorhanden).
Ich habe die Schnittstelle heute gemessen (Pin1-Pin6 sollten +5V und GND sein). Da liegt aber anscheinen nix an.
Kannst Du dein Smart Meter schon im Kundenportal konfigurieren und kannst Du Deine Schlüssel dort sehen ?
Wenn ja, wie lange hat es bei Dir gedauert, bis die “Einmessphase” abgeschlossen war ?
LG,
Martin.
4 Monate und immer noch nix? Oh Gott, der Techniker, der den Zähler gestern eingebaut hat, meinte es dauert 24 Stunden?!
Hallo!
Ich habe eine Email mit den gewünschten Infos an Netz NÖ geschickt, um den Sagecom “freischalten” zu können. Zurückbekommen habe ich eine Email die in der Subject -Zeile einen 13(!) stellige Hex-String beinhaltete, sonst nichts. Kein Attachment, kein PDF, nix.
Wie kann denn das sein? Ist sowas jemanden von euch auch passiert?
Beste Grüße
Ernst
Hallo wollte mal fragen ob jemand schon Erfahrung mit dem USB zu MBUS Adapter mit FC722 Chip hat?
Bekomme leider keine daten und wenn ich das Script beende folge Meldung:
sysadmin@evn:~ $ sudo python3 /home/sysadmin/EvnSmartmeterMQTT.py
^CTraceback (most recent call last):
File “/home/sysadmin/EvnSmartmeterMQTT.py”, line 53, in
daten = ser.read(size=282).hex()
File “/usr/local/lib/python3.9/dist-packages/serial/serialposix.py”, line 565, in read
ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeo ut.time_left())
KeyboardInterrupt
Hallo,
welcher USB Adapter ist das ?
Sie können sich auch per Mail bei mir melden.
support@michaelreitbauer.at
LG Michael
Hallo,
erstmal vielen Dank für die Anleitung!
Ich habe nur ein Problem .. ich habe auf meinem Raspberry für andere Anwendungen eine Festplatte sowie einen EnOcean USB Stick via USB Hub angeschlossen. Sobald ich diese entferne und “comport = “/dev/ttyUSB0” in der Conifg erfasse funktioniert alles wie es soll. Sind die anderen Geräte aber angeschlossen funktioniert es weder mit “comport = “/dev/ttyUSB0” noch mit “comport = “/dev/ttyUSB1”, bei anderen Zahlen 2/3/4 usw. kommt immer eine Fehlermeldung.
(“FileNotFoundError: [Errno 2] No such file or directory: ‘/dev/ttyUSB1)
Für jemanden der sich mit der Materie auskennt wahrscheinlich leicht zu lösen – ich komme ohne Hilfe aber leider nicht weiter, hat jemand einen Tipp für mich?
Vielen Dank im Voraus.
LG Robert
Hallo,
ich arbeite auch an einem Projekt zum Auslesen des T210/Kaifa (ESP32, C++) in NÖ und habe von dieser und anderen Web-Ressourcen viel profitiert, daher hier zusammengefasst ein paar Infos, die mir geholfen haben.
– Der M-Bus arbeitet mit einer Busspannung von ca. 30 – 40V. Die am Internet üblichen chinesischen M-Bus-Adapter basieren auf Maxim-Chips und können nur ca 13V. Das hier empfohlene Click-Board (habe ich inzwischen auch, konnte es aber noch nicht testen) verwendet den TSS721A (funktional kastriert, aber ausreichend), der speziell zum Auslesen der Smart Meter konzipiert wurde (erhältlich u.a. mit UID bei RS Components).
– Wie hier schon erwähnt: *** gerade *** Parität an der seriellen Schnittstelle
– Die Doku der Netz NÖ ist nett, aber unvollständig und fehlerhaft (einen Fehler habe ich schon korrigieren können, da dürfte aber noch mehr sein). Die offiziellen Standards sind nur in Auszügen erhältlich (sonst kostenpflichtig) und schwer lesbar. Hier wird man fündig (natürlich immer mit Echtdaten vergleichen!):
https://m-bus.com/documentation
https://stadtwerkeschwaz.at/pdfs/Technische%20Beschreibung%20Kundenschnittstelle%20SWS%20Smart%20Meter.pdf
https://www.salzburgnetz.at/content/dam/salzburgnetz/dokumente/stromnetz/Technische-Beschreibung-Kundenschnittstelle.pdf
https://www.netz-noe.at/Download-(1)/Smart-Meter/218_9_SmartMeter_Kundenschnittstelle_lektoriert_14.aspx (neue Version!)
https://www.dlms.com/ (-> Resources; Green Book und Blue Book)
– Entschlüsselung in C/C++: z.B. in nur 7 trivialen Zeilen mit Crypto- oder mbedtls-Bibliothek unter Arduino; siehe https://www.weigu.lu/tutorials/sensors2bus/04_encryption
– DLMS/OBIS: siehe DLMS Blue Book; Code z.B. https://github.com/DomiStyle/esphome-dlms-meter
Hoffe, das erspart jemandem das Suchen.
LG, Wolfgang
Sagemcom T210 mit Click Board und hterm getestet, klappt (TX vom Click Board an RX beachten!).
Folgendes ist mir aufgefallen:
– Das M-Bus Datenpaket hat Überlänge (282 Bytes statt maximal 261) und müsste auf zwei Datenpakete aufgeteilt werden.
– Die Längen-Felder (Bytes 2 und 3, 0x0101) sind falsch.
– Das CI Feld (Byte 7) ist falsch (0x00 ist das erste Paket einer Serie, es folgt aber kein zweites).
– Das Längen-Feld in der Applikationsschicht (Bytes 20 ff. ) ist falsch (0x81F8 = 248 Bytes; es sind aber 254 verschlüsselte Daten + 5 Steuerung = 259; somit wäre 0x820103 richtig).
– Die Prüfsumme (vorletztes Byte) entspricht nicht dem M-Bus Standard und ist mangels Beschreibung nicht überprüfbar.
Netz NÖ habe ich informiert, mal sehen.
LG, Wolfgang
Korrektur zu obigem Posting.
– Das M-Bus Datenpaket hat Überlänge (263 Bytes statt maximal 261).
– Die Längen-Felder (Bytes 2 und 3, 0x0101) sind falsch (vermutlich Overflow wegen der Überlänge).
Die anderen Punkte haben sich erledigt, ich hatte aufgrund des falschen Längenangabe das zweite Datenpaket übersehen.
LG, Wolfgang
Hallo an alle und ein echt tolles Projekt gefällt mir. Hast du super gemacht!!
Ich wurde heute mit einem neuen Zähler beglückt und hab gesehen das es hier eine Schnittstelle gibt Google suche gestartet und hier bin ich nun !
Da ich auch gerade auf den Energiespar Modus bin und vieles mit Smart Home Steuerung nutze will ich das neue Teil auch anzapfen. Ich bin aus der Südsteiermark und würde gerne wissen ob der Netzbetreiber verpflichtet ist das Passwort her zu geben oder nicht. Bevor ich ihn frage. Weil mein Netzanbieter ist etwas eigen !
Ich hab bekommen einen
Sagemcom CS50001 T201-D-r
Oder kann ich das Passwort auch auf anderen Wege bekommen seitens Hersteller vom Sagemcom? Oder Alternativ Tools …
Würd mich freuen auf Antwort
Danke LG Stoneii
Hallo,
der Netzbetreiber ist dazu verpflichtet dir das Passwort zu geben.
In Österreich gibt es ein paar unterschiedliche Versionen der Verschlüsselung, daher weiß ich nicht ob meine Version bei dir funktuniert. Getestet ist die Version nur in Niederösterreich.
LG Michael
[…] anleitung EVN schnittstelle ( Michael Reitbauer ) […]
Vielen Dank für die ausführlichen Infos! Die Doku der EVN ist ja wirklich eher dürftig für den praktischen Einsatz.
Was mich leider gute zwei Stunden gekostet hat, war ein Anfängerfehler gepaart mit der wie immer ziemlich miesen Fehlerbeschreibung von Python.
(Ich war da tatsächlich schon in den Quelltexten der gurux libs.)
Wer also den Fehler “TypeError: decoding str is not supported” bekommt, sollte versuchen, das Passwort entweder abzutippen oder zu bereinigen.
Die EVN versendet PDFs, die scheinbar in den Passwörtern unsichtbare/nicht-druckbare Zeichen enthalten. Das Passwort hatte ich aus meinem PDF mit copy/paste dann natürlich auch im Code falsch.
guten morgen!
hatte jemand von euch schonmal probleme mit dem sagemcom (evn)?
ich habe bereits eines austauschen lassen, da es mit dem shdzm-modul immer nir einige minuten funktioniert hat.
auch jetzt habe ich mit dieser anleitung das gleiche problem, anfangs bekomme ich die daten (5-15x), und dann ist schluss. ich bin kurz vorm aufgeben 🙁
danke,
tomba
setup:
rp4 mit oh3.4.0 M2
ich hab das SHRDZM-Modul am T210-D (EVN) mit einem 5V 1A Steckernetzteil und läuft stabil seit 1 Woche. MQTT, Node-Red u. Grafana hab ich auf einem radxa-zero.
Nachtrag: das SHRDZM-Modul ist mit einem 80cm Kabel mit dem T210-D verbunden und ist bei mir ausserhalb des Zählerkastens.
hallo,
danke für deine antworten. ich habe am 3.11. dbzgl ein mail an die evn geschrieben, zwar keine antwort bis dato erhalten, aber nun scheint es – unregelmäßig – zu funktionieren (habe immer wieder mal “invalid bytes….”. ist es möglich, dass die evn hier etwas per fernzugriff “freischalten” kann? jedenfalls ist dies schon sehr eigenartig, da die kommunikation mit dem smartmeter ja tlw. funktionierte.
hat jemand bereits ähnliche erfahrungen gemacht?
ps: das shrdzm-modul habe ich mit allen möglichen kabeln (von 50 bis 500cm) und netzteilen versucht und es hat leider nicht dauerhaft funktioniert. wäre interessant, ob es jetzt funktioniert, aber der entwickler war so nett und hat das modul retour genommen.
Hi Mike,
nachdem is im Github Repo einige Pullrequests(https://github.com/greenMikeEU/SmartMeterEVNSagemcom-T210-D/pulls) gibt – wie möchtest du mit dem Projekt weitermachen?
Grundsätzlich funktioniert das ganze System gut solange es nicht “out-of-sync” läuft.
Hallo,
ich will eine Version schaffen die sich automatisch Synced und nicht abstürzt aber leider fehlt mir die Zeit da weiter zu machen.
Hallo Michael,
Zuerst vielen Dank für die Veröffentlichung dieses tollen Projekts, hat mir sehr geholfen!
Eine kleine Anmerkung, beim den zum Download zur Verfügung gestellten Config-Files (Node-Red u. Grafana) ist Feldnamen ‘WirkerngieP’ ist ein Typo drin. Da ich das SHRDZM-Modul zum Auslesen verwende mußte ich im Node-Red die MQTT-Connectoren anpassen. Bei diesen Anpassungen ist mir dann der Typo aufgefallen.
Nochmals Danke u. LG, Andreas
Hallo, sehr cooles Projekt, gratuliere!
Weißt Du, on der Stromzähler T210-D saldierend ist?
Liebe Grüße, Armin
Hallo Michael
für nicht geübte – hast du einen Lösungsansatz für einen automatisierten Neustart am RPi?
Danke
Helmut
Hallo,
das hilft eventuell
https://github.com/greenMikeEU/SmartMeterEVNSagemcom-T210-D/issues/9
http://blog.wenzlaff.de/?p=15477
nachdem in dem issue schon von einem hotfix mit crontab die rede ist, habe ich es gleich so umgesetzt.
sudo crontab -e
*/10 * * * * /bin/bash /home/pi/restartEvnSmartmeterScript.sh
und das script:
#!/bin/bash
SERVICE=”python3″
if pgrep -x “$SERVICE” >/dev/null
then
echo “$SERVICE is running”
else
echo “$SERVICE stopped”
python3 /home/pi/SmartMeterEVNGeorgVersion/EvnSmartmeterMQTT.py
fi
Hallo
erstmals großen Dank für das Script!
Leider funktionieren bei mir weder das original (EvnSmartmeterMQTT.py von greenMike) noch die Version von Georg stabil.
beides hört nach weniger als einem Tag auf zu funktionieren (liefert keine Werte mehr).
Wie gehts euch damit?
lg Andi
Hallo,
Es gibt eine Lösung für das Problem einfach automatisiert Neu starten wenn es abstützt.
In den Kommentaren wurde über das schon diskutiert.
LG Michael
Hi greenMike ist es möglich einen weiteren EVN Smartmeter anzubinden?
Hallo,
wie ist das gemeint ?
Für alle die einen Sagemcom T210-D-r haben (Energienetze Steiermark) habe ich ein Beispiel entwickelt.
Vorweg, der T210-D-r hat keine MBUS sondern eine P1/DSMR Schnittstelle. Man braucht also einen anderen Adapter…
https://github.com/debug-richard/sagemcom-dsmr
hallo, dein genannter adapter ist leider nicht mehr lieferbar. Hättest du evtl einen vorschlag für eine alternative? will keinen falschen kaufen.
danke im voraus.
lg
zufällig drüber gestolpert – habe den t210 gerade erst freigeschaltet! ich werden den code in einer ruhigen minute mal ausprobieren!!!
schon mal home-assistant angeschaut? das ist node-red und mqtt als plugin installierbar + visualisierung für haussteuerung usw auch alles dabei (falls so was für dich auch interessant ist) … (zwave, zigbee, …)
https://www.home-assistant.io/
Hallo Erich
ich glaube das Script funktioniert nur mit Zählern aus NÖ (ich glaube das mal irgendwo gelesen zu haben)
Gruß
Helmut
Hallo Michael,
Ich möchte mich für deine Arbeit bedanken. Ich hatte noch nie mit Python, Raspberry Pi, MQTT, NodeRed, InfluxDB gearbeitet, und trotzdem habe ich es geschafft jetzt eine wunderschöne und praktische Aufzeichnung und Datenanalyse meines Bezugs und Einspeisung zu haben. Es war nicht leicht, die Anleitung ist nicht vollständig da man einiges voraussetzen kann (und muss), aber mit ein wenig Suche und Studium, schafft man das in ein paar Tage.
Toll gemacht.
An alle die überlegen es zu wagen, ihr schafft das sicher.
Hier hätte ich noch einige Beispiele, wie schon geschrieben, bekomme die Daten nicht entschlüsselt.
DB0853414735000382428201F23000070D1F2260B302D6262D808081910E90FA1E9D5DED323DF96F83E9DA61FB84AB6F190462AE9A0D28223E9DB9E405924FA117CFC24A3F511925B0B8EE8748E6E25950FC2AF6C1F9EB29190B4D5FDC8F47F33C80EC335F4681ABDC92BF6B6498B00E7EE6D23A2875ACB65782F11752A932003577714F0806A50B8D7FB8367D65691BA74CC8980DD94614EFA567DE2EF0F22B5EEA9373FC4AE2C2DD62A4A98627C795A1E39346ED07CD2F5AD343AE59D250E9E5652FC557CEE7F345BCF16B810D47742454D34C5D3466D12A368FA7E7771E76D88F3DD7C04B3330DEECB1DE88404FCE73B876EC1139070055406EA37FF1BF9F4DF8F80566EE87CA0E9A43905F2A727C3305D6974FAEC94FBC589F3DA40821C81A27CE5AAC93AF02BF4DF4885B4981294466EC517EB1119D274AF90D175953C27F96D12E2A3A69D321990F71C2D2AA68D24B1687AF81ABB45AAFD9E16635A35E8BCD29AC833AA6225908978BB4F0B2AA502BADDF65A5F16C151DE74D0BB03A32F5BADB0D464D6CD3FBAA1C4C2C7B30F7C1CB705732873BC08C583C29CF62967A04184E18F29507BD124DE9ED4F18EAA0C599D8CB564F184C1944E0DABE1D534EC703CF287502A1E941B12D77D079F6FEB798FE7C53309E355D030CBDF6DD6118EFDB2E8F838F0DDE172B582182C85471E7D93E9613C048F7F6F3DEF844492100
DB0853414735000382428201F23000070D203D0AD1692F2BB36F9436219B95A54AAAFE43F877128E4A4495AC81F71ECB9D3A9D75C619AF2C003B0477806ECBB52CCD918CF9E1647999E32E308C42FCB4E48A020515A96AF2DF91B4C1BFEA0A956CE57A9F49E1EFEDF0145B6A295BBB4A3DC673974D5E24506838040940A576041C51F77B26670FD9887D0D3675ABA58568D5A13B6018A2A39BCEB2E4C2FD66EC02303E471207D5F3C099A141F18613C149BC7DCCF5EA415CEAEF0BF5C29A5C4A4CB97102899EAE7ECD5DD57A30A0839005AD715FF3AA0DD1AF4F2C88DFCC7AA803103CFE2A81431EC34146CFE8B33012DEDCDF37717FEAF032EF48E589D55D4E2568AFA9641952639F95CDF3556061CA43DB2B7317B0862B6572756541A43BE0E8A64B363749CD0500E0A583E5B9057339197295257E86C709CBF628449C101B344C6066A22B6A4A64D21EA839ED7D17F4CF0ED4FE16917549F0D9A799185748A18C0812CC7BB5F4B374FEA9CCBBFFF3E68549FF917F5DDF56293888BFE9EA2E69F3C3F3FF5CD4B73C925DBC4E75ECE8B4B35D752B5BDA3BB0CE731AE05B80B711051BC42E34A2C58453E0B7FBE37BDBC6B0B7D5F959D46AEF2D75075499F7624E58B28EBF96F2578D8162DF2708F573C1BA60887B6AC069634BAC748B31DD52771A4303ADEA533D1B6B14B6B419F4C5103B6C5D0B102EBA130AFF69F18DBF00
DB0853414735000382428201F23000070D2138A25989BA749662950778903B51A79FEABE6D9F529F7EFA412F098C2973B79BFD13A5AA9DF4625D3DD4F7534708A3B54ECFBDA925D074F753246C5F683A05923294516FC81B8BD12B81C74D3FDA5A3323608AA8E70ED670BD56D55F83BFA6FE373D32EE5538C6B2F4DD1ABAF932552D8E5FE41D2BD05551626B7F297CCFDF8BFADAF3B3CC2672CB058B782E2E9A94F215225570E0CAC93F73035647EF8542F4EEF8852FDD6A20D91414677C941E7EF63E0E63DBA905703BD60B6FB89A3B07C238758DF92C854AC316C5A14239A163C805138CFC39830FF11F8787A7D027B324121FAA31F593E3ECD2173100CCA7F33B8D774D0D6176CB1B66E594351ABDB13FA69C148B7B4080FA5FAE38A8345F99044DCE9482106F06020237B5731921DB38F356F6DB729386C0E7715E3AEC43A713580E7580D19BFFA47BE8C49C4698F91BCE35015B6838F961D9A360D5389420E8AE6F0E95840FE0578E6608379E1ED37448459AF8258AD5009C274E64825CEC1A029C88D2F7EECA2067FBAF88FCE7E057BE8B23EC8B7F5E050B1B58F4BA6714CBBDD0A6CFFAB192445575183986F0C4A4EE5CDC726DE27F97E240B6983CF9B836E9DA6BCE5AD29D431AF629D88D5A182990B9B594E9199B257A33EA4D94FFF9E4EB89682A320562F66D299EA4D65903CB99FD4EFE817FC303D5417DC95500
DB0853414735000382428201F23000070D22BF609D5C74FA6AB1EFA156DE8D74DED38CFD2FB6E6B2DE4FA2E0A519B02A0839FFF870867D10CD2A834752E54D1381FF33E20E71DA352D82EE9905C7C0CA86B7B48E8FBAFC73A6516491BD888BE2B7FE3573238CBE10587573C536FDC9A73F2132E628DD60AD7EBCDE75DCAEA1B3166EA4D430DF6C234249DBEF6E25B5F4F916E82F68824E9036EDA5C1904316768A4F7D7DA305F75602FB5F7BB78504B4A8A607A246C34E61D3AAAE960C2B30510D107AC0B290118508CA3FF12397F60D14837EBD2648D0F7F14E7344CDB0D25EC0BD8F4BC96DB67EB7362328230A9C6620A65894CDA25FFB75F1C4ACF36C8BF2BE7B58C0D4604622534C31E6CD4CFC5619321F0B305D0B72FD113A6709D2A798C31D476ECFD1EB38ABBD60DDD44ED958315649C1C666BA8F922408BCBE228F3339F020FD15A95E10EF6CD3A680FCB28C5B141DDD6DBA3F0A99F7C5A5C36A928F09E975783CC4DB3B87E8459EA031B119E22613D705A37DD5CA0375E734ADC0021A99268787ED08432ABCF379B7407A41881512C7AB0DFE2A5A1A437A4FB749B7AACBFA1CFD4B0781EBB3EF388255CA184EE00A91F75307EF24FEE43915F6F26634D508581E83A982C01E92196AD56F8A91F26B84E150F0A98F72A6A9D67427F8946D30D604A5C110DF2C1CD9DB6EABAD8567BC982DA4F4ACBE94BA916E908000
vielen Dank schon mal
mfg
Erich Jarz
Hi
Ich habe auch ein SAGEMCOM D210-D-r vom E-Werk Gösting in der Steiermark bekommen und auch beide Schlüssel zugeschickt bekommen.
Ich stehe vor dem Problem, dass ich die Daten zwar auslesen kann, aber ich bekomme sie nicht entschlüsselt. Könntest du eventuell
versuchen mit deinem Code die Daten zu entschlüsseln. Für mich sehen die Daten plausibel aus, also fixer Startstring, framecounter länge etc.
Hier ein Beispiel von einem Datenpaket: Schlüssel würde ich dann noch zusenden:
——— Rawdata length=475 ———-
DB0853414735000382428201F2300000026BE9E7F19906C18A3F0AE0E12293AB
8BFED9D1433F508220AB0FA3056EDA8DF59F3D2C15A8892A55325E1B381EF43F
C08B919E9788E73F6E4B06386F5B0E6CED9B2574DEF04950120F8937661D20CD
95108508E9D307BD65F3342AAA849C8D7ADDE28FC88A7C6BEB923A12D75D2091
35D00198D0CCB41FA2146C82337EE77A1C0113B939E54AF427D26BE217D21A4F
83E001D864C67E0943158F712828986925B0207572D147A92C1C68A3FBA63E1D
CBD69EDB9A64B2799C3D17E4CC736C3CA389A48C9271A651C8FA25F7672F48C7
EA9AE06771AFFFDB1C8B83DA6F9B0193A3D4F982697B4D25213464C620F54D21
7567AF5A6DEF78495E5A86F366C1D64272D26DA19C68353BF72321AC7B1BCD51
90548E3E1DC706DEBCFBAE121FDFBD2C57AF8B41822677CA6EE68508C7F29F13
DF8DAE5AB594C7A96A46F9DCDC0AD4E93D147446504C33D0281AFBEC72AF2C2E
1BFBC90E61693477783BFC2FD8EA6ABE4565401D2CCF63335640AB72930E921C
DBE5446204271F950A4548CFC31878FABAEF4CAE7A4D38D7CA5899E71E83E27C
FB6C3DB7BCA021CAB1F47637E554A8214FC821639AD3DA44039D41FDA46FC1F0
AFABE52D8177A7248BCD582B861285CA4DEDCCB92A601D5C6E0C78
——- Start decoding: IV=53414735000382420000026B, length=498 ———-
danke schon mal
mfg
Erich Jarz
Kurzes update:
Läuft jetzt seit 15.8. stabil.
Ich darf nur nicht einen der beiden RPi’s Neustarten. Dann dauert es wieder eine Zeit
bis das Script die Daten aus dem SmartMeter bekommt.
Wie heisst es so schön: never change a running system
Gruß
Helmut
Wollte nur fragen, ob es für Nicht-Techniker eine “Plug and Play” Lösung gibt? Habe den SM v. EVN and würde auch gerne Daten in Echtzeit nutzen…
Hallo,
leider von mir nicht. Ich kann aber gerne Unterstützen bei der Umsetzung wenn du die selben Teile verwendest wie ich Vorschlage. Bzw melde dich einfach bei mir. support@michaelretibauer.at
LG Michael
Hi Rudolf, von mir kannst du in etwa 1-2 Monaten eine Pulg&Play Lösung erhalten, gilt für fast alle SmartMeter in AT…(M-BUS, P1, IR uni und bidirektional (OÖ) etc…)
Interesse???
LG, Josef
Hallo Josef,
ich hätte Interesse an einer Plug&Play-Lösung. Kannst mich gerne unter andreas@haunold.co.at erreichen.
LG Andreas
Hi.
Ich hätte auch Interesse an einer fertigen Lösung.
Schreib mir mal eine mail an badpeewee(at)gmail.com
LG
Hallo Josef!
Ich hätte auch Interesse daran. Kann das Programmieren nicht wirklich. Habe die Teile exakt wie beschrieben gekauft. Aber es fehlt die Zeit mich mehr damit auseinanderzusetzen. Wäre toll.
Lg
Wolfgang
Hallo Josef
ich wäre auch sehr daran interessiert da meine Lösung leider auch wieder abstürzt
Danke
Helmut aus NÖ
Hallo Josef,
Ich hätte auch Interesse an einer Plug & Play Lösung. Schreib mir eine mail an rf600r123@gmail.com.
Beste Grüße Leopold
Hallo Josef
Ich hätte auch Interesse an einer plug and Play Lösung.
Bitte schreibe mir
Beste Grüße Ewald
Hallo Josef,
ich möchte mich auch gerne anschliessen an die Reihe derjenigen, die eine plug- and Play Lösung bevorzugen
Bitte um Antwort an ilo.bauer@protonmail.com
Vielen Dank! lG, Eva
Hat jemand von Euch zwei Sagem-Zähler mit M-Bus (mit einem Raspberry Zero) laufen?
Brauche ich dafür zwei M-Bus Slave-Module oder kann man die beide über ein Modul laufen lassen? M-Bus hat ja eigentlich auch Adressen.
Bislang zeichne ich “nur” ein Smart-Meter auf – und das mit IR-Schnittstelle (Iskra AM550) und zeichne ganz simpel als täglich csv-Datei auf (mit php und/oder bash-shell-script), was ich mit einer html-Seite darstelle.
Hallo Jungs
hab mich zu früh gefreut!
hatte einen kurzen Stromausfall und musste den RPi im Zählerkasten neu starten und seit dem
nur mehr die Meldung “serial read error”
Es ist wie verhext
Gruß
Helmut
Hallo Michael,
du hast meine e-mail mit dem Script bekommen?
Läuft noch immer ohne Probleme.
Gruß
Helmut
Hallo,
ich werde es selber noch Testen aber wenn es gut läuft dann werde ich mein Skript um die Funktionen erweitern.
Kann ich mich dann bei dir mal melden die nächsten Tage falls ich noch Fragen habe?
LG Michael
Hi Michael,
die Aenderungen habe ich gemacht. Da wirst du nichts wirklich erweitern koennen, weil ich die Einleseroutine logisch anders angegangen bin. Zwar nicht so, wie ich es eigentlich wollte, aber die ‘richtige’ Art hab ich nicht hinbekommen. Die aktuelle Version ist ein Kompromiss, aber er funktioniert (neben mir auch bei Helmut). Wenn wird es wohl am Besten sein, das auch als weiteres Script anzubieten. Dann kann jeder das nehmen, das am stabilsten laeuft (deine Version bekam ich z.B. nie stabil zum Laufen, daher die Aenderungen). Nur mal so als Anregung.
lg
Martin
Danke! Funktioniert soweit.
-> https://github.com/georg-x/SmartMeterEVNSagemcom-T210-D
Hallo,
warum hast du einen Fork erstellt hast du was verändert?
LG Michael
Hallo,
Ja, ich hab alles mögliche geändert.
Den Fix eingetragen für “soup = BeautifulSoup(xml, ‘html.parser’)”
Den Schlüssel ausgelagert in ein config file, das im gitignore liegt.
Den Zweig von Siegfried übernommen (File Schreiben, Tasmota ansteueren).
Einen Zweig erweitert um die Werte an Thingspeak zu schicken…
lg
Georg
der Tausch auf den html.parser hat bei mir funktioniert vielen dank!
(leider kann ich auf deine nachricht von heute 20:13 nicht antworten)
Super
Hallo Michael
ich habe nun seit fast 48 Stunden das adaptierte Script von Martin Seibert laufen.
Kann bestätigen – keine Ausfälle und Hänger
LG
Helmut
Hallo,
kannst du mir die Version mal schicken.
support@michaelretibauer.at
LG Michael
Hallo Mike,
ja auch schon mit pip3. Ich muss aber dazu sagen dass ich am Raspi ein Image von “solaranzeige” drauf habe. Ziel wäre meine Wlan-Wetterstation (funktioniert schon) EVN Smartmeter und PV-Anlage gemeinsam übersichtlich in Grafana darzustellen.
LG
Hallo,
am besten wir telefonieren am Wochenende hab dir meine Nummer per mail geschrieben.
LG Michael
Konntet ihr das Problem lösen?
ich habe gerade selbiges Problem (No module named ‘cryptography’).
habe sowohl
apt install python3-pycryptodome
als auch pip3 install pycryptodome
gemacht.
danke!
lg Andi
Hallo,
das letzte mal war es dieser Befehl. Wenn es funktioniert bitte um eine kurze Rückmeldung.
sudo pip3 install cryptography
LG Michael
Hallo
mit sudo pip3 install cryptography startet das Programm.
leider wechseln sich danach die fehlermeldungen leider ab:
/home/pi/SmartMeterEVN# python3 /home/pi/SmartMeterEVN/EvnSmartmeterMQTT.py
Fehler beim Synchronisieren. Programm bitte ein weiteres mal Starten.
Fehler: Couldn’t find a tree builder with the features you requested: lxml. Do you need to install a parser library?
und wenig später nach neuerlichem versuch:
Fehler beim Synchronisieren. Programm bitte ein weiteres mal Starten.
Fehler: Invalid DLMS version number.
:/
root@raspberrypi:/home/pi/SmartMeterEVN# pip3 show gurux-dlms
Name: gurux-dlms
Version: 1.0.115
Summary: Gurux DLMS library for Python.
Home-page: https://github.com/gurux/gurux.dlms.python
Author: Gurux Ltd
Author-email: gurux@gurux.fi
License: GPLv2
Location: /usr/local/lib/python3.9/dist-packages
Requires:
Required-by:
root@raspberrypi:/home/pi/SmartMeterEVN# pip3 show lxml
Name: lxml
Version: 4.7.1
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: https://lxml.de/
Author: lxml dev team
Author-email: lxml-dev@lxml.de
License: BSD
Location: /usr/local/lib/python3.9/dist-packages
Requires:
Required-by:
lg Andi
Versuche einen anderen parser ‘html.parser’
wenn noch fragen sind einfach mit einer Mail an mich wenden wo deine Telefonnummer drinnen steht dann melde ich mich so geht schneller.
soup = BeautifulSoup(xml, ‘html.parser’)
Hall,o
Wenn ich sudo python3 /home/pi/Desktop/EvnSmartmeterMQTT.py aufrufe
bekomme ich die Meldung
Traceback (most recent call last):
File “/evn/EvnSmartmeterMQTT.py”, line 3, in
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
ModuleNotFoundError: No module named ‘cryptography’
was habe ich falsch gemacht.
danke für deine Unterstützung
Martin
Hallo,
hast du das schon installiert ?
sudo apt install python3-pycryptodome
ich habe ihnen auch eine Mail geschrieben.
LG Michael
Hallo Martin,
Danke für deine Bereitstellung. Ich habe meine Zählernummer eingetragen und statt localhost die IP von meinem MQTT Server (1:1 wie im vorhandenen System
Beim Aufruf der .py Datei bekomme ich aber in der Konsole serial read error???
Gruß
Helmut
@Helmut: Ich nehme mal an, du hast das ganze Script mit deinem alten verglichen? Also auch Sachen wie comport = “/dev/ttyUSB0”? Offenbar funktioniert das Einlesen von der Schnittstelle nicht.
Ich muss aber auch sagen, ich bin kein Python Programmierer. 🙂
lg
Martin
@Helmut:
Hab dir noch ein Script per Mail geschickt, zum checken der seriellen Schnittstelle oder konkreter, zum Ausgeben der eingelesenen Daten.
lg
Martin
Danke für die Bereitstellung.
Für den Hoster bin ich zu dooooof. Nur nackte Mädels und Meldungen das mein System unbedingt gereinigt werden muss!!!!!
Hab mir eine e-mail eingerichtet. Die Datei ist ja winzig
Würdest du bitte so nett sein und sie mir per e-mail schicken. Danke
EVNZaehler@gmx.at
Danke nice Eve
Helmut
Sorry, ich verwende NoScript und Anti-Spam Erweiterungen. Mir ist da nichts aufgefallen auf der Seite. Hab die auch vorher nicht gekannt. Aber egal, die Mail ist schon raus an dich. 😉
lg
Martin
Hallo,
kannst du mir das auch senden dann sehe ich mir es an und pflege eventuell die Änderung auch ein auf GitHub.
support@michaelretibauer.at
LG Michael
Du hast Mail 😉
lg
Martin
@Helmut:
Kann ich gerne machen, aber die Formattierung geht hier leider verloren, und dann funktioiert das Script nicht.
Daher hab ich das py-File auf einen kostenlosen Filehoster geladen. Hier der Link:
https://www63.zippyshare.com/v/YCA9NHFV/file.html
@Martin Seibert
Da meine Installation sich mehrmals am Tag aufhängt, würdest du so nett sein und deine komplette .py posten oder zu senden?
Danke Gruß
Helmut
Ok Danke für deine Info
Servus
na ich meine Momentanleistung P – Momentanleistung N sollte ja die Momentanleistung ergeben (was tatsächlich verrechnet wird = zu bezahlen ist oder?)
Und hier hatte ich Differenzen festgestellt mMn Produziere ich mehr (918+907 W) statt der Angezeigten 667 W
Aber ich habe gestern festgestellt das am WEB Portal Wartungsarbeiten stattfinden vielleicht funktioniert ja am Montag wieder?
Gruß
Helmut
Das tool Zeigt nur die tatsächliche Eingespeisete Leistung an. Wenn du auf L1 mit beiden Wechselrichter mit 1000 Watt einspeist aber zum Beispiel auch auf L1 500 Watt verbrauchts dann zeigt der Samrt Meter nur noch 500 Watt an.
Ich habe auch die Beobachtung gemacht, dass eingespeiste Leistung und bezogene Leistung gleichzeitig positive Werte haben. Verstehe nicht recht warum das so sein soll. Habe öfters gelesen, dass man, wenn man auf einer Phase bezieht und auf anderen Phasen einspeist solche Werte zustandekommen können, aber ich kann das nicht recht glauben. Wenn ich zu einem Zeitpunkt insgesamt (über alle Phasen gerechnet) mehr ins Netz einspeise als ich bezeihe, warum soll ich dann für diesen Zeitraum für bezogene Energie zahlen?
Ich finde das seltsam. Hat da jemand eine Erklärung?
PS: Ich könnte es mir noch vorstellen, dass wenn innerhalb der 5s Messzeit z.B. 2s eingespeist und 3s bezogen wird, beide Leistungen positiv sind, aber in meinem Fall kann das nicht sein. Ich habe das anhand eines Datensatzes mit einem Wasserboiler getestet, und der ist eine ohmsche Last an einer Phase, und schaltet sich nicht im Sekundentakt ein und aus. Seine Leistung ist höher als was meine Solaranlage zu der Zeit produziert hat. Es müsste demnach die eingespeiste Leistung auf null gehen. Tut sie aber nicht. In der Minute innerhalb der ich beobachte sinkt die eingespeiste Leistung zwar deutlich ab – aber nur um einen Bruchteil der Leistung des Boilers. Sie wird aber nicht null. Gleichzeitig steigt die bezogene Leistung an, aber nicht auf die Nennleistung des Boilers, sondern etwas darunter. Summiert man den Einbruch in der eingespeisten Leistung und den Messwert für die bezogene Leistung, so kommt ca. die Nennleistung des Boilers heraus, was ja Sinn macht.
Mich stört diese Eigenheit, weil die Preise für eingespeiste und bezogene Energie ja ganz unterschiedlich sein können. Eine Konsequenz daraus könnte sein, dass ich obwohl ich insgesamt einspeise, trotzdem für diese Zeit Kosten für bezogene Energie zahlen muss, und wenn der Preis für eingespeiste Energie geringer ist als für bezogene, dann ist das zu meinem Nachteil.
Wenn das irgendwer erklären kann wäre ich sehr froh!
Grüße
Lukas
Servus
ja das stimmt. nach einem Neustart funktioniert es wieder.
In letzter zeit sind auch die Werte komisch! ich kann hier leider kein Bild anhängen aber:
Verbrauch 2374 W, Produktion 667 W ergibt eine Verrechnung von 1707 laut Zähler
ich habe zwei kleine PV Anlagen und die Produzieren 918 W und 907 W zur selben Zeit gemessen???
Schon komisch oder?
LG Helmut
Hallo,
ich versteh die Frage nicht ganz weil ein Bezug und Produktion im selben Augenblick da ist, oder wie ?
wenn sie mir eine Mail mit ihrer Telefonnummer senden dann kann ich Sie anrufen.
LG Michael
Servus Michael
sag kannst du mit dieser Fehlermeldung was anfangen – lief bis jetzt ohne Probleme
pi@ZaehlerEVN:~ $ sudo python3 /home/pi/Desktop/EVNSmartmeterMQTT_V01.py
Fehler: list index out of range
Traceback (most recent call last):
File “/home/pi/Desktop/EVNSmartmeterMQTT_V01.py”, line 101, in
cipher = AES.new(encryption_key, AES.MODE_GCM, nonce=init_vector)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/AES.py”, line 232, in new
return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/__init__.py”, line 79, in _create_cipher
return modes[mode](factory, **kwargs)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/_mode_gcm.py”, line 620, in _create_gcm_cipher
return GcmMode(factory, key, nonce, mac_len, kwargs, ghash_c)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/_mode_gcm.py”, line 188, in __init__
raise ValueError(“Nonce cannot be empty”)
ValueError: Nonce cannot be empty
pi@ZaehlerEVN:~ $
Danke
Gruß
helmut
Hallo,
Ja ich kenne die Fehlermeldung und habe auch eine Vermutung von wo die kommt. Es sind leider Unterschiedliche Version von der SmartMeter Software von der EVN verbaut worden und eine dürfte Probleme machen.
Wenn du das Programm neu startest müsste es wider laufen oder ?
LG Michael
Falls es jemand interessiert, hier die aktualisierte Version, die seit Tagen fehlerfrei laeuft (sorry, aber keine Ahnung wie ich die Einrueckungen im Code in diesem Forum behalten kann):
def recv(serIn):
readBuffer = b”
while True:
try:
start = serIn.read_until(b’\x68\x01\x01\x68′)
#we don’t use start, to ignore a possibly shiftet offset
readBuffer = b’\x68\x01\x01\x68′
length = int(4)
while length < 282:
data = serIn.read()
readBuffer += data
length += 1
#print(str(readBuffer.hex()))
break
except:
pass
print("serial read error")
return readBuffer
Den timeout in serial.Serial hab ich wieder entfernt, sleeps werden auch nicht durchgefuehrt.
Hallo miteinander,
und zuerst mal einen grossen Dank an greenMike!
Ich habe jetzt mal alles soweit beisammen, dass ich Daten lesen kann und auch eine Ausgabe via print(str(data.hex())) im recv() auf die Konsole gemacht wird. Leider kommt es ziemlich oft vor (ich verwende das zweite …_V01.py Script), dass die Daten nicht geparsed werden koennen. Ich habe mal eine Ausgabe der gelesenen Daten auf die Konsole gemacht, dabei ist mir aufgefallen, dass ich in diesen Faellen immer falsch positioniert bin, d.h. die Start-Bytes sind irgendwo mitten in dem Block zu finden*, bis sich das ganze wieder von alleine synchronisiert. Ich hab schon versucht mit verschiedenen sleep Werten eine Besserung zu bekommen, leider ohne Erfolg.
Ich gehe jetzt mal davon aus, dass das Smart Meter nicht das Problem ist, sondern der Zeitpunkt des Einlesens der Daten, daher vermutlich dieser Offset. Wobei, wirklich wissen tu ich es nicht. 😉 Jetzt meine Frage, kann man das Einlesen nicht so machen, dass erst ab den richtigen StartBytes die 282 Bytes gelesen werden bzw. der gelesene Block halt irgendwie die richtigen 282 Bytes verarbeitet?
lg
Martin
*das sieht dann z.B. so aus (die Startbytes 6801016853 finden sich dann irgendwo mitten drin):
2d588603bb49d640462f16680d0d6853ff110167310cd9ba350e99ea61166801016853ff000167db085341475905e9ea0881f8200008834bb559a9ccad5c332c00e13d5b729341c60e7e53887185bb0b29693c92979c4403a034860e0c42b3bbf31360e1c75eb1c45d119745eed7afeb585f9399e3ecd3c35d31bf05eeb05f0d884fa5effb3291d0a70f14bccaff3f3724ce1b3ba00fcfab4f27f5d219ccbf8ba9a05d15af782fe2a0824f7c6c0c13b3f6882d4cd4f3dc21ac90b942b130149510170cc0899db362a3806edb1790bfc3eaa51ae8371163a43445ab38bb695900226df8a7345eb757
Invalid Start Bytes… waiting
4d5e36cf3fc6effa09d4c14821bba348804de6ff93cce057127bf7c0ba4fd9404fa4d3dcee7294f355e7342f12edd1a37a33e41af3b659b70400fe5816680d0d6853ff110167e2e893dc7908e194fa166801016853ff000167db085341475905e9ea0881f8200008834ccadf9fb3d920cfc649a45c8d4f8a529eb0eecd40208211190ff5c0139bad70e0bdb48ab5b3e0657886466f08b0ba03f67da16b53cd474a0b38ec66c79ac92bc761b588365512963d85f1a08df3b3576c4fc556bfe7548f76af0606c1c463958cc4cab25e4dc5b50b9c57819ae6843dda
Invalid Start Bytes… waiting
9ea0409ef798e0f11614cc24a0a12def65f47bb2fe13a09a76b0cc027142a2bbc8533bacc6d3b43c0aaa215ba8c7d67246ef7bbef6aec6aa568f4c05e83327b607dff931c7f6ba82b03ce8b0e0b20bdba7f913993212218dbfc161f7aef4f4c3b9a30a4d575fdd40411d946f202af9cdc2022350bfd41b27dd18b12d16680d0d6853ff11016790932791de19276f33166801016853ff000167db085341475905e9ea0881f8200008834d31fb7e3e47056bd1eb8753f7782ae325654c77cdf7db5b2213503795eface1ef2919434591a0575e669fd16b8671cd2d
Invalid Start Bytes… waiting
b1f90364e36b5f938ff14a88af3b68b66074e3f648d1f44b092cfdf8dadb631478b783db221d5fffb77c917bf9d4937b2998493e8357788f9ef8c953b078e0d2598b413f23bb943c62a9a8b1f10f01f9199abcda7f9b8f63539216d2e9d5d4154c5b7413de7265ac7248cb0518365e36d5f8c8ddb4d81f9ba92f6a4586f46e28475f178d06153d75ef38d78a710e78354848051de080ff1ae23b77f55d40b4d61073fe509f8a4251bc0ebcef3e3838fd54c7cb300c741808c24eba0d16680d0d6853ff110167d65f45cc0cbcffdeb6166801016853ff0001
Invalid Start Bytes… waiting
Ich antworte mal frech selbst auf mein Posting. Die gelieferten Daten scheinen grundsaetzlich korrekt zu sein. Das hab ich mit folgendem Kommando ueberprueft (ohne laufendem EVN Script natuerlich):
python -m serial.tools.miniterm /dev/ttyUSB0 2400 –encoding hexlify
Da der Datenstrom immer mit 16 ended, schaut das fuer mich korrekt aus. Leider tritt aber hin und wieder ein Fehler auf, den ich noch nicht nachstellen bzw. eliminieren konnte. Hier die Fehlermeldung:
[..] 0E 62 A1 96 58 DE 00 16 Exception in thread rx:
Traceback (most recent call last):
File “/usr/lib/python3.9/threading.py”, line 954, in _bootstrap_inner
— exit —
self.run()
File “/usr/lib/python3.9/threading.py”, line 892, in run
self._target(*self._args, **self._kwargs)
File “/usr/lib/python3/dist-packages/serial/tools/miniterm.py”, line 499, in reader
data = self.serial.read(self.serial.in_waiting or 1)
File “/usr/lib/python3/dist-packages/serial/serialposix.py”, line 577, in read
raise SerialException(
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
Eigentlich laueft meines Wissens nach nichts anderes zu dem Zeitpunkt als das obige Kommando… Natuerlich hat sich die ganze Einleserei mit diesem Fehler erledigt. Somit werden, wenn das beim EVN Script passiert, keine Daten mehr in die DB geschrieben. 🙁 Das kommt also zu den Einlesefehlern/-ungenauigkeiten noch hinzu.
So wie es aussieht (Langzeittests fehlen noch!) scheine ich das Problem mit den bei mir auftretenden verschobenen Offsets behoben zu haben. Mit folgenden Codeaenderungen passts ersten Tests zufolge bei mir:
def recv(serIn):
read_buffer = b”
length = int(0)
while True:
try:
data = serIn.read()
if data == ”:
read_buffer = b”
length = 0
continue
read_buffer += data
length += len(data)
if length < 282:
continue
#else:
#uncomment for debug info
#print(str(length) + " + " + str(read_buffer.hex()))
break
except:
pass
return read_buffer
Ich bin kein Python Programmierer, also kann einer, der die Sprache besser kennt, das vermutlich eleganter loesen.
Hallo,
wenn du sagst es läuft stabil kannst du dich gerne bei mir melden würde mich auch interessieren was du geändert hast und weshalb.
LG Michael
Hi Michael,
ich habe vorhin mit ziemlicher Sicherheit herausgefunden, warum mein USB Port immer weg war. Scheinbar lag es an den undervoltage Fehlern, die immer wieder angezeigt wurden, und das trotz original Netzteil. Ich habe nach einigem Gruebeln gerade vorhin das Gehaeuse entfernt (es ist eins das aussieht wie eine alte Nintendo Konsole) und siehe da, die undervoltage Fehler sind weg! (link zum Gehaeuse auf Amazon kann ich bei Bedarf posten) Jedenfalls laeuft das Script zwar erst seit kurzem, aber es laeuft ohne undervoltage Fehler und auch ohne verschobene Offsets!
Ich habe dein EVNSmartmeterMQTT_V01.py etwas angepasst (primaer die recv Methode) und jetzt hab ich keine abgeschnittenen Daten und auch keine daraus resultierenden Fehler mehr. Ich poste die Aenderungen nochmal, aber scheinbar gehen hier dabei die Einrueckungen verloren, sorry. 🙁
Hier mal meine Anpassungen:
serIn = serial.Serial( port=comport,
baudrate=2400,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=1.5
)
def recv(serIn):
read_buffer = b”
length = int(0)
while True:
try:
data = serIn.read()
if data == ”:
read_buffer = b”
length = 0
continue
read_buffer += data
length += len(data)
if length < 282:
continue
else:
if printValue:
print(str(length) + ":" + str(len(read_buffer)) + " + " + str(read_buffer.hex()))
break
except:
pass
return read_buffer
Und weiters habe ich alle sleep() in dem Script auskommentiert, weil es mit denen nicht so rund lief. Aktuell passts bei mir perfekt…
Jetzt hoff ich nur mehr, dass auch wirklich alles dauerhaft funktioniert. Das weiss ich aber erst in den naechsten Stunden/Tagen. Weil bisher war nach spaetestens wenigen Stunden schon der USB Port weg (sicher wegen den undervoltage Fehlern). Zu dem Thema hab ich uebrigens noch ein Script im Netz entdeckt, das mich darauf gebracht hat. Einfach mal nach get_throttled.sh suchen.
Was ich auch noch gemacht habe, ist das alles in einer autoloop zu re-starten – primaer wegen den Problemen die ich hatte. Vielleicht ist das nicht mehr notwendig, wenn das Script stabil laueft. Der Link ist: https://unix.stackexchange.com/questions/473546/automatically-restarting-a-process-when-it-dies
lg
Martin
Hallo, für alle mit einem Energie Stmk Smartmeter gibt es hier die Lösung.
https://www.weigu.lu/microcontroller/smartyReader_P1/index.html
Super, danke für die Info!
Hast du die Platine bzw. das Kit dort bestellt und schon Erfahrungen damit gemacht?
Nein, ich hatte noch einen ESP 8266 NodeMcu v3 hier herumliegen und hab das einfach ganze nachgebaut.
Ah, cool!
Ich habs Kit mittlerweile bekommen – ging ganz unkompliziert und schaut soweit gut aus.
Nun wart ich noch auf den Key der Energie Steiermark. Hat das lange gedauert in deinem Fall?
Nein, nach einem Tag war dieser in Serviceportal zu sehen.
Mittlerweile hab ich auch die Rückmeldung der Energie Steiermark bekommen, dass ich den Key im Serviceportal auslesen kann.
Bei mir im Portal steht jedoch noch immer, dass die Verbindung zum Smart Meter nicht stabil sei und ich deswegen weder Statistiken auslesen noch den Key anfordern kann. Installiert haben sie das Teil bei mir ende Jänner.
Auf erneute Rückfrage wann das denn wohl funktionieren wird meinten sie am Telefon, dass es 6 bis 9 Monate (!) dauert bis die Verbindung zum Smart Meter stabil ist. Ich arbeite seit 10 Jahren in der IT, aber sowas hab ich auch noch nicht gehört 😀
Ich habe den Key innerhalb einer Woche als Einschreiben bekommen von Stromnetz Graz bekommen. IME opt-in ist seit ca 8 Monaten aktiv. Das Kit von Weigu habe ich auch erhalten, muss es aber erst in Betrieb nehmen.
soll natürlich sagemcom T210-D-r heissen
hallo,
ich habe den sagemcom T201-D-r von den Stadtwerken Köflach (Steiermark), es gibt 2 schlüssel (GUEK und GAK).
ich habe das beschriebene mbus-slave-modul und das ganze an einen raspberry pi 3+ angeschlossen.
leider bekomme ich als ausgabe nur “invalid start byte …waiting” zurück.
gibt es eine lösung oder funktioniert es nicht.
danke
lg robert
Hallo,
leider nicht die Version von mir ist nur für Niederösterreich gültig wir haben nur einen Code.
LG Michael
ok danke
Habe den gleichen Fehler begangen.
Die Sagemcom S bzw T 210 haben in der Steiermark kein M-Bus sondern DLMR (Dutch Smart meter Requirements). Bei mir ist es E-Werk Gösting (V. Franz). Damit hat man im Grunde genommen Vorteile. Ich nehme an, dass auch bei Deinem Schreiben mit GUEK und GAK DLMR 5.0.2 steht, oder?
Der Anschluss ist kein RJ11 (mit den mittleren zwei Pins) sondern der gleich aussehende RJ12, der aber 5 der 6 Kontakte wirklich nutzt.
Großer Vorteil: die beiden äußersten Pin haben eine 5V-Stromversorgung.
Nachteil: Der M-Bus-Adapter, der oben angeführt ist, ist falsch.
Einen herzlichen Dank dabei an die Diplomarbeit von David Feichter (FH Eisenstadt) der das Thema aufgearbeitet hat.
Aufpassen muss man dabei, dass es offenbar von den RJ12 zu USB-Adaptern (für Raspberry Pi) unterschiedliche Versionen gibt und man die Fassung für Sagemcom bestellt (Amazon “Domotica on Raspberry DSMR Dutch P1 Poort Cable for Smart Slimmemeter with FTDI Chip 5V TTL UART Logic Level Signals USB to RJ11 RJ12 6P6C Port (for ISKRA AM550/Sagemcom XS210 T210-D)”. Dabei ist RJ11 sicher falsch, aber RJ12 6P6C ist korrekt.
Erhalten habe ich die Adapter noch nicht, programmiert habe ich auch noch nichts. Vor allem wie ich GAK (tw. auch AAD genannt) verwende und damit entschlüssele, muss ich erst nachforschen. Vielleicht weiß das aber auch jemand. Den Teil des GUEK kenne ich soweit vom Iskra AM 550 (Wiener Netze).
Hallo @beta-L-user:
bin neu in diesem Thema und würde gerne den t210-d-r von der energie steiermark auslesen. Kannst du evtl. bereits berichten ob dieser Adapater dafür kompatibel ist?
lg
Hallo Robert,
Hast du schon eine Lösung zur Abfrage bzw. hättest du eine Adresse für die beiden Schlüssel an die ich mich wenden könnte?
Lg Stefan
Hi hast du eine Mail an den Verbund gesendet ? wie bist du zum Schlüssel gekommen ?
Vielen Dank für die Informationen und investierte Arbeit und diese für uns zu dokumentieren – großartig!
Ich habe das Script etwas anders realisiert (weder wie in der Original- noch in der V01-Version), um sich an den Datenstrom entsprechend anzupassen (d.h. weder genau 282 Bytes zu erwarten noch bestimmte Zeiten zu warten). Das läuft jetzt seit Freitag großartig und stabil und ich habe ein interessantes Phänomen festgestellt:
2022-04-28 20:47:41,143 INFO:OK – Iteration: 1
2022-05-02 13:50:00,862 INFO:OK – Iteration: 64109
root@rpgen4n03:~# let FIVESECINTERVALS=($(date +%s -d “2022-05-02 13:50:00,862”)-$(date +%s -d “2022-04-28 20:47:41,143”))/5 && echo $FIVESECINTERVALS
64107
Es sind also in meinem Fall 64.109 Pakete zu 282 Byte verarbeitet worden – diese hätten aber bei exaktem 5-Sekunden Intervall erst um 13:50:06 (und nicht bereits 6 Sekunden davor) anliegen sollen.
LG Martin Werner
Hallo Michael
ich hab noch eine Frage zur Zählerabfrage – ob ich das richtig verstanden haben:
MomentanleistungP sind 979 Watt (die Verbrauche ich im Haus?)
Mein Balkonkraftwerk liefert 453 Watt
Wieso gehen dann MomentanleistungN ca. 300 Watt in Netz
irgendwo mach ich da glaube ich einen groben Denkfehler oder?
Gruß
Helmut – schönen Sonntag
Hallo Oehring
WLAN vom RPi mit FHEM funktioniert.
Ich habe im Zählerkasten einen RPI mit FHEM und MQTT2Server laufen und hole mir die Daten
im Haus mit MQTT2 Client ab.
Einzig wo du aufpassen musst, das Programm oder der Zähler senden alle 5 Sekunden Daten
Da kommen dann rasch Logs mit 50-100MB zusammen und dann hast du beim Aufbau der Grafik Probleme
Aber das lässt sich ja in FHEM zum Glück einstellen
Gruß
Helmut
Hallo bin Anfänger in dieser Stromsache und möchte mich vergewissern ob ich alles richtig verstanden habe. Die beschriebene Hardware habe ich vorrätig und möchte sie mit Fhem zum Einsatz bringen. Ich verwende zwei getrennte Raspi4, einen für Fhem und MQTT2_CLIENT und einen zweiten für dieses Projekt inklusive MQTT_Server. Ist dies so möglich?
Meine zweite Frage betrifft den Raspi4 mit “USB zu MBus Adappter” und “MQTT_Server”, funktioniert da auch eine WLAN Anbindung UNIFI_AP ist 7 Meter entfernt oder muss ich doch den Zählerkasten für ein LAN Kabel anbohren?
DANKE für die Hilfestellung !!
P.S. Zähler ist ein Sagemcom T210-D von der EVN
Hallo,
WLan sollte auch funktionieren. Natürlich nur so gut wie der Empfang ist. Ich weiß zwar nicht genau was FHEM ist bzw hab ich es selber noch nicht verwendet. Aber ich habe mit jemanden Kontakt gehabt der es mit FHEM realisiert hat.
Im grunde schickt das Python Skript auf eine MQTT Topic die aktuellen Werte des Smart Meters. Die Daten können dann ganz normal wie MQTT Nachrichten behandelt werden.
Bei weiteren Fragen können sie mir gerne eine Mail schreiben.
support@michaelretibauer.at
LG Michael
Hallo Michael,
kurzes Update: läuft super und stabil.
Habe noch eine Frage zum Intervall. Der Zähler ist ja sehr gesprächig
Kann man vielleicht in deinem Programm das Intervall von 5 Sek auf eine Minute für die Übertragung auf den MQTT Server ändern?
Gruß
Helmut
Hallo,
diese Funktion ist derzeit nicht vorgesehen sollte aber relativ einfach sein diese Funktion selber dazu zu programieren. Einfach mit einer IF Abfrage und einer Zählvariable. Jedes mal wenn Daten ankommen die Zählvariable erhöhen und wenn das 12 mal passiert ist die Daten senden. Dann ist ungefähr eine Minute vergangen da alle 5 Sekunden Daten gesendet werden und das 12 mal ergibt eine Minute. Das ist meine Idee wie man das Lösen könnte.
LG Michael
Servus
unser Zählerkasten ist auch auf der Strasse.
Hast du keinen freien Platz mehr für sowas
https://amzn.to/3EA6leD
oder das ist noch kleiner
https://amzn.to/3JWfUWh
Hast du schon den WLAN Empfang gecheckt – könnte auch noch ein Problem werden
Gruß
Helmut
Hallo zusammen!
Auf der Suche nach “Smartmeter auslesen” bin ich hier gelandet, mit spannenden Inputs. Allerdings steh ich vor dem Start noch vor einem ganz banalen Problem. Unser Zähler ist in einem Zählerkasten an der Straße, dort hab ich ironischerweise aber keinen Strom, mit dem ich den Raspberry betreiben kann… Hat jemand zufällig ein ähnliches Problem und dafür eine Lösung gefunden? Kabel einziehen, dürfte auch nicht klappen.
Danke!
lg, Stefan
Hallo,
wenn es irgendwie noch ein Cat-5 Kabel reinbekommst dann kannst du den Pi in deinem Haus montieren und nur die MBus Leitung von der Straße holen.
LG Michael
Du verwendest hier einen M-Bus Slave Adapter um den Zähler auszulesen, das bedeutet für mich, dass der Zähler M-Bus Master am Bus ist und auch die M-Bus Spannung bereitstellt.
Ist dies so korrekt? Schickt der Zähler die M-Bus Spannung (36V/24V) an seinen Anschlüssen heraus?
Ich kenne das bisher eher umgekehrt, sodass die Zähler alle Slave sind und ein Master dann die Spannung bereitstellt und mehrere Zähler ausliest.
Hallo,
ja genau so ist es es werden 24V und 36V an den 2 mittleren Pins ausgegeben.
Lg Michael
Hallo,
DANKE für das Script, nach ein paar Start Schwierigkeiten mit fehlenden Paketen
pip3 install cryptography
pip3 install paramiko
pip3 install pyserial
und das “soup = BeautifulSoup(xml, ‘lxml’)” musst ich wie auch andere User auf “soup = BeautifulSoup(xml, ‘html.parser’)” ändern, läuft das Script seit 12h ohne Probleme 🙂
vl sollte auch die Doku bezüglich Einheiten angepasst werden
Smartmeter/WirkenergieP bezogene Energie kWh -> Wh
Smartmeter/WirkenergieN gelieferte Energie kWh -> Wh
LG.
Erwin
Hallo,
danke für die positive Rückmeldung.
Hab die Einheiten gerade in der Doku angepasst.
LG Michael
Servus und Danke
Anscheinend war das Startskript im falschen Verzeichnis und ausserdem
lasse ich die Daten auf dem selben Pi auf den MQTT Server schreiben und hole sie von dort mit einem MQTT Client die Daten in mein Haussystem
Ist anscheinend besser als den entfernten MQTT server in dein Programm einzutragen.
Schönen Tag
Helmut
Hallo Michael,
sorry muß nochmals lästig sein:
Bekomme sehr oft diese Fehlermeldungen
Fehler: list index out of range
Invalid Start Bytes… waiting
Invalid Start Bytes… waiting
sofort nach dem Start.
Gruß
Helmut
Hallo,
leider kann ich ihnen nicht wirklich weiterhelfen.
Sie können das noch einmal probieren.
https://medium.com/codex/setup-a-python-script-as-a-service-through-systemctl-systemd-f0cc55a42267
Oder Sie fangen den Fehler list index out of range mit “Try Except” ab.
https://www.python-kurs.eu/ausnahmebehandlung.php
Hallo Michael,
ich brauche bitte nochmals deine Hilfe:
Folgende Fehlermeldung bringt das Programm zum Stillstand
Invalid Start Bytes… waiting
Wirkenergie+: 439699Wh
Wirkenergie-: 46224Wh
Momentanleistung+: 2326W
Momentanleistung-: 0W
Spannung L1: 229.0V
Spannung L2: 233.60000000000002V
Spannung L3: 228.60000000000002V
Strom L1: 9.46A
Strom L2: 0.71A
Strom L3: 2.04A
Leistungsfaktor: 0.999
Momentanleistung: 2326W
Invalid Start Bytes… waiting
Fehler: list index out of range
Invalid Start Bytes… waiting
Invalid Start Bytes… waiting
Invalid Start Bytes… waiting
Traceback (most recent call last):
File “/home/pi/Desktop/EVNSmartmeterMQTT_V01.py”, line 101, in
cipher = AES.new(encryption_key, AES.MODE_GCM, nonce=init_vector)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/AES.py”, line 232, in new
return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/__init__.py”, line 79, in _create_cipher
return modes[mode](factory, **kwargs)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/_mode_gcm.py”, line 620, in _create_gcm_cipher
return GcmMode(factory, key, nonce, mac_len, kwargs, ghash_c)
File “/usr/lib/python3/dist-packages/Cryptodome/Cipher/_mode_gcm.py”, line 188, in __init__
raise ValueError(“Nonce cannot be empty”)
ValueError: Nonce cannot be empty
Kannst du da bitte weiterhelfen?
@ Harald
ich hab es damit versucht
http://blog.wenzlaff.de/?p=15477
ABER das .py wird gestartet, aber trotzdem muss ich es mit oben beschriebenen Befehl erneut ausführen
Da bin ich selbst noch auf Suche
Gruß
Helmut
Hallo,
wie habt ihr den Autostart gelöst?
Danke & LG Harald
Guten Morgen
folgende Meldungen sind mir aufgefallen (Konsole am iMac)
Invalid Start Bytes… waiting
Fehler: list index out of range
Invalid Start Bytes… waiting
Invalid Start Bytes… waiting
Invalid Start Bytes… waiting
Invalid Start Bytes… waiting
Wirkenergie+: 416125Wh
Wirkenergie-: 46224Wh
Momentanleistung+: 2359W
Momentanleistung-: 3W
Spannung L1: 231.9V
Spannung L2: 228.0V
Spannung L3: 227.60000000000002V
Strom L1: 0.07A
Strom L2: 8.98A
Strom L3: 1.83A
Leistungsfaktor: 0.996
Momentanleistung: 2356W
Der MQTT2 Server befindet ich auf einem anderen Pi im selben Netzwerk
Gruß Helmut
Hallo Michael,
nochmals herzlichen dank für das Programm und den tollen Support.
Am Besten ist es, wenn man dafür das aktuelle “Raspberry Pi OS with desktop and recommended software”
verwendet. Hier braucht man NICHTS nachinstallieren.
Ich verwende zur Zeit deine V_01
Hier ist mir lediglich aufgefallen das man bei “Wirkenergie” noch durch 1000 teilen muss.
Jetzt muss ich das ganze noch in den Autostart bekommen
LG
Helmut
Anmerkung zur Installation:
hatte es gerade auf einem RPi mit Raspian Lite installiert. Dort muss python3-pip noch installiert werden, d.h. die erste Zeile ergänzen auf:
apt install python3 idle3 python3-pip
LG
OK, und welchen MBUS Adapter benötige ich dann für den Energie-Stmk Smartmeter?
Hallo,
da bin ich noch am Testen und entwickeln wird noch ein paar Wochen dauern.
Lg Michael
Hallo,
kurze Frage: am Foto ist die Farbe schlecht ersichtlich: beim RJ12 Kabel: welche Drähte muss ich mit dem MBUS Adapter verbinden?
Ich habe rot, grau, gelb, grün, braun und weiß.
Das rote erkenne ich, aber beim anderen bin ich mir nicht sicher: grau oder grün?
Danke!
Hallo,
das ist von Kabel zu Kabel unterschiedlich aber wenn Sie sich den Steckeransehen dann müssen die zwei mittleren Farben an den MBus Adappter. Ich konnte noch keine Polarität feststellen.
LG Michael
Hallo,
alles klar, ich probier’s aus!
Danke
Her damit. Bekommst e-Mail
Gruß Helmut
Hallo,
hab es gestern auf meinem Raspi mit Ubuntu umgesetzt und hat auf Anhieb funktioniert. Super – danke.
Lg Florian
achja: ertlweber@gmx.at
Sollte dieser aufruf nicht erwünscht sein – einfach löschen.. kein problem
Dann werf ich mich auf willhaben.at
benötigt jemand den MBUS Stecker/Wandler?
Also den im https://amzn.to/3BitdNP beschriebenen BAuteil
hatte Fehlkauf(da EnergieStmk Zähler anders funktioniert)
+ 3m Kabel würde ich 30€ verlangen.
Vorteil: Lieferzeit innerhalb von Österreich – geht schneller als über Amazon und china 🙂
Servus und Danke ist angekommen.
Programm “dürfte” funktionieren aber es dürfte auch der falsche Stick sein (Grrrrr…)
Wenn ich die Originale. Version deines Progis aufrufe, bekomme ich am RPi keine Rückmeldung mehr
Ich sehe aber in FHEM im MQTT Broker bei cid SmartMeter und state is Connected
In der V01 bekomme ich in der Konsole diese Meldung “Invalid Start Bytes… waiting
Invalid Start Bytes… waiting”
Ich lese das so aus deinem Progi das er keine Daten bekommt?
Ist dies so – wenn ja bekommst du eine e-mail wie besprochen
Nice Weekend
Helmut
Hallo,
super das es läuft. Ja es wird daran liegen das er keine bzw falsche Daten beckommt er fragt nach dem StartingHeader ab wenn wer falsche kommt dann wird die Fehlermeldung Invalid Start Bytes… waiting” ausgegeben.
Sie können mir auch auf WhatsApp schreiben.
LG Michael
Hallo Michael,
könntest du mir zur Sicherheit diese mail auch schicken.
Ich möchte ja nochmals neu aufsetzen
danke
Helmut
Hallo,
sollte schon angekommen sein.
LG Michael
Hallo,
Wollte meinen Stromzähler auch an den Raspberry hängen, scheitere aber leider schon bei der Installation mit
“E: Paket python3-pycryptodome kann nicht gefunden werden.”
Wird dafür eine bestimmte Raspian Version benötigt ?
Danke, Werner
Hallo,
ich habe eine Raspberry PI 4 mit einer normalen Raspbian versinon.
Ich schicke ihnen ein Mail mit einem Lösungsvorschlag.
LG Michael
Hallo, Es lag scheinbar an der älteren Version.
Ich habe jetzt meinen Raspberry 1B im Zählerkasten auf Buster upgedatet und nun funktioniert es.
Danke.
Hallo Michael
ja werde alles neu aufsetzen.
Habe jetzt am großen Fluß deinen Adapter bestellt. Der kommt aber erst Mitte Mai.
Gerne nehme ich das Angebot mit dem Test Adapter an.
Sollen wir das besser per e-mail klären?
LG
Helmut
Hab ihnen eine Mail geschrieben.
Danke für die prompte Rückmeldung. Super support
Ich glaub jetzt hab ich was grob versemmelt.
Nach der Installation von pyserial hat mir das System mitgeteilt
das pycryptography und paramiko fehlen
Habe ich beide auch nachinstalliert, obwohl die sollten doch eigentlich in pycryptodome enthalten sein?
Wenn ich jetzt dein Programm starten will tut sich nix mehr….
Glaube das Beste wird sein die SD platt machen und am WE nochmals in aller Ruhe neu installieren oder?
Gruß
Helmut
Hallo,
ja wird besser sein. Von Vorteil ist noch wenn sie die Version mit den empfohlen Packeten aufsetzen dann sind schon einige Pakete vorinstalliert die Sie benötigen.
Wenn sie für Testzwecke einien MBus adappter benötigen melden Sie sich nocheinmal.
LG Michael
Servus
sag kann es sein das ich hier
https://www.reichelt.at/at/de/raspberry-pi-usb-rs485-schnittstelle-ch340c-rpi-usb-rs485-p242783.html?PROVID=2807&gclid=CjwKCAjwrfCRBhAXEiwAnkmKmZ2CWZRZ9Lkr28sH57mvHg36Je3-LVp8HLoS13BJssQLVOQVhOBAMhoCojMQAvD_BwE
den falschen Stick gekauft habe?
Dein Programm liegt unter home/pi/Desktop
Wenn ich sudo python3 /home/pi/Desktop/EvnSmartmeterMQTT.py aufrufe
bekomme ich die Meldung line1, in Import serial
No Module named ‘serial’
danke für deine Unterstützung
Helmut
Hallo,
ja es wird der falsche USB Konverter sein ich habe den was man benötigt verlinkt in der Bauteilliste.
Aber der Fehler liegt an einem fehlenden Packet für Python.
sudo pip3 install pyserial
Das einfach in die Kommandozeile eingeben dann sollte der Fehler weck sein 👍
LG Michael
Hallo!
Ich habe aktuell den T210-D der EnergieSteiermark in Betrieb und lese den Verbrauch bisher mit Home Assistant Glow über die 1000 imp/kwh LED aus. Das funktioniert an sich auch gut, allerdings habe ich gestern mein Balkon PV in Betrieb genommen und bemerkt, dass die LED auch bei Einspeisung gleich blinkt wie bei Verbrauch.
Dadurch stimmt die Verbrauchsberechnung über die LED natürlich nicht mehr.
Weiß jemand, ob der Verbrauch bei Einspeisung mit dieser Variante richtig berechnet wird?
Hallo,
an sich funktioniert das mit meiner Variante schon. Aber leider nur in Niederösterreich und nicht in der Steiermark.
LG Michael
Gerne
dann warte ich halt noch.
Noch 2 Fragen: tust ein 3er Rai auch (4er sind alle Haussteuerung FHEM)
und kann der MQTT Server am selben Pi installiert sein, der auch die Abfrage vom Zähler macht?
Gruß
Helmut
Ja ein Raspberry Pi 3 sollte es auch ohne Problem machen es soll angeblich auch auf einen PI Zero laufen.
Ich hab den Broker am selben Pi4 laufen wie die Messung.
Hallo Michael,
Kaffeespende sollte schon auf deinem Konto sein.
Danke für die tolle Anleitung
Wie lange hast du auf das Kundenpasswort der EVN gewartet?
Habe vor einer Woche die Anfrage gestellt und es wurde mir mitgeteilt das mein Ansuchen an die entsprechende Abteilung weitergeleitet wurde
lg
Helmut
Hallo,
danke für die Spende!!!
Bei mir war das noch gesondert da ich schon früher einen Zugang erhalten habe bevor es für jeden geöffnet wurde bezüglich meiner Diplomarbeit.
Aber was ich von Bekannten mitbeckommen haben kann es bis zu zwei Wochen dauern.
LG Michael
Danke für das Telefonat und die Unterstützung.
Guter Hinweis dass ich bei der Energie Steiermark eventuell das Problem habe. damit konnte ich nicht rechnen.
Darum mache ich noch kurz einen Aufruf in eigener Sache quasi:
.
–
->HAT JEMAND hier ERFOLGREICH den Sagem T210-D von der Energie Stiermark einbinden können?<—
.
Ich würde mich sehr über Antwort freuen.
ertlweber@gmx.at
Hallo – jetz hab ich ebenfalls
Invalid Start Bytes…waiting
woher weiss man dass das Kabel funktioniert?
oder die Schnittstelle vom SMartmeter
:/
die mittleren 2 Litzen hab ich jedenfalls verwendet
Hi
ich kämpfe etwas…
beim Installieren sudo apt install python3-pycryptodome # library für die Entschlüsselung
bekomme ich die Meldung:
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
ERROR: Could not find a version that satisfies the requirement python3-pycryptodome
ERROR: No matching distribution found for python3-pycryptodome
und nun ?
Und DANACH ?
bin echt der volle compiler/python noob
sorry
Hallo,
ich glaube sie haben den Fehler schon selber gefunden oder? Sonst muss ich mir das noch einmal ansehen. Einfach bescheid geben.
LG Michael
Hallo,
Ich würd die Version01 empfehlen. Die Änderungen sind nicht zwingend notwendig war eher kosmetischer Natur. Aber bald kommt ein größeres Update.
Da wir es ein Config File geben und eine wo der Code ausgeführt wird dann muss man nur einmal die Config ausfüllen und kann den Code immer wider verändern ohne das man den Key ändern muss. Es kommt auch eine REST-API Schnittstelle dazu. Eventuell auch noch eine Option das man sofort in die InfluxDB schreiben kann.
Aber für das große Update muss ich noch einiges Testen bzw die Anleitung noch umschreiben das da keine Verwirrung aufkommt das dauert noch etwas länger da ich gerade noch alle Test´s und vorallem meine Diplomarbeit fertig stellen muss.
LG Michael
Hallo Michael!
Sag, Du hast vor ein paar Tagen laut GitHub einige Adaptionen in den beiden Scripts getätigt. Soll man nun die aktualisierte Version verwenden bzw. was waren die Änderungen? Bzw. welches von den beiden Scripts “empfiehlst” Du?
LG David
Hallo.
Dumme Frage: Enden bei euch die Diagramme aus der Kundenschnittstelle neben 0x16 auch manchmal mit 0x8b, 0xf1, 0xfc, 0xfe oder 0xff.
Mir kommt das bei mir etwas spanisch vor, da nur ein Telegramm mit 0x16 am Ende in der EVN-Anleitung steht und auch die M-Bus Dokumentationen, die man im Internet findet, 0x16 als End-Byte definieren.
Bitfehler schließe ich aus, da Start-Bytes u.ä. richtig übertragen werden
Hallo, ich habe den https://www.amazon.de/gp/product/B08GWZTNM3 im Einsatz, bekomme jedoch keinerlei Telegramme rein. P1 sollte (seit heute – eMail) freigeschaltet sein. Das _V01.py printed nur “Invalid Start Bytes… waiting”, daten ist tatsächlich leer. Weiß nicht obs am o.g. Kabel oder an einer tatsächlich noch nicht wirklich aktivierten P1 liegt.
Hallo,
ja das Kabel funktioniert nicht wurde schon öfters bemängelt.
Ich habe mir gerade eine alternative Bestellt die in großer Stückzahl verfügbar ist aber das dauert noch ca. 2 Wochen bis ich alles testen kann daher bitte ich noch etwas um Geduld.
LG Michael
Schade :/ .. Mach’ dir keinen Stress. Das Modul aus deiner Stückliste dürfte auch vergriffen sein.
Wenn Sie das Kabel nicht zurücksenden dann könnten Sie es mir eventuell senden dann kann ich nachsehen warum es nicht funktioniert ich glaube da sind nur die Falschen Pins belegt. Wenn Interesse besteht kann ich gerne das Porto übernehmen. Melden Sie sich einfach support@michaelretibauer.at
ich probier den nächste woche aus.
https://at.rs-online.com/web/p/entwicklungstools-kommunikation-und-drahtlos/2167484
Hallo Michael, wie funktioniert es mit dem M-BUS – UART Konverter?
Hallo ich habe es mit dem oben beschrieben UART Konverter geschaft!
In Verwendung:
1x M-Bus UART Converter https://at.rs-online.com/web/p/entwicklungstools-kommunikation-und-drahtlos/2167484/
1x UART USB Converter https://amzn.to/3xbX0YM
1x Raspberry Pi Zero
10m CAT5 Kabel
Ich hatte allerdings das Problem das immer fehlerhafte Daten gekommen sind diese nicht entschlüsselt werden konnten. Nach Anschluss an PC und Hterm versuchen und manuelle Entschlüsselung bin ich dann auf das Problem gestoßen. Der Fehler lag dann daran, dass die Parity aktiviert gehört, also von “parity=serial.PARITY_NONE,” auf “parity=serial.PARITY_ODD,” oder auch EVEN.
Dann war allerdings noch immer das Problem, dass er den lxml Parser nicht finden konnte obwohl er installiert war, ich habe jetzt nun: “html.parser” in verwendung: “soup = BeautifulSoup(xml, ‘html.parser’)”
Dann noch in openhab alles von mqtt eingelesen und autostart und autotest auf dem PI mit screen eingerichtet und jetzt läuft alles 1A.
Vielen Dank an das Skript und die Erklärung!!
Hi Daniel,
wie hast du den M-Bus UART Converter mit dem UART USB Converter verbunden?
(M-Bus UART Converter)TX auf (UART USB)RX UND (M-Bus UART Converter)RX auf (UART USB)TX ODER RX auf RX und TX auf TXT?
Weiters (M-Bus UART Converter)GND auf (UART USB)GND , sonst noch etwas?
Vielen Dank schonmal
Ich habe soeben dasselbe Setup ausprobiert und geschafft. Ich habe Tx auf Rx und Rx auf Tx verbunden. Das M-Bus Board braucht auch noch 3.3V Der kommt bei mir auch aus dem USB-UART adapter raus, und den musste ich auch noch verbinden – und natürlich auch noch die beiden Ground (GND) Pins.
Hatte keinen 6-Poligen Stecker, da habe ich ein normales Ethernet RJ45 kabel geopfert und seitlich abgeschliffen. Habe es auf beiden Seiten soweit abgeschliffen dass der 1. und 8. Pin gerade noch nicht angeschliffen waren. Funktioniert super. Auch die Arretierung geht. Habe ein RJ45 Kabel gefunden das kein Metallblech hat, meines war nur aus Plastik.
Die Drähte von den mittleren beiden Pins habe ich dann in den kleinen Schaubklemmen fixiert. Wenn man mit dem Multimeter Gleichspannung (DC) misst, dann kamen bei mir 35V raus. Das sollte so passen. Wenn ihr das falsche Adernpaar erwischt habt, dann bekommt ihr keine Spannung.
Viel Erfolg! elektroluki
Hi, hab dein Programm auch schon eine Zeit lang mit einem RPI4 und dem m-bus-Teil von Mikroe für einen Kaifa MA309 bei EVN im Einsatz; funktioniert sehr gut, allerdings stürzt immer um 03:00 das Systemctl.Service ab; hab zwar eine Watch-Dog-Logik für Restart in NodeRed eingebaut, allerdings kommt das systemctl.Service nicht wieder zum Laufen ;-(
Ich habe es auch mal mit https://github.com/tirolerstefan/kaifa probiert; funktioniert auch; allerdings mit dem gleichen Effekt – um 03:00 kommt es zu einer Unterbrechung des Systemctl.Service; der Restart über den NodeRed-Watchdog funktioniert hier allerdings 😉
Hat jemand von euch auch so einen Effekt um 3:00???
Muss leider auch aus China bestellen, die Frage ist nur wie geht das mit dem Zoll – hat sich doch Mitte letzten Jahres geändert. Kann dazu jemand was sagen?
Ansonsten super Projekt, danke!
… übrigens mein Smart Meter ist von der Energie Stmk.
Lg
Ich habe mir die letzten Monate was auf AliExpress bestellt und hatte keine Problem mit dem Zoll nicht einmal eine Nachzahlung.
Falls jemand eine andere Erfahrung gemacht hat bitte dazuschreiben.
Lg Michael
Hallo
Seit Mitte 2021 müssen die Importe über IOSS (https://ec.europa.eu/taxation_customs/ioss_en) abgewickelt werden. Dadurch hat sich die Verantwortung der Verzollung vom Händler auf die Plattform (also Ali Express) verlagert.
Zuvor mussten Waren <21€ (glaub ich) nicht verzollt werden. Was dazu führte das Händler diese falsch deklarierten, um diese nicht verzollen zu müssen.
Mit dem neuen System muss Ali Express nun die Steuern ( 150 MWST + Zoll) abliefern und die Händler müssen eine IOSS-Nummer haben damit die waren beim Import den Steuerzahlungen von Ali Express zugeordnet werden können. Haben sie diese Nummer nicht wird beim Import der Wert geschätzt und von der Post vorgestreckt. Bei Zustellung wird der Betrag plus Bearbeitungsgebühr vom Postmitarbeiter an der Haustüre eingehoben.
Bit mit hat es bis auf einmal während der Umstellungszeit ohne Probleme funktioniert.
Mfg
kleiner Nachtrag, da die kleiner und größer Zeichen nicht übernommen wurden.
kleiner 150€ MwSt.
und
größer 150 MWST + Zoll
Hallo HP!
Würde meinen Smartmeter (Sagemcom T210-D-r) von der Energie Stmk auch gerne auslesen. Hab bis jetzt nur gehört, dass die IR Schnittstelle hier für die Kunden nicht freigeschaltet ist – somit bleibt nur der Mbus.
Wie bist du an die Zugangsdaten (passwort) gekommen? An wen muss man sich da wenden?
Danke vorab für deine Info.
Grüße, Armin
Hallo Armin,
Würde ebenfalls gerne meinen Smart meter von Energie Stmk auslesen. Hattest du schon Erfolg für den Entschlüsselungkey?
Beste Grüße Stefan
Ich hab das Teil hier ( https://www.mikroe.com/m-bus-slave-click )in Verwendung. Ist zwar ein serieller Anschluss und kein USB, funktioniert aber einwandfrei. Die Firma ist zwar in Serbien, somit muss die Lieferung durch den Zoll und hat leider noch ein wenig extra gekostet. Aber es ist Lieferbar!
Hallo das hab ich auch mal getestet bin aber mit versand und Zoll fast auf 50€ gekommen. Wenn ich mich richtig erinnere.
Hallo
Danke für deinen Einsatz.
Hast du auch einen Modbus TCP Anbindung angedacht (https://github.com/Johannes4Linux/Simple-ModbusTCP-Server) um klassische Steuerung anbinden zu können?
Mfg
PS: Adapter ist auch schon bestellt 🙂
Hallo,
An eine Modbus TCP Anbindung habe ich noch nicht gedacht da ich kein Gerät bei mir im Einsatz habe, daher kann ich es nicht testen. Der Code ist Open Source und auf Github kann man diesen einfach forken und weiter Programmieren damit sieht jeder den Code und kann ihn verwenden wenn er eine Modbus Schnittstelle hat.
Danke für deine Unterstützung
Hallo!
Danke für die Anleitung!
Frage: Habt ihr irgendwo einen Shop gefunden, wo es nicht 6+-Wochen dauert, um den MBUS-USB-Adapter zu erhalten (wie über Ali). Amazon gibt’s derzeit gar nichts.
Danke!
LG,
Dieter
Hallo,
Nein ich habe leider noch keine alternative gefunden.
LG Michael
OK, alles klar … danke für die rasche Rückmeldung … muss ich wohl warten …
Hallo,
ist möglich Login Daten (User+Passwort) für den MQTT Broker mitzugeben?
LG Andreas
Ja ist möglich ich werde die Version Updaten und auf Github veröffentlichen. Wenn ich noch Zeit habe wird das heute Abend machen. Ich gebe in einem Kommentar bescheid.
Hallo,
so hab die Funktionen gerade hinzugefügt. Eine Rückmeldung wäre super.
LG Michael
Hallo Michael,
funktioniert!
Zur Info: ich hab das auf einem Raspi 2b mit einem serial to MBus Adapter laufen. Musste in deinem Skript nur die Schnittstelle ändern.
Danke und LG Andreas
Hab das ganze jetzt einige Zeit im Einsatz und funktioniert super. Ein kleines Problem gibt es noch: wenn ich den MQTT Broker neu starte verliert dein Skript die Verbindung und schafft leider keinen Reconnect.
Wenn es auch ein ESP8266 oder ESP32 sein darf, gibt es hier ein interessantes Projekt: https://github.com/gskjold/AmsToMqttBridge
Läuft bei mir mit selbst gebastelter Hardware (TSS721 + Wemos D1 mini) an einem Sagemcom T210-D der Netz NÖ
hallo manfi, verwendet man für den T210-D die M-Bus oder P1 Variante? die dokumentation der Netz Nö ist da nicht ganz klar ob das M-Bus oder Netz Nö ist
hast du vielleicht ein paar details wie du das ganze für netz nö programmiert hast?
Lg
Hallo zusammen,
ich habe einen Sagemcom und einen Kaifa in meinen Häusern verbaut.
In 2 Wochen ca. bekomme ich die MBus Konverter, dann werde ich beide Zähler in Angriff nehmen und Feedback geben…
Beste Grüße
Reini
vielleicht hilft das.
da gibts schon funktionierende python programm.
https://www.photovoltaikforum.com/thread/157476-stromz%C3%A4hler-kaifa-ma309-welches-mbus-usb-kabel/
Ich habe meine Version schon fertig, werde morgen noch einen Testlauf machen, denn ich habe keinen Kaifa bei mir Zuhause. Bin auf einen Bekannten angewiesen.
So habe die Version schon testen können und sie funktioniert auch so weit. Ich muss noch ein Feature hinzufügen aber dann werde ich die Version für den Kaifa M309 auch veröffentlichen.
Super! in ca. 3 wochen kommt mein usb adapter aus china.
Hallo,
weißt du, ob es mit Kaifa Zähler auch funktioniert – laut Bedienungsanleitung von der EVN, sollte der Output ja gleich sein.
Danke
Ciao
Michael
Hallo, ja ich weiß es das es leider nicht funktioniert aber ich bin schon dran an einer Lösung.
Laut EVN ist es das selbe aber in Realität funktioniert es leider nicht.
wenn alles gut geht sollte der Code für den Kaifer MA309M dieses Wochenende online sein.