<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
</head>
<body smarttemplateinserted="true" text="#000000" bgcolor="#FFFFFF">
<tt>Hallo,<br>
<br>
wie bekomme ich meinen Landis+Gir Zähler (</tt><tt>ZMD120APTCS
G03) dazu, vzlogger zu antworten?<br>
Ich benutze den IR-Schreib-Lesekopf von Udo.<br>
<br>
</tt>
<blockquote type="cite"><tt>Die config sieht ok aus. (wenn deine
Zähler auf 7E1 300 Baud und die </tt><tt>Sequenz
"/?!<CR><LF>" reagiert )</tt><br>
</blockquote>
<font face="Courier New, Courier, monospace">Auszug aus
vzlogger.conf:<br>
>"enabled" : true,<br>
<------>"protocol" : "d0",<br>
<------>"baudrate" : 300,<br>
<------>"device" : "/dev/ttyAMA0",<br>
<------>"parity" : "7E1",<br>
<--->"pullseq" : "2f3f210d0a", // HEX Darstellung der
Pullsequenz<br>
<------>"interval" : 5, // Wartezeit bis zum nächsten Pull</font><br>
<br>
Bislang kommt immer folgendes bei vzlogger -f:<br>
<font face="Courier New, Courier, monospace">...<br>
[Sep 26 22:05:00][mtr1] Meter connection established<br>
[Sep 26 22:05:00][mtr1] Meter thread started<br>
[Sep 26 22:05:00][mtr1] meter is opened. Start channels.<br>
[Sep 26 22:05:00][http] Starting local interface HTTPd on port
8080<br>
[Sep 26 22:05:00][] Startup done.<br>
[Sep 26 22:05:00][mtr1] Number of readers: 32<br>
[Sep 26 22:05:00][mtr1] Config.daemon: 1<br>
[Sep 26 22:05:00][mtr1] Config.local: 1<br>
[Sep 26 22:05:00][d0] sending pullsequenz send (len:22 is:22).<br>
[Sep 26 22:05:00][d0] Something unexpected happened: read:336!<br>
[Sep 26 22:05:00][mtr1] Got 0 new readings from meter:<br>
[Sep 26 22:05:00][mtr1] Next reading in 5 seconds<br>
<br>
</font>Im Beitrag
<a class="moz-txt-link-freetext" href="http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260">http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260</a><br>
habe ich das Shellscript gefunden und gekürzt: <br>
<pre class="code">#!/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
</pre>
Damit kommt zumindest schon eine Antwort:<br>
/<font face="Courier New, Courier, monospace">?!<br>
<br>
/LGZ52ZMD120APt.G03</font><br>
<br>
Erst mit einer weiteren Sequenz liefert der Zähler seine Daten ab:<br>
<font face="Courier New, Courier, monospace">( sleep 1 ; echo -e
"\x2F\x3F\x21\x0D\x0A\x00\x00\x00\x00\x00\x00\x00\x06\x30\x30\x30\x0D\x0A"
> /dev/ttyAMA0 ) & #</font> <font face="Courier New,
Courier, monospace">bedeutet:/?! CR LF NUL NUL NUL NUL NUL NUL ACK
0 0 0 CR LF <br>
#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 <br>
<br>
while read -t8 line <br>
do <br>
echo $line<br>
done < /dev/ttyAMA0<br>
</font><br>
Jetzt erhalte ich die Zählerwerte:<br>
<font face="Courier New, Courier, monospace">/?!<br>
<br>
/LGZ52ZMD120APt.G03<br>
F.F(00000000)<br>
0.0.0( 26781!<br>
2.8.1(013723.9*kWh)<br>
2.8.2(000000.0*kWh)<br>
1.8.0(010098.3*kWh)<br>
2.8.0(013723.9*kWh)<br>
!</font><br>
<br>
<b>1. Was initialisiert stty im Gegensatz zum vzlogger anders? Wenn
das geklärt ist, sollte zumindest kein Fehler 336 mehr kommen.</b><b><br>
</b><b>2. Könnte man einen weiteren Parameter, der nach der
pullsequenz eine zweite Sequenz (acksequenz) sendet, einbauen?</b><b><br>
</b><br>
Viele Grüße<br>
<br>
Karlheinz<br>
</body>
</html>