Hallo miteinander,
im Download-Bereich gibt es nun den LBS 19000149 V1.2, um einen Landis & Gyr Zähler via IR-Lesekopf von Volkzähler.org auszulesen.
Die Besonderheit des Bausteines ist, dass er diese Abfrage via ssh auf einer anderen Maschine durchführen kann, da es mit den aktuellen Versionen des IR-Lesekopfes von Volkszähler.org unter CentOS6.5 Probleme mit der Erkennung des Lesekopfes gibt.
Der Doku-Text:
Der Baustein erzeugt beim ersten Aufruf die beiden Shell-Scripte /usr/local/edomi/main/LB_LBSID_vzGetData.sh
und /usr/local/edomi/main/LB_LBSID_callVzGetData.sh. Das call-Script wird verwendet, um das get-Script aufzurufen. Wird E5 auf 1 gesetzt, also die ssh-Variante verwendet, ist einmalig folgendes zu tun:
Sollte das Schlüsselpaar nicht mit dem Default-Namen id_rsa angelegt worden sein, muss dessen Name in LB_LBSID_callVzGetData.sh natürlich ebenfalls angepasst werden.
Hinweis 2:
Sollte sich das Device des Lesekopfes ändern und es wird die SSH-Variante des Bausteines verwendet, dann muss das neue Device im Script auf der Remote-Maschine angepasst werden! Am einfachsten geht das, indem das lokale Script gelöscht und in E3 das neue Device eingetragen wird. Der LBS generiert daraufhin das Script neu, welches dann lediglich mit identischen Rechten auf die Remote-Maschine kopiert werden muss.
Viel Spass mit dem Baustein und immer her mit dem Feedback!
im Download-Bereich gibt es nun den LBS 19000149 V1.2, um einen Landis & Gyr Zähler via IR-Lesekopf von Volkzähler.org auszulesen.
Die Besonderheit des Bausteines ist, dass er diese Abfrage via ssh auf einer anderen Maschine durchführen kann, da es mit den aktuellen Versionen des IR-Lesekopfes von Volkszähler.org unter CentOS6.5 Probleme mit der Erkennung des Lesekopfes gibt.
Der Doku-Text:
Dieser Baustein liest via Volkszaehler IR-USB-Lesekopf die Daten eines Landis & Gyr E350
Zaehlers aus. Die entsprechenden Shellscripte /usr/local/edomi/main/LB_LBSID_vzGetData.sh
und /usr/local/edomi/main/LB_LBSID_callVzGetData.sh werden beim ersten Ausfuehren des
Bausteines automatisch erzeugt.
Es gibt Varianten der IR-Lesekoepfe welche unter CentOS 6.5 nicht korrekt erkannt werden.
Aus diesem Grund bietet der Baustein die Moeglichkeit, die Abfrage via ssh auf einem anderen
Linux-Rechner durchzufuehren, welcher den Lesekopf korrekt erkennt. Dazu sind die folgenden
Schritte notwendig:
- E15 auf 1 setzen
- Baustein einmalig triggern
- Das erzeugte Caller-Script LB_LBSID_callVzGetData.sh mit der IP der Remote-Maschine anpassen
- Das erzeugte Abfrage-Script LB_LBSID_vzGetData.sh auf die Remote-Maschine kopieren und mit
Execute-Rechten versehen (chmod +x /home/edomi/LB_LBSID_vzGetData.sh)
- Key-Login von der Edomi-Maschine auf die Remote-Maschine einrichten
E1: Debug-Modus de-/aktivieren. Default: 0 (aus)
E2: Trigger des Bausteines.
E3: Zu verwendendes Device, i.d.R. /dev/ttyUSB0.
E4: Zu verwendende Baudrate, Default 300. Wird aktuell nicht verwendet!
E5: Abfragescript lokal (0) oder via ssh (1) ausfuehren. Wird hier ssh gewaehlt, muss
der ssh-Login eingerichtet und die IP der Remote-Maschine im Caller-Script eingetragen werden.
E6-E15: Auszulesende Werte 1-10. Hier muss der entsprechende Schluessel, also der Wert vor der
Klammer angegeben werden. Der Output des E350 Zaehlers sieht bspw. so aus:
<li>/LGZ4ZMF100AC.M27 - Herstellerkennung</li>
<li>F.F(00) - Fehlercode</li>
<li>0.0( 6909) - Zaehlernummer</li>
<li>C.1.0(15257077) - Identification number 2.1</li>
<li>C.1.1( ) - Identification number 2.2</li>
<li>1.8.1(013518.301*kWh) - Hochtarif, bzw. einziger Tarif: Zaehlerstand
Energielieferung
</li>
<li>1.8.2(022253.319*kWh) - Niedertarif: Zaehlerstand Energielieferung</li>
<li>2.8.1(000000.001*kWh) - Hochtarif, bzw. einziger Tarif: Zaehlerstand
Energieeinspeisung
</li>
<li>2.8.2(000000.000*kWh) - Niedertarif: Zaehlerstand Energieeinspeisung</li>
<li>1.8.0(035771.620*kWh) - Summe Zaehlerstand Energielieferung</li>
<li>2.8.0(000000.001*kWh) - Summe Zaehlerstand Energieeinspeisung</li>
<li>15.8.0(035771.622*kWh) - Summe Energie gesamt</li>
<li>C.7.0(0010) - Number of phase fails L1..L3</li>
<li>32.7(234*V) - Spannung L1</li>
<li>52.7(231*V) - Spannung L2</li>
<li>72.7(231*V) - Spannung L3</li>
<li>31.7(00.481*A) - Strom L1</li>
<li>51.7(002.85*A) - Strom L2</li>
<li>71.7(004.57*A) - Strom L3</li>
<li>82.8.1(0005) - ?</li>
<li>82.8.2(0000) - ?</li>
<li>0.2.0(M27) - Software ID</li>
<li>C.5.0(0421) - Internal operating state</li>
<li>! - Endesequenz</li>
A1: Herstellerkennung
A2: Fehlercode
A3: Zaehlernummer
A4: Das Gesamtresultat der Abfrage. Zeilen jeweils separiert durch "|".
A6-A15: Abgefragte Werte analog zu E6-E15
Changelog:
1.2 (2017-05-30)
- Debug-Output korrigiert.
1.1 (2016-12-30)
- Dateiname der Logs korrigiert: LandisGyrAuslesen_LBS19000149_<id>
1.0 (2016-11-19)
- Initiale Version
Zaehlers aus. Die entsprechenden Shellscripte /usr/local/edomi/main/LB_LBSID_vzGetData.sh
und /usr/local/edomi/main/LB_LBSID_callVzGetData.sh werden beim ersten Ausfuehren des
Bausteines automatisch erzeugt.
Es gibt Varianten der IR-Lesekoepfe welche unter CentOS 6.5 nicht korrekt erkannt werden.
Aus diesem Grund bietet der Baustein die Moeglichkeit, die Abfrage via ssh auf einem anderen
Linux-Rechner durchzufuehren, welcher den Lesekopf korrekt erkennt. Dazu sind die folgenden
Schritte notwendig:
- E15 auf 1 setzen
- Baustein einmalig triggern
- Das erzeugte Caller-Script LB_LBSID_callVzGetData.sh mit der IP der Remote-Maschine anpassen
- Das erzeugte Abfrage-Script LB_LBSID_vzGetData.sh auf die Remote-Maschine kopieren und mit
Execute-Rechten versehen (chmod +x /home/edomi/LB_LBSID_vzGetData.sh)
- Key-Login von der Edomi-Maschine auf die Remote-Maschine einrichten
E1: Debug-Modus de-/aktivieren. Default: 0 (aus)
E2: Trigger des Bausteines.
E3: Zu verwendendes Device, i.d.R. /dev/ttyUSB0.
E4: Zu verwendende Baudrate, Default 300. Wird aktuell nicht verwendet!
E5: Abfragescript lokal (0) oder via ssh (1) ausfuehren. Wird hier ssh gewaehlt, muss
der ssh-Login eingerichtet und die IP der Remote-Maschine im Caller-Script eingetragen werden.
E6-E15: Auszulesende Werte 1-10. Hier muss der entsprechende Schluessel, also der Wert vor der
Klammer angegeben werden. Der Output des E350 Zaehlers sieht bspw. so aus:
<li>/LGZ4ZMF100AC.M27 - Herstellerkennung</li>
<li>F.F(00) - Fehlercode</li>
<li>0.0( 6909) - Zaehlernummer</li>
<li>C.1.0(15257077) - Identification number 2.1</li>
<li>C.1.1( ) - Identification number 2.2</li>
<li>1.8.1(013518.301*kWh) - Hochtarif, bzw. einziger Tarif: Zaehlerstand
Energielieferung
</li>
<li>1.8.2(022253.319*kWh) - Niedertarif: Zaehlerstand Energielieferung</li>
<li>2.8.1(000000.001*kWh) - Hochtarif, bzw. einziger Tarif: Zaehlerstand
Energieeinspeisung
</li>
<li>2.8.2(000000.000*kWh) - Niedertarif: Zaehlerstand Energieeinspeisung</li>
<li>1.8.0(035771.620*kWh) - Summe Zaehlerstand Energielieferung</li>
<li>2.8.0(000000.001*kWh) - Summe Zaehlerstand Energieeinspeisung</li>
<li>15.8.0(035771.622*kWh) - Summe Energie gesamt</li>
<li>C.7.0(0010) - Number of phase fails L1..L3</li>
<li>32.7(234*V) - Spannung L1</li>
<li>52.7(231*V) - Spannung L2</li>
<li>72.7(231*V) - Spannung L3</li>
<li>31.7(00.481*A) - Strom L1</li>
<li>51.7(002.85*A) - Strom L2</li>
<li>71.7(004.57*A) - Strom L3</li>
<li>82.8.1(0005) - ?</li>
<li>82.8.2(0000) - ?</li>
<li>0.2.0(M27) - Software ID</li>
<li>C.5.0(0421) - Internal operating state</li>
<li>! - Endesequenz</li>
A1: Herstellerkennung
A2: Fehlercode
A3: Zaehlernummer
A4: Das Gesamtresultat der Abfrage. Zeilen jeweils separiert durch "|".
A6-A15: Abgefragte Werte analog zu E6-E15
Changelog:
1.2 (2017-05-30)
- Debug-Output korrigiert.
1.1 (2016-12-30)
- Dateiname der Logs korrigiert: LandisGyrAuslesen_LBS19000149_<id>
1.0 (2016-11-19)
- Initiale Version
Der Baustein erzeugt beim ersten Aufruf die beiden Shell-Scripte /usr/local/edomi/main/LB_LBSID_vzGetData.sh
und /usr/local/edomi/main/LB_LBSID_callVzGetData.sh. Das call-Script wird verwendet, um das get-Script aufzurufen. Wird E5 auf 1 gesetzt, also die ssh-Variante verwendet, ist einmalig folgendes zu tun:
- Auf der Remote-Maschine einen User edomi anlegen
- Das erzeugte Script /usr/local/edomi/main/LB_LBSID_vzGetData.sh auf die Remote-Maschine nach /home/edomi/LB_LBSID_vzGetData.sh kopieren
- Script ggf. ausführbar machen:
Code:# [I]chmod +x /home/edomi/LB_LBSID_vzGetData.sh[/I]
- Das Script sollte sich direkt auf der Remote-Maschine nun bereits ausführen lassen und alle gelesenen Werte auf der Konsole ausgeben:
Code:# /home/edomi/LB_LBSID_vzGetData.sh
- ssh-Login von der Edomi-Maschine auf die Remote-Maschine einrichten
- ssh-keygen auf edomi-Maschine,
- kein Passwort für den erzeugten Schlüssel vergeben
- public-Key auf der Remote-Maschine in die Datei /home/edomi/.ssh/authorized_keys einfügen, ggf. Rechte setzen:
Code:# [I]chmod 644 /home/edomi/.ssh/authorized_keys[/I]
- ssh-Login von der edomi-Maschine auf die Remote-Maschine sollte nun bereits funktionieren:
Code:[I]ssh edomi@<ip-remote-maschine>[/I]
- IP der Remote-Maschine in /usr/local/edomi/main/LB_LBSID_callVzGetData.sh eintragen
- Nun sollte sich "/usr/local/edomi/main/LB_LBSID_callVzGetData.sh 1" aufrufen lassen, den Zähler via ssh-Tunnel auslesen und die Werte auf der Konsole ausgeben.
Sollte das Schlüsselpaar nicht mit dem Default-Namen id_rsa angelegt worden sein, muss dessen Name in LB_LBSID_callVzGetData.sh natürlich ebenfalls angepasst werden.
Hinweis 2:
Sollte sich das Device des Lesekopfes ändern und es wird die SSH-Variante des Bausteines verwendet, dann muss das neue Device im Script auf der Remote-Maschine angepasst werden! Am einfachsten geht das, indem das lokale Script gelöscht und in E3 das neue Device eingetragen wird. Der LBS generiert daraufhin das Script neu, welches dann lediglich mit identischen Rechten auf die Remote-Maschine kopiert werden muss.
Viel Spass mit dem Baustein und immer her mit dem Feedback!

Kommentar