Ankündigung

Einklappen
Keine Ankündigung bisher.

Auslesen eines EHZ-Zählers

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #91
    Hmm, keiner eine Idee? Habt ihr drei hier aufgegeben? Oder seid ihr etwas weiter gekommen? Ich bin im Moment dabei den Umweg über den Pi zu versuchen aber direkt wäre natürlich schöner...

    BadWicky Guess1988 und St3v3a3

    Kommentar


      #92
      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


        #93
        Hmm, danke für deine Rückmeldung. Ja, hier ziehen auch die Stunden ins Land. Vor allem wenn man nicht so Linux fit ist.

        NorbertB : Ich habe gesehen das du genau den gleichen Zähler am Start hast wie ich. Läuft das bei dir unter CentOS 6.5?
        Hättest du eventuell einen Tipp auf Lager?

        Kommentar


          #94
          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


            #95
            Aber hast du es denn hinbekommen das dein Lesekopf erkannt wird?

            Kommentar


              #96
              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


                #97
                Zitat von NorbertB Beitrag anzeigen
                Ich 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)
                Ich habe es jetzt so gelöst das ich den Kopf an einen Raspberry angeschlossen habe. Ich habe genau den gleichen Easymeter und hatte gehofft das gleich wie NorbertB angezeigt zu bekommen wenn ich cat /dev/ttyUSB0 eingebe. Bei mir sieht es aber wie folgt aus:

                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▒▒
                Man kann erkennen das es das gleiche werden sollte. Sieht aber so aus als wenn es geschwärzt worden ist

                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...
                Zuletzt geändert von Michael85; 09.04.2020, 23:07. Grund: Erweiterung vom Beitrag

                Kommentar


                  #98
                  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
                  Speichert das doch mal in einer Datei wie bspw. vzGetData.sh, macht diese ausführbar und schaut was dabei "raus" kommt.

                  Nur mal so als Idee...
                  Kind regards,
                  Yves

                  Kommentar


                    #99
                    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/lesekopf0
                    Zuletzt geändert von Robby; 11.04.2020, 10:07.

                    Kommentar


                      ...und noch eine UDEV Regel anlegen, wie hier beschrieben, damit der Lesekopf immer als /dev/lesekopf0 angelegt wird.

                      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
                        So läuft es leider noch nicht.

                        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
                        Auf dem Raspberry klappt das auch mit einer angelegten test.php datei.
                        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:
                          1. Den USB-IR-Lesekopf abziehen.
                          2. Anschließend "rmmod cp210x" und "insmod /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/usb/serial/cp210x.ko" ausführen.
                          „Leider“ läuft es bei mir seit drei Jahren und ich habe keine anderen Aufzeichnungen mehr. Im Verzeichnis habe ich noch eine cp210x.ko.bak - habe die alte Datei also umbenannt.

                          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;
                            }
                            
                            }
                            
                            
                            ?>
                            Wahrscheinlich ist es deutlich einfacher zu lösen.

                            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
                            Zuletzt geändert von Michael85; 13.04.2020, 08:33. Grund: Einen Teil schon gelöst.

                            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 anzeigen
                                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.
                                Kannst du mal genauer erklären, was jetzt der Unterschied ist?
                                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

                                Lädt...
                                X