|
|
||
Hallo! Ich wäre an einem Schnittstellenadapter interessiert, kann dir jedoch leider keine PN schreiben. LG Michael |
||
|
||
Hallo chrismo, hier gibt es dazu Erfahrungen und Preise: DIY Auslesen eines SmartMeter über lokale Kundenschnittstelle |
||
|
||
Hi, kannst mich gerne unter cnbnjn (at) gmail.com kontaktieren. lg chris |
||
|
||
hallo und guten morgen, ich bin durch zufall auf diesen post gestossen, da das genau das ist was ich bruache bzw. suche, hab einen Smartmeter und lese den mit dem TEKT5400S-ASZ und RPI aus, funkt auch schon so weit, ich bekomme daten - verschlüsselt, den schlüssel hab ich auch... hab jetzt den szreader installiert, die config entsprechend bearbeitet und dann das ganze ding mal per sudo python szreader.py gestartet und dann bekomm ich einen Fehler: Traceback (most recent call last): Fiel szreader.py", line8, in <module> from pathlib import Path Importerror: no Module named pathlib bin kein programmierer sonder nur ein bastler... versteh daher nicht recht wo das modul path herkommt...bzw wie ich diesen fehler berichtigen kann... hat jemand eine Lösung bzw auch diese Problem? danke für eure Hilfe! lg michl EDIT: hab das mit dem pathlib hinbekommen dafür bekomm ich jetzt einen anderen fehler: File szreader.py, line14 in module from management.Controller import Controller file /home/pi/szreader/management/controller.py line 64, def _source_callback(self, sender: iDataSource, data: str): invalid Syntax |
||
|
||
Probier mal: sudo python3 szreader.py (und falls du wieder Fehlermeldungen wegen fehlender Libs bekommst, dann die entsprechenden python3 Versionen installieren. Also statt sudo pip... sudo pip3 ...) |
||
|
||
Grundsätzlich ein Tipp: sudo chmod szreader.py 777 Und dann ./szreader.py Wenn du über ./ Das Skript ausführst nimmt er automatisch die richtige Python Version. Chmod setzt die Berechtigung für das Skript. 777 heißt jeder unser darf es bearbeiten ausführen und kopieren/löschen. Skript wenn nicht unbedingt notwendig nicht als su ausführen. Vor allem nicht wenn die Quelle auch nur ansatzweise nicht vertrauenswürdig ist. Wenn du es als su ausführst hat das Skript Zugriff auf alles was der su darf. Also wirklich alles. Mfg Peter |
||
|
||
hallo danke für die tips, das funkt soweit dass sich das script als service starten lässt, bekomme auch die mqtt meldung wenn das abbricht, aber sonst kommt da nix rein... kann ich irgendwie prüfen was der abfragt / ausgelesen bekommt? ich hab schon mit "cat /dev/ttyUSB0 | od -tx1" bzw. " hexdump -C /dev/ttyAMA0" bekomm ich einen haufen zahlen usw... aber was bekommt szreader? und die einstellungen stty -F /dev/ttyAMA0 9600 cs8 -parenb -ixon -cstopb -echo hab ich auch vorgenommen, also ich seh die daten halt nur verschlüsselt... und hab aber den schlüssel in der config hinterlegt... |
||
|
||
Was hast du in der Konfig als Parameter für die serielle Schnittstelle eingestellt (Pfad, Baud)? Hat der User, der das Skript ausführt, die Rechte, auf die serielle Schnittstelle zuzugreifen? Du kannst ja das szreader-Skript auch in eine lokale Datei schreiben lassen (habe vorne beschrieben, wie das geht). Das würde ich als erstes mal testen, bevor dann MQTT oder andere Datensenken probiert werden. |
||
|
||
Starte szreader mit -v DEBUG, dann siehst du im log mal etwas. Wenn du das gleich im service (systemd) testen möchtest: • sudo systemctl edit --full der_Name_des_services_das_szreader_aufruft • dort in ExecStart das -v DEBUG hinzufügen • speichern • sudo systemctl restart der_Name_des_services_das_szreader_aufruft • journalctl -u der_Name_des_services_das_szreader_aufruft -f dann solltest du sehen was szreader bekommt. Alle anderen Beiträge bleiben natürlich wahr: • besser vorher nicht als service testen (den aber abstellen 'systemctl stop ...') • Rechte des scripts prüfen --> plugdev group? Es wird nur das ausgeführt was im shebang steht. Wenn da /usr/bin/python (wie bei szreader) steht hast Pech gehabt |
||
|
||
sorry leute, ich komm da nicht weiter... ich hab hier einen link zur Log https://1drv.ms/u/s!AlnX2lcFBF9Oi9YaMWmAyMMF4hcvng?e=cENO5x ich bekomm da nix raus... wenn ich als erstes das " sudo stty -F /dev/ttyAMA0 1:0:8bd:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0" ausführe und danach die "cat /dev/tty... und hexdump" mache... sonst seh ich nur kaudawelsch... hab jetzt den dienst entfernt... und auch mqtt aus der config. aber die textdatei bleibt leer... ev. falsche endung??? .txt? leider bin ich da viel zu schwach was das programmieren und so anbelangt... es tut mir wirklich leid, eure zeit so sehr in anspruch zu nehmen.... dafür möcht ich mich recht herzlich bedanken! |
||
|
||
Laut deinem log bekommt szreader Daten von der seriellen, aber du hast das logging nicht auf DEBUG gestellt (so wie ich weiter oben geschrieben habe). Der Fehler sagt, dass der input nicht als XML geparst werden kann. Also nochmal: 1. den service ausschalten 2. szreader aus der shell direkt starten (so wie das im service file passiert), aber mit -v DEBUG 3. den output hier wieder reinstellen. Wenn ich keine Lust hätte zu schreiben, würd' ich's lassen |
||
|
||
hab das mal versucht also, das programm so gestartet wie im script nur mit -v DEBUG wie geschrieben, ein paar minuten laufen lassen und beendet... das einzige was sich geändert hat war die log. die hab ich wieder auf die drive gestellt .... https://1drv.ms/u/s!AlnX2lcFBF9Oi9YaMWmAyMMF4hcvng?e=Fgquoz off hab das richtige erwischt... danke nochmal sorry, bin manchmal etwas " auf der Leitung stehend".... |
||
|
||
Du stellst immer den ganzen log ein, es würde der letzte Versuch reichen Der log um 20:24 sagt, dass ein Fehler beim Dekodieren der Daten auftritt: 2022-04-24 20:24:32,935 - datasource.SerialDataSource - DEBUG - Starting serial connection... 2022-04-24 20:24:32,939 - datasource.SerialDataSource - DEBUG - Started serial connection 2022-04-24 20:24:32,943 - management.Controller - DEBUG - Sources started 2022-04-24 20:24:32,945 - datasource.TextFileDataSource - INFO - Got data: 00000000 e2 7c 00 66 ce ff 02 02 30 bd e6 c6 92 4c 47 10 |.|.f....0....LG.| 2022-04-24 20:24:32,947 - management.Controller - DEBUG - Got Data from source textin1 2022-04-24 20:24:32,948 - management.Decoder - DEBUG - Decrypting message "00000000 e2 7c 00 66 ce ff 02 02 30 bd e6 c6 92 4c 47 10 |.|.f....0....LG.|" with key "240F9EC06C0C28E56B20510ACBD80774" ... 2022-04-24 20:24:32,959 - management.Controller - ERROR - Error decoding data Also: 1. serielle Daten werden gelesen 2. die Daten werden dekodiert, der Schlüssel steht im Logfile 3. die Daten werden nicht vernünftig dekodiert 4. später werden wieder Daten gelesen und nach der Dekodierung kommt kein XML raus, der parser scheitert folglich Ich sehe folgende potentielle Fehler: 1. die Daten werden fehlerhaft eingelesen, ev. sind die Einstellungen wie baudrate, parity, handshake falsch (szreader lässt nur baudrate konfigurieren, deine hardware braucht ev. andere Einstellungen als 8n1 = 8bit, no parity, 1 stop bit) 2. der Schlüssel ist falsch, damit entsteht Mist nach der Dekodierung. Welche HW benutzt du an welchem Zähler? Ev. muss da noch ein Inverter rein? Einfach nur die IR-Empfänger an einem RPi pin? |
||
|
||
Ich habe nur mal kurz ins Log geschaut. Aber der Zähler liefert auf jeden Fall Daten (Nachrichten beginnen/enden immer richtig mit 7e), aber szreader kann diese nicht dekodieren. Da könnte die Entschlüsselung schief gehen. Vergleiche mal den Schlüssel, den du zugeschickt bekommen hast, mit dem, der in der Konfiguration eingetragen ist, evt. hast ihn falsch abgetippt. Du könnstest auch mal die empfangenen Daten aus dem Log zusammen mit deinem Schlüssel mit diesem Tool entschlüsseln lassen und schauen, ob da was richtiges rauskommt: https://www.photovoltaikforum.com/thread/139837-siemens-im350/?postID=2108785#post2108785 |
||
|
||
Ok, dann fällt Fehlermöglichkeit 1 aus --> Schlüssel. |
||
|
||
guten morgen, den schlüssel hab ich direkt vom smartmeter-portal kopiert... also ein falsch abtippen ist somit ziemlich ausgeschlossen... das tool hab ich probiert - alles was ich rausbekomme, wenn ich diese nachrichten eingebe zb. 7e0066ceff030230bde6e70092004c475a46620050ef4f000010d0558070ccce5064bd00f285493a1200806d71980c20f8c5918f08e64a7810ca8600abfd55400030229d73480832e65b4c60306ec1c21f0600d79444382070916d171044e0985c16c000384c838d7c7e ist mein decryption key... und der passt zu dem was ich da bekommen hab... aber ich nehm an dass ich diese tool sicher nicht richtig verwende... habs auch mit dem DLMS translator versucht, da passiert gar nix... langsam zweifel ich echt an mir selbst.. zur Hardware: ich hab nen pi-zero, direkt an den GPIOs nen TEKT5400S-ASZ inkl Pullup (glaub 3,3K oder 10k), die Anbindung ist per Ethernet (ENC28J60)... und halt den SZReader installiert (aber da hab ich mich ja auch schon wie der erste mensch angestellt .... ), Zähler ist ein Landis&GYR die konstellation hab ich in diversen foren gefungen... zu mind. das TEKT5400S weil zum BWdings040 hab ich keinen zugang... irgendwie komm ich da nicht weiter, verstehs aber nicht... sollte doch klappen.. in den anleitungen funktioniert das immer .. eigentlich möcht ich ja nur die Smartreader-Daten in mein Loxone reinbekommen ohne 100e € für irgendwelche zusätzliche hardware ausgeben zu müssen... |
||
|
||
Also ich mal szreader gecloned und deine Daten und deinen Schlüssel in decoder_test.py eingebaut und das wird definitiv nicht richtig dekodiert. Interessanterweise bekomme ich aus dem Decoder mit den Originaldaten (des Tests) und deinem Schlüssel zumindest XML raus, aber mit deinen Daten einfach nur einen Leerstring. Das lässt eher darauf schließen, dass doch etwas an den Daten nicht stimmt. Bisserl verreckt das Problem ... mir fällt jetzt gerade nichts mehr, was man tun könnte. Außer mit dem Oszi das Signal am GPIO-pin anschauen, ev. ist das vermurkst. |
||
|
||
also das übersteigt meine fähigkeiten bei weitem... 😰 scheinbar solls nicht sein.... |
||
|
||
guten morgen / Mahlzeit... scheinbar funktioniert das aber doch.... https://1drv.ms/u/s!AlnX2lcFBF9Oi9YcdqE1ZcAJ0zPwvA?e=dOLkze in der Textout.txt in wurde was geschrieben.... und im LOG in der zeile 166060 sieht man das auch.... oder seh ich das falsch? sorry weil das log so ewig lange ist, wollte nichts löschen sonst lösch vllt. zu viel... |
||
|
||
Ja, lt. Log hat das 1x funktioniert, während der Aufzeichnung. D.h. der Schlüssel muss passen. Wenn du ein: "tail -f textout.txt" machst, siehst du, wenn Daten geschrieben werden. Das sollte dann ca. jede Sekunde passieren. Tut es das, oder nur selten? |
||
|
||
hallo, mit tail seh ich gar nix, hab jetzt mal den textout gelöscht und wenn ich den szreader manuell per "sudo python3 szreader.py &" starte kommt immer wieder zwischendurch Wrong CRC... sonst wird nix geschrieben... auch die textout.txt wird nicht größer, musste die manuell anlegen weil gar nix passiert... braucht die spezielle chmod? 666? |
||
|
||
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??? |
Beitrag schreiben oder Werbung ausblenden?
Einloggen
Kostenlos registrieren [Mehr Infos]