Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19000149 - Landis & Gyr E350 auslesen

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

    #76
    Hallo Falk,

    nunja, ganz so trivial ist das nicht, da das dann auch bei der ssh-Variante funktionieren muss. Ich denk mal drüber nach...
    Kind regards,
    Yves

    Kommentar


      #77
      Hey cool,

      du bist ja richtig schnell beim Antworten ;-)

      In deinem 2. Shell-Script sieht man ja den "Remote-Aufruf" via SSH
      Code:
      ssh -i /root/.ssh/id_rsa edomi@<ip-of-remote-machine> /home/edomi/LB_19000149_vzGetData.sh
      Gemäss https://unix.stackexchange.com/quest...er-value/43141 müsste der Scriptaufruf dann so aussehen
      Code:
      ssh -i /root/.ssh/id_rsa edomi@<ip-of-remote-machine> [COLOR=#c0392b]"[/COLOR]/home/edomi/LB_19000149_vzGetData.sh[COLOR=#c0392b] $VARIABLE"[/COLOR]
      Sollte also gehen ... muss man aber sicher testen ...

      Gruss

      fasi

      PS: habe grade noch eine kleinen Typo in deiner Hilfe zum LBS gefunden ...

      Code:
      - [COLOR=#c0392b]E15[/COLOR] auf 1 setzen
      soll vermutlich sein
      Code:
      - [COLOR=#c0392b]E5[/COLOR] auf 1 setzen
      Zuletzt geändert von fasi; 21.10.2020, 21:56.

      Kommentar


        #78
        starwarsfan

        So, jetzt habe ich es mir selbst zusammengestrickt ... hat aufgrund meines fehlenden Know-How halt gedauert, aber jetzt tut es ... glaube ich

        Folgende Änderungen waren nötig:

        in "19000149_lbs.php"
        Code:
        $output = exec("$vzCallerScript " . $E[5]['value'], $result, $returnCode);
        habe ich ersetzt durch
        Code:
        $ssh = $E[5]['value'];
        $usbDevice = $E[3]['value'];
        $output = exec("$vzCallerScript " . "$ssh $usbDevice", $result, $returnCode);
        meine "LB_19000149_callVzGetData.sh" sieht jetzt so aus
        Code:
        #!/bin/bash
        if [ -n "$1" -a "$1" = "1" ] ; then
        ssh -i /root/.ssh/id_rsa edomi@<ip-of-remote-machine> /home/edomi/LB_LBSID_vzGetData.sh $2
        else
        /usr/local/edomi/main/LB_19000149_vzGetData.sh $2
        fi
        hier habe ich die 2. Variable $2 einfach angehängt

        und meine "LB_19000149_vzGetData.sh" sieh jetzt so aus
        Code:
        #!/bin/bash
        stty 300 -F $1 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 -n -e "\x2f\x3f\x21\x0d\x0a" > $1 &
        while read -t8 line ; do
        echo "$line"
        done < $1
        echo -n -e "\x06\x30\x30\x30\x0d\x0a" > $1 &
        while read -t8 line ; do
        echo "$line"
        done < $1
        hier habe ich die durch die Initialisierung "hardcoded" Schnittstelle "einfach" durch die Variable "$1" ersetzt.

        Bei mir sieht das jetzt gut aus, mit Debug = 1 kann man jetzt die ausgelesenen Variablen pro Zähler sehen.

        ToDo für eine neue Version wäre jetzt (wenn du möchtest):
        • Anpassung der Initialisierungsfunktionen für "LB_19000149_vzGetData.sh" & "LB_19000149_callVzGetData.sh"
        • auf diese Weise könnte man vermutlich auch IP|Hostname des Remote-Devices an "LB_19000149_callVzGetData.sh" erledigen
        Ich werde jetzt mal beobachten, ob das auch stabil läuft ...

        Gruss

        fasi

        Kommentar


          #79
          Und hier jetzt ein erstes Feedback: Es läuft, weitgehend stabil, weitgehend ...
          Allerdings finde ich in unregelmässigen Abständen folgende Log-Einträge:

          Code:
           [TABLE="class: log, border: 1, cellpadding: 1, cellspacing: 0"]
           	 		[TR]
           			[TD]2020-10-26 20:35:17[/TD]
           			[TD]949848[/TD]
           			[TD]21169[/TD]
           			[TD]ERROR:[/TD]
           			[TD]Something went wrong during script execution. Return value was 0.[/TD]
           		[/TR]
           		[TR]
           			[TD]2020-10-26 20:35:17[/TD]
           			[TD]950577[/TD]
           			[TD]21169[/TD]
           			[TD]ERROR:[/TD]
           			[TD]Full result of query was: '/LGZ4ZMF100AC.M29|F.F(00)|0.0( 5553)|C.1.0(38895295)|C.1.1( )|1.8.1(004878.609*kWh)|1.8.2(012063.945*kWh)|2.8. 1(000000.000*kWh)|2.8.2(000000.000*kWh)|1.8.0(0169 42.554*kWh)|2.8.0(000000.000*kWh)|15.8.0(016942.55 4*kWh)|C.7.0(0005)|32.7(233*V)|52.7(232*V)|72.7(23 4*V)|31.7(00.307*A)|51.7(00.008*A)|71.7(00.000*A)| 82.8.1(0001)|82.8.2(0000)|0.2.0(M29)|C.5.0(0601)|! |'[/TD]
           		[/TR]
           		[TR]
           		[/TR]
           	 [/TABLE]
          Ich habe ebenfalls einen 5-min Trigger verwendet ... stundenlang ist alles i.O., dann kann es auch mal zwei Fehlermeldungen innerhalb einer halben Stunde geben und dann ist wieder stundenlang alles in Butter ... bei beiden Zählern und auch nicht zwangsläufig bei beiden gleichzeitig ...

          Das Ergebnis (Full Result) sieht für mich eigentlich gut aus ... ich kann keinen Fehler erkennen und frage mich jetzt:
          • ein Problem mit dem Zähler-Output?
          • ein Problem mit den IR-Köpfen?
          • ein Problem mit meiner Modifikation?
          • ein Problem mit dem LBS?
          • ein Problem mit Edomi?
          Vor allem fehlt mir irgendwie der Vergleich zu einem "Full Result", wenn es keinen Fehler gibt.

          Gruss

          fasi

          PS: Das LBS läuft immer noch im Debug-Modus ...
          Zuletzt geändert von fasi; 26.10.2020, 21:18.

          Kommentar


            #80
            Zitat von fasi Beitrag anzeigen
            unregelmässigen Abständen folgende Log-Einträge:
            Die Fehler habe ich auch bei mir, im Schnitt ca 1F/h bei 5min Trigger

            Habe den Lesekopf aber per RS232 direkt am Server.
            Bis jetzt hats mich nicht gestört, da zur Auswertung für mich irrelevant. Aber ev kann Yves etwas dazu sagen?

            Kommentar


              #81
              mmarkus

              Na das ist doch mal 'ne Aussage ... da spar ich mir "vorerst" das testen mit dem Original. Sieht ja zumindestens erstmal danach aus, dass diese Fehler nicht an meiner unprofessionellen "Werkelei" liegen, sondern sich wo anders verstecken.

              Bei mir gehen die LeseKöpfe mit USB direkt an Edomi ... also RS232 via USB ... aber das wird's ja wohl auch nicht sein.

              Ob's mich stören wird, weiss ich grad noch nicht ... vllt. muss man den Fehler irgendwie noch abfangen, damit er keine seltsamen Outputs in der Visu erzeugt. Grundsätzlich versuche ich halt schon eher Fehler auszumerzen als Sie zu zu ignorieren/akzeptieren ...

              Danke & Gruss

              fasi

              Kommentar


                #82
                Zitat von fasi Beitrag anzeigen
                Das Ergebnis (Full Result) sieht für mich eigentlich gut aus ... ich kann keinen Fehler erkennen und frage mich jetzt:
                • ein Problem mit dem Zähler-Output?
                • ein Problem mit den IR-Köpfen?
                • ein Problem mit meiner Modifikation?
                • ein Problem mit dem LBS?
                • ein Problem mit Edomi?
                Vor allem fehlt mir irgendwie der Vergleich zu einem "Full Result", wenn es keinen Fehler gibt.
                Mir sind diese Fehler auch aufgefallen.
                Gibt es dazu noch irgendwelche Erkenntisse? Es wäre nützlich zu wissen, an welcher "Stellschraube" man drehen muss, um das zu verbessern.

                Gruß -mfd-
                KNX-UF-IconSet since 2011

                Kommentar


                  #83
                  Hallo miteinander,

                  bei mir läuft der LBS seit Jahren ohne Probleme. Früher via SSH und seitdem ich Edomi im LXC-Container habe, direkt via durchgereichtem USB. Ich habe gerade keine Idee, woran es liegen könnte. Vor allem, wenn es sowohl bei der Abfrage via SSH und auch per direkter USB-Connection auftritt. Oder habe ich das falsch verstanden?
                  Kind regards,
                  Yves

                  Kommentar


                    #84
                    Hier ist die Anbindung per RS232->USB in den EDOMI-Rechner. Bei fasi und mmarkus offenbar auch direkt mit RS232.

                    In meinem Fall sind noch andere Geräte (z.B. KWL) per RS232-> USB angebunden, die keine Auffälligkeiten zeigen. Deshalb schließe ich EDOMI/USB/RS232 eher aus. Vielleicht liegt das Problem auch am Lesekopf oder der Kabelstrecke vom Lesekopf zum RS232-Konverter...

                    Gibt es Erfahrungen zu den Leseköpfen, ob es da Unterschiede bzgl. Lesequalität und Kompatibilität zu den verschieden Zählern gibt?
                    Gruß -mfd-
                    KNX-UF-IconSet since 2011

                    Kommentar


                      #85
                      Wäre es möglich, einen RS232 - TCP Umsetzer wie bspw. einen Moxa zur Anbindung an den LBS zu nutzen?
                      Bei ähnlichen Bausteinen die eine RS232 Schnittstelle erwarten ist das gelegentlich implementiert.

                      Bspw.: 19000429, 19000680, 19001494

                      Es würde mich sehr freuen, wenn das klappen würde.
                      Gruß -mfd-
                      KNX-UF-IconSet since 2011

                      Kommentar


                        #86
                        Hi Marco,

                        der Baustein hat mit RS232 nichts am Hut, da er ein USB-Device anbindet. Von daher nützt Dir da ein RS232-TCP-Umsetzer wohl eher nicht viel. Oder anders gefragt, wie genau taucht denn dann der USB-Lesekopf im System auf?
                        Kind regards,
                        Yves

                        Kommentar


                          #87
                          Hallo Yves,
                          Die Geräte haben ja nativ meist eine TTL oder RS232 Schnittstelle. Das trifft ja auch auf die Volkszähler Platinen in der einfachen Form zu. Dass das heutzutage bei den meisten Rechnern per USB angebunden wird ist klar. Die Alternative wäre, ein Gerät wie z.B. einen MOXA Nport 5110A zu verwenden. Ähnliche Geräte gibt es auch von anderen Herstellern, auch mit mehreren Eingängen, galvanischer Trennung usw. Das sollte auch (vor allem) für virtualisierte EDOMI-Systeme einige Vorteile bringen.

                          Beim oben verlinkten LBS 19000680 sollte das im Quellcode deutlich werden. Es ist dann sowohl die Nutzung eines USB-Anschlusses, als auch eines RS232-TCP Umsetzers (MOXA) möglich.

                          Bisher bin ich davon ausgegangen, dass die Kommunikation mit den eHZ ja auch auf serieller Basis funktioniert. Ob jetzt ein USB-Wandler oder etwas anderes dahinter hängt dürfte doch dann unerheblich sein. Oder verstehe ich das falsch?

                          Gruß -mfd-
                          KNX-UF-IconSet since 2011

                          Kommentar


                            #88
                            Servus Yves,

                            vielen Dank für den Baustein, behebt bei mir auch das Problem, dass bei mir Edomi noch unter 6.5 läuft und es somit der Lesekopf nicht tut.
                            Dein Baustein funktioniert auch bis zu einem Punkt, evtl. hast Du dazu eine Idee. Ich habe einen "dummen" Pafal Zähler, dieser kann nur Name und Zählerstand ausgeben. Über die Konsole geht das auch, wenn ich auf dem USB Anschluss horche. Er gibt mit Deinem Script aber nur den Namen aus, nicht aber den Zählerstand.
                            Die echo Aufrufen passen, denn wie gesagt per Konsole geht es. Das einzige was mir eingefallen ist, es müssen ja beide Befehle innerhalb von 2 Sekunden abgesetzt werden, dass per bash jeder der Befehle aus Subprozess läuft?
                            Hier mein Testscript dazu:

                            Code:
                            #!/bin/bash
                            stty -F /dev/ttyUSB0 300 -parodd cs7 -cstopb parenb -ixoff -crtscts -hupcl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echoctl -echoke
                            echo -e -n "\x2F\x3F\x21\x0D\x0A" > /dev/ttyUSB0 &
                            while read -t8 line ; do
                            echo "$line"
                            done < /dev/ttyUSB0
                            
                            echo -e -n "\x06\x30\x30\x30\x0D\x0A" > /dev/ttyUSB0 &
                            while read -t8 line ; do
                            echo "$line"
                            done < /dev/ttyUSB0
                            Und die Ausgabe per Konsole dazu
                            Code:
                            [root@localhost ~]# cat /dev/ttyUSB0
                            /PAF5EC3gr00006
                            
                            0.0.0(71700683)
                            
                            0.0.1(PAF)
                            
                            F.F(00)
                            
                            0.2.0(1.27)
                            
                            1.8.1*00(014612.73)
                            
                            1.8.2*00(014752.45)
                            
                            C.2.1(000000000000)( )
                            
                            0.2.2(:::::G11)!
                            Mir fehlt da ein Schubs um meinen geistigen Knoten zu lösen.

                            Gruß
                            Jens

                            Kommentar


                              #89
                              Hallo und guten Abend

                              Naja, das ist ein ganz anderer Zähler, da passt vermutlich die Aufbereitung der Daten nicht zusammen. Was bekommst Du denn in A4?
                              Kind regards,
                              Yves

                              Kommentar


                                #90
                                Hallo mfd

                                Sorry für die späte Antwort, ist mir wieder all durchgerutscht.

                                Zitat von mfd Beitrag anzeigen
                                Ob jetzt ein USB-Wandler oder etwas anderes dahinter hängt dürfte doch dann unerheblich sein. Oder verstehe ich das falsch?
                                Ja das mag ja alles sein, die Tücke liegt aber bei all dem seriellen Gedöns, wie immer, im Detail. Da muss nur an der richtigen Stelle ein einziges Zeichen anders sein und das ganze Ergebnis ist Crap.

                                Da ich a) keine entsprechenden Geräte habe und b) noch viel weniger die notwendige Zeit, wird sich an dieser Stelle eher nicht viel tun. ​​​​​​​
                                Kind regards,
                                Yves

                                Kommentar

                                Lädt...
                                X