[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