<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body smarttemplateinserted="true" text="#000000" bgcolor="#FFFFFF">
<div id="smartTemplate4-template"><br>
Datum: Freitag, 27. September 2013 08:03:16 </div>
<br>
<blockquote
cite="mid:20130927080316.f64440514774ad23ea86ff49@constancy.org"
type="cite">
<pre wrap="">On Thu, 26 Sep 2013 22:42:22 +0200 Karlheinz <a class="moz-txt-link-rfc2396E" href="mailto:karlheinz.es@gmx.de"><karlheinz.es@gmx.de></a>
wrote:
</pre>
<blockquote type="cite">
<pre wrap="">wie bekomme ich meinen Landis+Gir Zähler (ZMD120APTCS G03) dazu,
vzlogger zu antworten?
Ich benutze den IR-Schreib-Lesekopf von Udo.
</pre>
</blockquote>
<pre wrap="">
</pre>
<blockquote type="cite">
<blockquote type="cite">
<pre wrap="">Die config sieht ok aus. (wenn deine Zähler auf 7E1 300 Baud und die
Sequenz "/?!<CR><LF>" reagiert )
</pre>
</blockquote>
<pre wrap="">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!
</pre>
</blockquote>
<pre wrap="">
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.
</pre>
<blockquote type="cite">
<pre wrap="">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>
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:
</pre>
</blockquote>
<pre wrap="">[...]
</pre>
<blockquote type="cite">
<pre wrap="">*1. Was initialisiert stty im Gegensatz zum vzlogger anders? Wenn das
geklärt ist, sollte zumindest kein Fehler 336 mehr kommen.**
</pre>
</blockquote>
<pre wrap="">
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)
</pre>
</blockquote>
die Ausgabe von stty -a in einer parallelen Session, während und
nachdem vzlogger lief ist identisch.<br>
<blockquote
cite="mid:20130927080316.f64440514774ad23ea86ff49@constancy.org"
type="cite">
<pre wrap="">
</pre>
<blockquote type="cite">
<pre wrap="">**2. Könnte man einen weiteren Parameter, der nach der pullsequenz eine
zweite Sequenz (acksequenz) sendet, einbauen?**
</pre>
</blockquote>
<pre wrap="">
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.</pre>
</blockquote>
Wenn jemand helfen möchte, gebe ich gern ssh - Zugangsdaten bekannt.<br>
<blockquote
cite="mid:20130927080316.f64440514774ad23ea86ff49@constancy.org"
type="cite">
<pre wrap="">
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.)</pre>
</blockquote>
während vzlogger -f alle 5 Sekunden läuft habe ich /dev/ttyAMA0
ausgelesen:<br>
<font face="Courier New, Courier, monospace">#!/bin/bash<br>
<br>
while read -t8 line<br>
do<br>
echo $line<br>
done < /dev/ttyAMA0<br>
</font><br>
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: <br>
<font face="Courier New, Courier, monospace">Read package with 0
tuples (vendor=1:51][m!r1], baudrate=, identification=2)</font><br>
Kann es sein, dass vzlogger nicht lange genug auf eine Antwort
wartet? Gibt es dazu noch vzlogger-Parameter?<br>
<br>
<blockquote
cite="mid:20130927080316.f64440514774ad23ea86ff49@constancy.org"
type="cite">
<pre wrap="">
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.
</pre>
</blockquote>
Meine C-Kenntnisse sind genau so gut wie PHP - das wird also
schwierig :-(<br>
<blockquote
cite="mid:20130927080316.f64440514774ad23ea86ff49@constancy.org"
type="cite">
<pre wrap="">
</pre>
<blockquote type="cite">
<pre wrap="">Viele Grüße
Karlheinz
</pre>
</blockquote>
<pre wrap="">
- Thorben
</pre>
</blockquote>
Karlheinz<br>
</body>
</html>