[vz-users] shell-hack zum zaehler auslesen

Thorben Thuermer r00t at constancy.org
Thu Jan 10 23:29:34 CET 2013


On Thu, 10 Jan 2013 23:14:10 +0100
dl4huf <dl4huf at t-online.de> wrote:
> Ein Script mit dem Inhalt
> > ( sleep 1 ; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB1 ) &
> > data=$(timeout 15 cat /dev/ttyUSB1)
> > echo $data
> liefert :
> > root at raspberrypi:~# bash test5
> >  !.8.0(006209.3*kWh)
> > root at raspberrypi:~#
> 
> Da fehlt also etliches, warum auch immer.
> Es ist zwar hier gerade die wichtige Zeile drin, aber es gibt 2 Zähler 
> und der andere hat 2 wichtige Zeilen.

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


> Ich vermute irgendwelche grundsätzlich Problem mit den Leseköpfen bzw 
> dem Treiber bei mir. Es sind "USB Serial cp210x". Auf einem Testsystem 
> mit einem FT232R und einer "normalen" seriellen Gegenstelle habe ich 
> SOLCHE Problem nicht.

den vermeintlichen datenverlust?
oder das haengen von 'cat'?
nun, warum sollte cat auf einer seriellen schnittstelle sich jemals beenden...
(ausser wenn ueber die (nicht angeschlossene) steuerleitung ein hangup
 signalisiert wird)

> Z.Z. habe ich noch ein Perl-Script von hier 
> http://knx-user-forum.de/225383-post148.html so angepasst das es mir die 
> Daten ausgibt und
> ich dann ein Shell-Script habe wo ich filtere (da ich kein Perl kann)
> und mit vzclient dann weg senden.

diese loesung funktioniert also schon?

> Ich hatte gehofft mit einem "einfachen" Shell-Script das abzufackeln, 
> das ich dann per cron jede Minute aufrufe.
> 
> Der Zähler (ein Itron ACE3000 Typ 260) läuft übrigens mit 300Baud 7E1 only !
> Die 300Baud habe ich in den vzlogger-C einbauen können aber trotzdem 
> sehe ich nicht das da Zeichen eingelesen werden.
> Mal sehen ob ich Debug-Ausgaben hin kriege.

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
...

> Gruß Ronald

- Thorben


More information about the volkszaehler-users mailing list