[vz-dev] vzlogger, pull-sequenz fuer Landis+Gir (ZMD120APTCS G03)

Karlheinz karlheinz.es at gmx.de
Fri Sep 27 22:31:29 CEST 2013


Datum: Freitag, 27. September 2013 08:03:16

> On Thu, 26 Sep 2013 22:42:22 +0200 Karlheinz <karlheinz.es at gmx.de>
> wrote:
>> wie bekomme ich meinen Landis+Gir Zähler (ZMD120APTCS G03) dazu,
>> vzlogger zu antworten?
>> Ich benutze den IR-Schreib-Lesekopf von Udo.
>>> Die config sieht ok aus. (wenn deine Zähler auf 7E1 300 Baud und die
>>> Sequenz "/?!<CR><LF>" reagiert )
>> Auszug aus vzlogger.conf:
>> <------>"protocol" : "d0",
>> <------>"parity" : "7E1",
>>    <--->"pullseq" : "2f3f210d0a", // HEX Darstellung der Pullsequenz
>>
>> Bislang kommt immer folgendes bei vzlogger -f:
>> [Sep 26 22:05:00][d0]   sending pullsequenz send (len:22 is:22).
>> [Sep 26 22:05:00][d0]   Something unexpected happened: read:336!
> das ist eine leider arg nichtssagende meldung,
> die bedeutet, dass vzlogger ein byte von der schnittstelle gelesen hat,
> mit dem er nichts anfangen konnte.
> (ich hatte da schon mehrmals nachgebessert, ist wohl aber irgendwie
>   wieder rausgeflogen.)
> ich vermute aenderungen sind nicht nur beim senden der pull-sequenz,
> sondern auch beim parsen der antwort noetig.
>
>> Im Beitrag
>> http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260
>> habe ich das Shellscript gefunden und gekürzt:
>> # Init tty
>> stty -F /dev/ttyAMA0 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
>>
>> ( sleep 1 ; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB0 ) &
>> Damit kommt zumindest schon eine Antwort:
>> /?!
>> /LGZ52ZMD120APt.G03
>>
>> Erst mit einer weiteren Sequenz  liefert der Zähler seine Daten ab:
>> ( sleep 1 ; echo -e
>> "\x2F\x3F\x21\x0D\x0A\x00\x00\x00\x00\x00\x00\x00\x06\x30\x30\x30\x0D\x0A"
>>   > /dev/ttyAMA0 ) & # bedeutet:/?! CR LF NUL NUL NUL NUL NUL NUL ACK 0 0
>> 0 CR LF
>> #das geht auch: ( sleep 1 ; echo -e
>> "\x2f\x41\x43\x45\x30\x5c\x33\x6b\x32\x36\x30\x56\x30\x31\x2e\x31\x38" >
>> /dev/ttyAMA0 ) & # bedeutet: /ACE0\3k260V01.18
>> Jetzt erhalte ich die Zählerwerte:
> [...]
>
>> *1. Was initialisiert stty im Gegensatz zum vzlogger anders? Wenn das
>> geklärt ist, sollte zumindest kein Fehler 336 mehr kommen.**
> nachdem vzlogger lief mit stty die einstellungen auslesen und
> vergleichen.
> aus man stty:
>         -a, --all
>                print all current settings in human-readable form
>         -g, --save
>                print all current settings in a stty-readable form
> (so entstand auch der lange hex-string im stty-aufruf)
die Ausgabe von stty -a in einer parallelen Session, während und nachdem 
vzlogger lief ist identisch.
>> **2. Könnte man einen weiteren Parameter, der nach der pullsequenz eine
>> zweite Sequenz (acksequenz) sendet, einbauen?**
> dass wir das pullsequez feature ueberhaupt haben ist schon sehr neu
> (credits an peter evertz!)
> leider scheint es dann viele zaehler mit recht speziellen anforderungen
> zu geben, wie deinen zB..
> sowohl bei den request-sequenzen, als auch anforderungen an das timing.
> das alles allgemein und konfigurierbar umzusetzen wird wohl so
> kurzfristig nichts, insbesondere da das testen schwer ist, ohne die
> hardware (zaehler) vor ort zu haben.
Wenn jemand helfen möchte, gebe ich gern ssh - Zugangsdaten bekannt.
>
> ich wuerde als einfacheren ansatz erstmal die alte methode vorschlagen,
> waehrend vzlogger laeuft die sequenzen mit einem script zu senden.
> (oder alternativ komplett ein zaehler-spezifisches script statt
>   vzlogger zu verwenden.)
während vzlogger -f alle 5 Sekunden läuft habe ich /dev/ttyAMA0 ausgelesen:
#!/bin/bash

while read -t8 line
do
   echo $line
done < /dev/ttyAMA0

Dabei werden alle Zählerstände angezeigt! Dann liegt es wohl eher am 
parsen der Antwort  - wie du vermutet hast. Manchmal schnappt vzlogger 
irgend etwas auf:
Read package with 0 tuples (vendor=1:51][m!r1], baudrate=, identification=2)
Kann es sein, dass vzlogger nicht lange genug auf eine Antwort wartet? 
Gibt es dazu noch vzlogger-Parameter?

>
> oder aber du nimmst dir den C-code von vzlogger, und versuchst zB
> erstmal eine version hinzubekommen, die mit deinem zaehler funktioniert,
> so dass man das spaeter vlt. integrieren kann.
Meine C-Kenntnisse sind genau so gut wie PHP - das wird also schwierig :-(
>> Viele Grüße
>> Karlheinz
> - Thorben
>
Karlheinz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20130927/b5d5c650/attachment.html>


More information about the volkszaehler-dev mailing list