[vz-dev] vzlogger, pull-sequenz fuer Landis+Gir (ZMD120APTCS G03) (was: Re: Feedback benötigt: vzlogger / aggregation / random meter / sml-pull / s0-meter)

Thorben Thuermer r00t at constancy.org
Fri Sep 27 08:03:16 CEST 2013


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.

zunaechst einmal, bitte fuer ein neues thema eine neue mail verfassen,
statt auf eine andere zu antworten.
(wenn auch in diesen fall nicht voellig unpassend)

> > 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)

> **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.

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.)

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.

> Viele Grüße
> Karlheinz

- Thorben


More information about the volkszaehler-dev mailing list