« Elektrotechnik & Smarthome  |

DIY Auslesen eines SmartMeter über lokale Kundenschnittstelle

 
Teilen: facebook    whatsapp    email
Zusammenfassung anzeigen (Beta)
 1  2 ... 3  4 
  •  chrismo
  •   Gold-Award
21.7.2020 - 4.11.2023
70 Antworten | 18 Autoren 70
3
73
Hallo.

Ich habe jetzt mit den Infos bzw. der Software, die ich hier gefunden habe: https://www.photovoltaikforum.com/thread/139837-siemens-im350/

meinen Siemens Smart Meter der KNG (Kärnten) über die Kundenschnittstelle ausgelesen. So kann ich den aktuellen Energieverbrauch bzw. den aktuellen Zählerstand direkt ins SmartHome-System integrieren und muss dazu nicht die 15min-Auslesung des Netzbetreibers aktivieren. Die Daten werden alle paar Sekunden (ich glaube 5s) aktualisiert, daher ist eine genauere Auswertung möglich.

Die KNG bietet selbst derzeit noch kein Produkt an, um die Kundenschnittstelle zu nutzen. Ich glaube auch die anderen Stromnetzbetreiber sind noch nicht so weit. Aber man kann sich die Schnittstelle freischalten lassen und bekommt dann einen Code zum Entschlüsseln der Daten. Das Auslesen selbst mache ich mit einem Serial-USB Konverter und einem Raspberry PI Zero (ähnlich wie im oben verlinkten Thread beschrieben).

Leider herrscht in Österreich ziemlicher Wildwuchs und die Betreiber verwenden unterschiedliche SmartMeter bzw. haben selbst beim gleichen Gerät unterschiedliche Ausführungen. Bei manchen Betreibern ist die Schnittstelle optisch mit IR-Kopf auszulesen, bei anderen über eine RJ12-Schnittstelle. Im oben verlinkten Thread findet man Infos zu unterschiedlichen Bundesländern (z.B. Kärnten, oder OÖ).

Wenn jemand konkret an Details zum Auslesen eines Siemens IM350 der KNG interessiert ist, kann ich gerne hier noch ein paar Infos posten, aber eigentlich steht alles auch im verlinkten Thread.


2020/20200721646163.png

von berhan, dyarne, heisl91, owall

  •  michlb1003
4.5.2022  (#41)
hallo, nachdem ich schon mittlerweile die 3. sd karte im pi gekilllt habe, bin ich auf der suche nach einer Alternativen lösung, hat jemand vorschläge? ich hab was mit esp32 gefunden, die sind aber per wlan und ich hab beim zähler leider keines.... glaubt ihr geht das esp32 mit enc28J60? hat jemand so was vllt schon im einsatz? also esp32 per lan mit TEKT5400S und das ganze dann per mqtt...

aber mal ne grundsätzliche Frage, wie erkenne ihc ob mein zähler SML oder "D0" spricht???

1
  •  taliesin
  •   Gold-Award
4.5.2022  (#42)

zitat..
michlb1003 schrieb: nachdem ich schon mittlerweile die 3. sd karte im pi gekilllt habe

Da bist aber schon talentiert emoji Meine 3 Raspis laufen seit Jahren mit der jeweils ersten ... zugegeben Sandisk Ultra microSDHC HS-I.

Ich habe das http://www.mitterbaur.at/amis-leser.html im Einsatz und bin sehr zufrieden, open source SW und HW, Herz was willst du mehr. Ist ESP8266 basiert und nur WLAN, aber wenn eh ein Raspi das ist kann der ja einen AP aufspannen und gut.

1
  •  michlb1003
5.5.2022  (#43)

zitat..
taliesin schrieb: Da bist aber schon talentiert

danke vielmals emoji 
man gibt sich mühe...
aber funkt das auch bei meinem zähler? ich weiß nicht, ich hab schon so vieles versucht jetzt, mit rpi und szreader, dann mit dieser anleitung hier Beschreibung - mwinklers Webseite! (mwinklerblog.de) klappts auch nicht, ich hab auch schon das hier versucht docdiesel/esp32-sml-reader-Che: reads sml data from smartmeter using ESP32 (github.com) bekomm das aber nicht aufn esp rauf...  bin scheinbar nicht so talentiert....

1
  •  Brettljausn
5.5.2022  (#44)
Bei den Raspis im Dauerbetrieb sollte man grundsätzlich das Swapping auf die SD-Karte deaktivieren, um diese zu schonen.

https://domoticproject.com/extending-life-raspberry-pi-sd-card/

1
  •  streicher
  •   Gold-Award
5.5.2022  (#45)

zitat..
michlb1003 schrieb: hallo, nachdem ich schon mittlerweile die 3. sd karte im pi gekilllt habe

Ramdisk machen  


1
  •  michlb1003
7.5.2022  (#46)
hallo leute...
ich hab einen erfolg zu verbuchen!
mich hat das einfach nicht in ruh gelassen, jetzt hab ich den pi neu aufgesetzt, tabula rasam..
und auch einen pi 3b+ genommen statt des zero w... egal.
es hat funktioniert, habe das erste mal daten über mqtt bekommen... aber das ganze lief nur 19sek..

2022/20220507348654.png
aber es reichte aus um was zu senden...
jetzt meine frage, wie kann ich rausfinden warum es nach 19 sek endet?

1
  •  taliesin
  •   Gold-Award
7.5.2022  (#47)

zitat..
michlb1003 schrieb: jetzt meine frage, wie kann ich rausfinden warum es nach 19 sek endet?

Mit der gleichen Methode wie mit deinem ersten setup (log files anschauen) ... ich denke du hast dein Problem nicht gelöst. Das Neuaufsetzen hat den Fehler 'verschoben' emoji


1
  •  michlb1003
8.5.2022  (#48)
hallo taliesin

ich hab das ding mal mit -v DEBUG gestartet und hier die Logdatei dazu.
https://1drv.ms/u/s!AlnX2lcFBF9Oi9YaMWmAyMMF4hcvng?e=KWh2w0
ich hab in der serialdatasource.py die timeoutzeit auf 30sek verlängert, dann kommen auch mehr nachrichten rein... wenn ich das log richtig lese, dann kann er alles entsprechend initialisieren, die MQTT geschichte passt auch, dann kommen auch Daten rein (zeile 26), kann diese erfolgreich encoden (zeile 29) und dann kommt das parsing und da gehts so richtig los... und schluss endlich... game over....

was macht dieses parsing?

1
  •  taliesin
  •   Gold-Award
8.5.2022  (#49)

zitat..
michlb1003 schrieb: was macht dieses parsing?

Es zerlegt den XML string in ein XML-Datenobjekt (mit vernünftigen Datentypen ..z.B. float). Dein Fehler ist, meiner Ansicht nach, wieder genau der, den du vorher hattest. Zumindest sieht es im log so aus. Ich vermute nach wie vor einen Fehler bei der Datenübertragung.

Wenn du einmal richtige Daten bekommen hast, kannst du ja den log dazu mal vergleichen. Ich schätze da funktioniert der XML-parse (zufällig). Ohne auf die Elektronik zu schauen, kommt man aus meiner Sicht nicht weiter.

1
  •  michlb1003
9.5.2022  (#50)
Heureka! 
hartneckigkeit zahlt sich aus...
folgendes war, es war immer die Permission denied (mit nodered rausgefunden) die berechtigungen waren 
crw--w---- 1 root tty 204, 64 May  9 20:15 /dev/ttyAMA0
auch wenn ich mittels chmod auf 666 geändert habe also rw rw rw, wurde das binnen 5m in zurückgesetzt...
hier http://roboticsbackend.com/raspberry-pi-hardware-permissions/#USBSerial_ports

bin ich dann fündig geworden, habe die cmdline.txt entsprechend geändert, jetzt bleiben die permissions und plötzlich funkt auch der szreader...

jetzt bekomme ich auch werte raus... noch ne letzte frage, was sind das für werte bzw. einheiten???

2022/20220509822238.png

und wram wird szreader_current_power_out weniger wenn ich verbraucher dazuschalte????

1
  •  taliesin
  •   Gold-Award
10.5.2022  (#51)
Wenn die permissions von der tty nicht passen, hätte im log kein receive string stehen dürfen! Sehr eigenartig.

1
  •  chrismo
  •   Gold-Award
10.5.2022  (#52)
Wenn ich es richtig verstanden habe, wurden die Permissions manuell gesetzt und szreader hat ausgelesen. Dann wurden sie aber von irgendeinem Prozess wieder zurückgesetzt und szreader hat gestoppt.

zitat..
michlb1003 schrieb: was sind das für werte bzw. einheiten???

Einheiten sind Wh bzw. W bei counter bzw. power. 

Der timestamp ist ein sog. Unix Timestamp (vergangene Zeit seit 1.1.1970). Dafür gibt es Umrechner, die das in ein aktuelles  Datum konvertieren. Der Wert am Screenshot  ist z.B. 09.05.2022 20:37:09 GMT bzw. 22:37:09 CEST.

In ist was du beziehst, out was du einspeist.

Also du hast bisher erst 55kWh bezogen aber schon über 4900 kWh eingespeist, bei einer momentanen Einspeisleistung von ca. 600W. Daher wird auch out niedriger wenn du Verbraucher dazuschaltest (und irgendwann dann 0W und in geht rauf).

1
  •  michlb1003
10.5.2022  (#53)
hallo chrismo,

zitat..
chrismo schrieb: In ist was du beziehst, out was du einspeist.

das kann nicht stimmen... ich habe keine PV anlage oder sonst irgendwas das strom produzieren würde...  ich hab das lediglich drauf, damit ich seh wie viel ich jetzt grad strom brauche, die PV wird hoffentlich dieses jahr noch dazu kommen....  
mich hats nämlich gewundert, wenn ich verbraucher dazu schalte geht das power out runter.. 
sehr interessant...

zitat..
chrismo schrieb: Wenn ich es richtig verstanden habe, wurden die Permissions manuell gesetzt und szreader hat ausgelesen. Dann wurden sie aber von irgendeinem Prozess wieder zurückgesetzt und szreader hat gestoppt.

ganz genau, ich musste, damit ich was angezeigt bekomme immer erstens als sudo pyhon3 starten und dann musste ich noch die lese und schreibrechte setzen, die dann wieder in die ursprünglichen geändert wurden.... die bearbeitung der cmdline.txt war die lösung.


1
  •  chrismo
  •   Gold-Award
10.5.2022  (#54)

zitat..
michlb1003 schrieb: das kann nicht stimmen... ich habe keine PV anlage oder sonst irgendwas das strom produzieren würde...

OK, dann bin ich raus 😂

Mein SmartMeter zeigt nur die IN-Werte an. OUT ist alles auf 0.

1
  •  michlb1003
25.9.2022  (#55)
einen schönen Sonntag wünsch ich so mal allgemein in die Runde...
wieder mal der nervige Michl, der sich nicht auskennt aber immer mit Situationen konfrontiert ist, wo er vollkommen überfordert ist...

ich hab wieder was neues: seit gut 3 Wochen beiß ich mir meine Zähne aus... 
bis vor ca. 3 wochen hat der SZREADER wunderbar funktioniert, lese-diode direkt am Smartmeter, Pi auch drann und die infos per MQTT an mein Loxone... von einem Tag auf den anderen funkt der szreader nicht mehr... bekomme beim start immer die fehler: 

pi@smartmeter:~/szreader $ sudo python3 szreader.py
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
    self.run()
  File "/home/pi/szreader/datasource/IDataSource.py", line 18, in run
    self._start_source()
  File "/home/pi/szreader/datasource/SerialDataSource.py", line 52, in _start_source
    while self._ser.read().hex() != PACKET_DELIMITER:
  File "/usr/local/lib/python3.9/dist-packages/serial/serialposix.py", line 595, in read
    raise SerialException(
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

permissions: 
pi@smartmeter:~/szreader $ ls -al /dev/ttyAMA0
crw-rw-rw- 1 root dialout 204, 64 Sep 25 12:01 /dev/ttyAMA0

in der /boot/config.txt steht:

[all]
enable_uart=1
dtoverlay=pi3-disable-bt
dtoverlay=disable-bt

und in der /boot/cmdline.txt steht: 
root=PARTUUID=e5459322-02 rootfstype=ext4 fsck.repair=yes rootwait

so... das hat bis dato alles funktioniert... jetzt (ich denke ich hab mal bei zeiten system updates gezogen) kommt wie gesagt immer die obrige fehlermeldung...

ich rufe szreader per sudo und python3 auf...

hat wer input/ideen für mich wo das problem liegen könnte? (bitte keine Meldungen wie:" typischer fall von PebKaC..." ist mir schon bewusst...danke)

oder hat den szreader shcon mal wer mit node-red nachgebaut? da bekomme ich zwar die verbindung zum ttyAMA0 aber die werte sind unleserlich und mit den Smartmeternode komm ihc nicht weiter:

2022/20220925264104.png



1
  •  taliesin
  •   Gold-Award
26.9.2022  (#56)

zitat..
michlb1003 schrieb: while self._ser.read().hex() != PACKET_DELIMITER:

... lässt darauf schließen, dass deine Daten nicht stimmen. Tendenziell würde ich auf ein HW-Problem tippen. Das Programm findet im Datenstrom den Paketanfang nicht und gibt irgendwann auf. Sieh dir die Rohwerte von der seriellen an, ev. kann man daraus mehr schließen.

Eventuell ist die Lesediode verrutscht, oder deine Schaltung hat so grenzwertig funktioniert, dass veränderte Temperaturen zur Fehlfunktion führen.


1
  •  jayjay
26.9.2022  (#57)

zitat..
michlb1003 schrieb: raise SerialException(
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

vielleicht blockiert eine bestehende (aber abgekackte) verbindung das Port.
"did you try to turn everything off and on again?"


1
  •  chrismo
  •   Gold-Award
26.9.2022  (#58)
Wer auch gerne bei seriellen Verbindungen dazwischen funkt ist der ModemManager (Teil von NetworkManager).

Testweise (mit root Rechten):
systemctl stop ModemManager.service
Und dann szreader neu starten.

1
  •  hardliner
4.1.2023  (#59)

zitat..
michlb1003 schrieb:

Heureka! 
hartneckigkeit zahlt sich aus...
folgendes war, es war immer die Permission denied (mit nodered rausgefunden) die berechtigungen waren 
crw--w---- 1 root tty 204, 64 May  9 20:15 /dev/ttyAMA0
auch wenn ich mittels chmod auf 666 geändert habe also rw rw rw, wurde das binnen 5m in zurückgesetzt...
hier http://roboticsbackend.com/raspberry-pi-hardware-permissions/#USBSerial_ports

bin ich dann fündig geworden, habe die cmdline.txt entsprechend geändert, jetzt bleiben die permissions und plötzlich funkt auch der szreader...

jetzt bekomme ich auch werte raus... noch ne letzte frage, was sind das für werte bzw. einheiten???

und wram wird szreader_current_power_out weniger wenn ich verbraucher dazuschalte????

Konntest du die Thematik mit curernt_power_out lösen?
Ich stehe gerade vor dem selben Problem, möchte meinen Siemens IM350 per IR (Wiener Netze) auslesen. Der szreader spuckt mir zwar Werte aus, diese sind allerdings nicht korrekt, weder current_power nicht der current_counter sind richtig


1
  •  Hedensted
  •   Bronze-Award
31.10.2023  (#60)
Guten Abend

Wir haben nun einen SmartMeter bekommen, jedoch funkt das Auslesen über das Web-Portal nicht. Laut Auskunft "wissen wir nicht genau warum und können auch nicht sagen, wann es wieder funktioniert". Klasse also! 

Jetzt würde ich ihn gern selbst auslesen, hab aber leider keine Ahnung von der Materie, so dass mir die meisten Projekte im Netz mehr Fragezeichen als Hilfestellung sind :) 

Hat jemand Erfahrung zum Auslesen eines Landis+Gyr E450 und würde sein Wissen teilen?

1
  •  taliesin
  •   Gold-Award
31.10.2023  (#61)
Grundsätzlich kann man dir hier schon helfen, aber wenn du gar keine Ahnung hast, musst du zuerst versuchen diese aufzubauen, indem du dich ein wenig einliest.

All die Lösungen im web sind Bastelprojekte und setzen meist auf linux-lastige Komponenten auf, oftmals Raspberries. Dazu kommt dann noch die Lesekopf-hardware und schon wird's bei der Fehlersuche komplex.

Dein Landis+Gyr E450 hat eine optische Schnittstelle nach IEC-62056-21, man braucht dafür einen Lesekopf (Hardware), der am Gerät montiert wird (typ. magnetisch), dann braucht man HW (oft ein Raspi), die das dort generierte elektrische Signal dekodiert und in ein Hintergrundsystem (Datenbank, z.B. influxdb) einspeist, von dort kann es visualisiert werden (z.B. grafana). Datenbank und grafana können am gleiche Raspi laufen, müssen aber nicht.

Ein erster Einstieg könnte

- https://blog.404.at/zaehlerwerte-vom-stromzaehler-ueber-d0-schnittstelle-iec-62056-21-auslesen/
- https://github.com/pwitab/iec62056-21

sein.

Ich selber habe keinen solchen Zähler, bei Fragen zu Linux und HW kann ich schon aushelfen, wenn du aber noch nie einen Raspi in der Hand hattest, wird das vermutlich eine never-ending-story.

1


Beitrag schreiben oder Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]


next