[vz-dev] Feedback benötigt: vzlogger / aggregation / random meter / sml-pull / s0-meter

Karlheinz karlheinz.es at gmx.de
Thu Sep 26 22:42:22 CEST 2013


Hallo,

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:
 >"enabled" : true,
<------>"protocol" : "d0",
<------>"baudrate" : 300,
<------>"device" : "/dev/ttyAMA0",
<------>"parity" : "7E1",
  <--->"pullseq" : "2f3f210d0a", // HEX Darstellung der Pullsequenz
<------>"interval" : 5, // Wartezeit bis zum nächsten Pull

Bislang kommt immer folgendes bei vzlogger -f:
...
[Sep 26 22:05:00][mtr1] Meter connection established
[Sep 26 22:05:00][mtr1] Meter thread started
[Sep 26 22:05:00][mtr1] meter is opened. Start channels.
[Sep 26 22:05:00][http] Starting local interface HTTPd on port 8080
[Sep 26 22:05:00][]     Startup done.
[Sep 26 22:05:00][mtr1] Number of readers: 32
[Sep 26 22:05:00][mtr1] Config.daemon: 1
[Sep 26 22:05:00][mtr1] Config.local: 1
[Sep 26 22:05:00][d0]   sending pullsequenz send (len:22 is:22).
[Sep 26 22:05:00][d0]   Something unexpected happened: read:336!
[Sep 26 22:05:00][mtr1] Got 0 new readings from meter:
[Sep 26 22:05:00][mtr1] Next reading in 5 seconds

Im Beitrag 
http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260
habe ich das Shellscript gefunden und gekürzt:

#!/bin/bash

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

while read -t8 line                                         # warten auf die Zaehlerausgabe
do                                                          # Bestaetigung nach dem Wecken nicht notwendig
   echo $line
done < /dev/ttyAMA0

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

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

Jetzt erhalte ich die Zählerwerte:
/?!

/LGZ52ZMD120APt.G03
F.F(00000000)
0.0.0( 26781!
2.8.1(013723.9*kWh)
2.8.2(000000.0*kWh)
1.8.0(010098.3*kWh)
2.8.0(013723.9*kWh)
!

*1. Was initialisiert stty im Gegensatz zum vzlogger anders? Wenn das 
geklärt ist, sollte zumindest kein Fehler 336 mehr kommen.**
**2. Könnte man einen weiteren Parameter, der nach der pullsequenz eine 
zweite Sequenz (acksequenz) sendet, einbauen?**
*
Viele Grüße

Karlheinz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20130926/778ac6fc/attachment.html>


More information about the volkszaehler-dev mailing list