[vz-users] shell-hack zum zaehler auslesen
dl4huf
dl4huf at t-online.de
Fri Jan 11 21:12:40 CET 2013
Hallo Thorben
Danke für deine Mühe.
Das die Daten komplett sind hatte ich dann noch raus bekommen in dem ich
sie in eine Datei geleitet hatte. Da kommt übrigens sowohl CR und LF vom
Zähler.
Irgendwo geht das LF aber scheinbar verloren und mit dem "tr .." wird
aus den verbliebenen CR wieder ein LF.
> 0000000: 2f3f 210d 0a0a 2f41 4345 305c 336b 3236 /?!.../ACE0\3k26
> 0000010: 3056 3031 2e31 380d 0a02 462e 4628 3030 0V01.18...F.F(00
> 0000020: 290d 0a43 2e31 2833 3738 3131 3630 3034 )..C.1(378116004
> 0000030: 3420 2020 2020 2029 0d0a 432e 352e 3028 4 )..C.5.0(
> 0000040: 3032 290d 0a31 2e38 2e30 2830 3030 3030 02)..1.8.0(00000
> 0000050: 302e 302a 6b57 6829 0d0a 322e 382e 3028 0.0*kWh)..2.8.0(
> 0000060: 3030 3632 3136 2e32 2a6b 5768 290d 0a21 006216.2*kWh)..!
> 0000070: 0d0a 031d
Am 10.01.2013 23:29, schrieb Thorben Thuermer:
> nein, die daten sind komplett!
> allerdings stehen an den zeilenenden nur carriage returns und keine
> linefeeds,
> damit wird bei der ausgabe mit 'echo' alles auf eine zeile geschrieben,
> und die zeilen ueberschreiben sich gegenseitig..
>
> versuche mal:
> data="$(echo "$data" | tr \\r \\n)"
> echo $data
>
>
> den vermeintlichen datenverlust?
> oder das haengen von 'cat'?
Ich meine das es mit "read" nicht geht und das man den Aufweckstring
senden muss NACHDEM die Schnittstelle lesen geöffnet wurde.
> nun, warum sollte cat auf einer seriellen schnittstelle sich jemals beenden...
Das war mir eigentlich klar, darum wundere ich mich ja wie das in dem
Script von Taki funktioiert.
> (ausser wenn ueber die (nicht angeschlossene) steuerleitung ein hangup
> signalisiert wird)
Ich glaube nicht das da bei Taki was in der Richtung kommt, denn dort
sind ja auch IR-Leseköpfe dran.
Könnte nur noch was in den Daten kommen die das Ende bewirken.
Und noch verwirrender ist, das es heute geht !!
> ( sleep 1 ; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB1 ) &
> data=$(cat /dev/ttyUSB1 )
> data="$(echo "$data" | tr \\r \\n)"
> echo $data
liefert :
> root at raspberrypi:~# bash test5
> /?! /ACE0\3k260V01.18 F.F(00) C.1(3781160044 ) C.5.0(02) 1.8.0(000000.0*kWh) 2.8.0(006216.2*kWh) !
und beendet sich.
>
> diese loesung funktioniert also schon?
ja, aber eben sehr unübersichtlich.
Ich möchte das besser machen und dann auch ins Wiki stellen.
Solche Zähler kommen ja bestimmt noch öfter vor.
>
> das ist recht sinnfrei.
> vzlogger sendet in keinem fall die anforderungs-sequenz.
>
> due koenntest hoechstens vzlogger laufen lassen, und parallel dazu
> ein shellscript das in regelmaessigen abstaenden...
> echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB1
Die Idee hatte ich so auch. Ich weiß nicht ob es so sinnfrei ist wenn
der vzlogger als universeller Reader für alle Zählertypen fungiert.
Wobei ich aber noch nicht weiß ob er mit der Ausgabe des Zähler schon
klar kommen würde. Der Zähler spricht wohl nach Protokoll IEC 62056-21 /
OBIS.
Das "Aufwecken" per Cron wäre simpel und ev. kann der vzlogger das
später auch mal selbst.
Gruß Ronald
More information about the volkszaehler-users
mailing list