Ankündigung
Einklappen
Keine Ankündigung bisher.
Auslesen eines EHZ-Zählers
Einklappen
X
-
Hi,
ich hatte unter CentOS 6 genau das gleiche Problem: Habe es ums verrecken nicht hinbekommen, dass der USB-Lesekopf erkannt wird. Aus diesem Grund hat der Landis&Gyr-LBS auch die Funktionalität, diese Abfrage via ssh auf einer anderen Maschine zu machen.
Bei mir lief dann einfach neben der CentOS6-VM von Edomi noch ein aktuelles System, bei dem die Erkennung problemlos funktionierte.
Seitdem meine Edomi-Instanz aber in den LXC-Container gewandert ist, ist das bei mir auch nicht mehr notwendig.Kind regards,
Yves
Kommentar
-
Hallo Michael,
Sorry das ich erst jetzt schreibe.
bei mir ist es letztendlich auch noch daran gescheitert, dass mein Zähler auch keine Daten ausgegeben hat.
Laut Info EVU kann dieser Zähler nicht über die optische Schnittstelle Daten ausgeben. In 4 Jahren wenn mein eHz Zähler getauscht wird, werde ich mein Glück noch einmal versuchen. War ein Versuch Wert!
Kommentar
-
Hallo Michael,
wie gesagt ich konnte es ja nicht testen, da mein Zähler Iskra MT681 keine Daten ausgegeben hat.
Was ich aber festgestellt habe, dass der usb Optokopf beim einstecken unter /dev/ kein ttyUSB Verzeichnis angelegt hat, sondern nur eine Datei mit dem gleichen Namen. Leider konnte ich es wie vorher schon erwähnt nicht weiter testen.
Habe es vorher noch mit Programmen wie hercules_3-2-8 oder emlog der Fa. Weidmann probiert, aber ohne Erfolg.
Was ich auch noch gelesen habe dass manche Zähler mit einem Hex Code aktiviert werden müssen um Daten auszugeben
siehe Info hierzu https://knx-user-forum.de/forum/%C3%...no-und-ir-auge.
Sorry das ich dir hier nicht weiterhelfen kann, hätte es auch gerne hinbekommen.
Gruß
Kommentar
-
Zitat von NorbertB Beitrag anzeigenIch versuche einen Easymeter Q3D auszulesen.
Auf OS-Ebene sehe ich auch bereits die Werte. Alle 2 Sekunden sendet er:
Code:
[root@edomi ~]# cat /dev/lesekopf0 /ESY5Q3DA1004 V3.04 1-0:0.0.0*255(0273160282481) 1-0:1.8.0*255(00013075.0001293*kWh) 1-0:21.7.0*255(000335.97*W) 1-0:41.7.0*255(000118.15*W) 1-0:61.7.0*255(000016.73*W) 1-0:1.7.0*255(000470.85*W) 1-0:96.5.5*255(80) 0-0:96.1.255*255(1ESY1160282481)
Code:▒▒SY5▒3DA▒00▒▒V3.0▒▒ ▒ ▒-0:0.0.0▒▒55(▒▒0▒6▒▒▒ ▒-0:▒.▒.0▒▒55(0005▒▒09.3▒3▒393▒▒▒詍 ▒-0:▒▒.▒.0▒▒55(0000▒▒.60▒ש▒ ▒-0:▒▒.▒.0▒▒55(000366.0▒▒ש▒ ▒-0:6▒.▒.0▒▒55(000▒03.3▒▒ש▒ ▒-0:▒.▒.0▒▒55(00▒▒5▒.05▒ש▒ ▒-0:96.5.5▒▒55(▒0▒▒ 0-0:96.▒.▒55▒▒55(▒▒SY▒▒6005▒▒▒9▒▒
Woran könnte das liegen?
Auf dem Edomi System habe ich es jetzt soweit das ich den Kopf über # lsusb sehe.
Es ist das einzige angeschlossene USB Device. Allerdings legt er immer noch kein Verzeichnis an.
Fehlermeldung: cat: /dev/ttyUSB0: Datei oder Verzeichnis nicht gefunden
Jetzt geht es ins Bett...
Kommentar
-
Hallo miteinander,
wie kommt ihr denn darauf, dass das ein Verzeichnis sein soll, was da unterhalb von /dev/ entsteht? Alles was sich da /dev/tty* nennt, sind Dateien vom Typ c, sog. Character Device Files. Diese kann man aber auch nicht einfach so mit cat ausgeben.
Um auf diesen Typ Device zuzugreifen, wird i.d.R. stty mit einem Sack voll Parameter verwendet. Im Landis&Gyr-LBS sieht das so aus:
Code:#!/bin/bash stty 300 -F /dev/ttyUSB0 1:4:da7:a30:3:1c:7f:15:4:10:0: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 echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB0 & while read -t8 line ; do echo "$line" done < /dev/ttyUSB0 echo -e "\x06\x30\x30\x30\x0d\x0a" > /dev/ttyUSB0 & while read -t8 line ; do echo "$line" done < /dev/ttyUSB0
Nur mal so als Idee...Kind regards,
Yves
Kommentar
-
Ich habe heute den defekten USB Treiber wieder ausgetauscht Die Prozedur muss man ja bei jedem Update von Edomi wiederholen.
Der Volkszähler Lesekopf sendet darauf wieder lustig die Daten von meinem ISKRA MT681 Zähler.
ISKRA.jpeg
Der Treiber in CentOS6.5 für den Volkszaehler.org USB Lesekopf ist defekt.Muss ersetzt werden.
Die funktionierende Treiberdatei findet ihr hier:
https://knx-user-forum.de/forum/proj...824#post945824
1. Die alte Datei /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko irgendwo sichern.
2. Die neue Treiberdatei cp210x.ko nach /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko kopieren.
3. Den USB-IR-Lesekopf abziehen.
4. Edomi pausieren....
5. In Putty eingeben: ( Putty rechte Maustaste zum einfügen des Textes)
lsmod | grep cp210x (Ergebnis muss leer sein, ansonsten ist schon ein Treiber geladen)
sudo rmmod cp210x
sudo modprobe cp210x
lsmod | grep cp210x (Es muss jetzt der geladene Treiber dort stehen cp210x und usb serial)
insmod /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko" ausführen.
6. Den USB-IR-Lesekopf anschließen
7. In Putty eingeben: ( Putty rechte Maustaste zum einfügen des Textes)
stty -F /dev/lesekopf0 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
8. Edomi starten....
lese1.jpg
E1: 1-0:1.8.0*255
E2: 1-0:16.7.0*255
E3: 1-0:36.7.0*255
E4: 1-0:56.7.0*255
E5: 1-0:76.7.0*255
E7: /dev/lesekopf0Zuletzt geändert von Robby; 11.04.2020, 10:07.
Kommentar
-
Hallo,
vielen Dank für den Tipp mit dem Treiber.
Bei mir kommt folgendes Ergebnis bei den Eingaben:
Code:[root@edomi ~]# lsmod | grep cp210x [root@edomi ~]# sudo rmmod cp210x ERROR: Module cp210x does not exist in /proc/modules [root@edomi ~]# sudo modprobe cp210x [root@edomi ~]# lsmod | grep cp210x cp210x 14525 0 usbserial 38445 1 cp210x [root@edomi ~]# insmod /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko insmod: error inserting '/lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko': -1 File exists
Wenn ich die Schnittstelle parametriert habe, dann müsste ich über Cat /dev/ttyUSB0 aber schon alles richtig angezeigt bekommen, oder?
Mein Zähler ist übrigens der Q3DA1002
Die Schnittstelle wird wie folgt eingestellt.
Code:stty -F /dev/ttyUSB0 9600 -parodd cs7 -cstopb parenb -ixoff -crtscts -hupcl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echoctl -echoke
Alle Daten werden jetzt schön angezeigt. Wäre natürlich super wenn ich das noch direkt am Server hinbekommen würde.Zuletzt geändert von Michael85; 11.04.2020, 23:33.
Kommentar
-
Anscheinend hakt es ja hier:- Den USB-IR-Lesekopf abziehen.
- Anschließend "rmmod cp210x" und "insmod /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko" ausführen.
Frage an die Experten: muss die neue ko Datei schon ins Zielverzeichnis? Oder kann/sollte man insmod cp210x.ko zB im Home Verzeichnis ausführen und die Datei wird an die richtige Stelle kopiert?
Ich fass das bei mir nicht mehr an, wenn ich das lese ;-)
Kommentar
-
Hallo,
so lange ich das auf dem Edomi-Server nicht ans laufen bekomme, möchte ich gerne die Daten vom Raspberry per UDP an Edomi senden.
Soweit klappen die ersten Versuche auch. Da der Zähler aber alle paar Sekunden Daten raus haut wollte ich das ganze etwas entlasten.
Jetzt habe ich mich Versucht das PHP-Script was ich von Jonofe gefunden habe etwas anzupassen. Und zwar sollte es für 8Sekunden laufen und Daten senden.
Und dann für 120Sekunden pausieren. Allerdings klappt das mit dem Pausieren nicht so ganz.
Könnte jemand von euch mal einen Blick drüber werfen?
Code:<?php $time_start = 0; if ($time_start = 0) { $time = microtime(); $time_end = $time + 8000; $time_start = 1; } $handle = @fopen("/dev/ttyUSB0", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { echo $buffer; $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); $msg = $buffer; $len = strlen($msg); socket_sendto($sock, $msg, $len, 0, '192.168.1.36', 4210); socket_close($sock); } if (!feof($handle)) { echo "Error: unexpected fgets() fail\n"; } fclose($handle); if ($time_end == microtime()){ sleep(120); $time_start = 0; } } ?>
Ist es auch möglich aus dem PHP Code die Schnittstelle passend einzustellen. So würde diese nach dem Neustart vom Raspberry sich nicht verstellen.-> Dieses Problem konnte ich schon lösen.
Gruß und Frohe Ostern
Kommentar
-
Ich habe mir den Baustein von jonofe für den Easymeter jetzt so abgeändert das dieser nur noch den String den ich per UDP vom Pi bekomme aufschlüsselt und ausgibt.
Wäre es ok wenn ich diesen in DL-Bereich hochlade? Oder soll ich dir Andre den Code zukommen lassen damit du diesen bei dir mit rein nimmst? Zu 99% ist der Code ja von dir.
Könnte mir einer auf mein Problem aus #101 vielleicht noch einen Tipp geben?
Gruß Michael
Kommentar
-
Zitat von Michael85 Beitrag anzeigenWäre es ok wenn ich diesen in DL-Bereich hochlade? Oder soll ich dir Andre den Code zukommen lassen damit du diesen bei dir mit rein nimmst? Zu 99% ist der Code ja von dir.
Ist es für einen anderen Zähler? Ist es reduzierter oder anderer Funktionsumfang?
Wenn es Sinn macht das in den bestehenden LBS zu integrieren, dann sollte das auf jeden Fall gemacht werden.
Schick mir den Code am besten einfach mal zu.
Kommentar
Kommentar