Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

/dev/ttyUSB0 auslesen und immer nur die letzte Ausgabe abspeichern

153 views
Skip to first unread message

Horst Felder

unread,
Apr 6, 2012, 10:38:35 AM4/6/12
to
Hallo!

Ich habe ein Gerät (ELV USB-WDE1), welches alle paar Minuten
automatisch Daten an die Schnittstelle sendet.

-----------------------------hier-bitte-abbeißen-----------------------
#!/bin/bash

stty -F /dev/ttyUSB0 9600 cs8 raw -cstopb -parity -icanon -hupcl min
0 time 10

tail -f /dev/ttyUSB0 > wetteraktuell.txt
-----------------------------hier-bitte-abbeißen-----------------------

Eine einzelne Ausgabe sieht so aus:
$1;1;;;9,7;9,4;;16,3;;;;;;;;75;;;;15,2;42;0,0;5;0;0

Das obige Script macht das schon ganz gut, aber ich möchte nicht das
die einzelnen Ausgaben an die Datei dran gehangen werden, sondern die
Datei soll jedes mal überschrieben werden. So das immer nur die
letzte Ausgabe in der Datei "wetteraktuell.txt" steht. Ich dachte
eigentlich das ein ">" dies bewirken sollte, wird aber vermutlich
durch die Option "-f" von tail verhindert...

Kann mir jemand einen Tipp geben, wie ich mein Ziel möglichst einfach
in einer bash verwirklichen kann?

--
Mit freundlichen Grüßen
Horst Felder - www.flohheim.de
GNU/Linux; damit ich auch morgen noch vernünftig arbeiten kann!

Stefan Reuther

unread,
Apr 6, 2012, 12:29:45 PM4/6/12
to
Horst Felder wrote:
> tail -f /dev/ttyUSB0 > wetteraktuell.txt
[...]
> Das obige Script macht das schon ganz gut, aber ich möchte nicht das
> die einzelnen Ausgaben an die Datei dran gehangen werden, sondern die
> Datei soll jedes mal überschrieben werden. So das immer nur die
> letzte Ausgabe in der Datei "wetteraktuell.txt" steht. Ich dachte
> eigentlich das ein ">" dies bewirken sollte, wird aber vermutlich
> durch die Option "-f" von tail verhindert...

">" löscht die Datei einmal. Du willst sie aber quasi nach jeder Zeile
löschen. Da würde ich mit
while read -r a; do
echo "$a" > wetteraktuell.txt
done < /dev/ttyUSB0
anfangen.


Stefan

Horst Felder

unread,
Apr 7, 2012, 3:48:00 AM4/7/12
to
Hallo Stefan!

Stefan Reuther <stefa...@arcor.de> schrieb:
> ">" löscht die Datei einmal. Du willst sie aber quasi nach jeder
> Zeile löschen. Da würde ich mit
> while read -r a; do
> echo "$a" > wetteraktuell.txt
> done < /dev/ttyUSB0
> anfangen.

Füße küss'... :)

> Stefan

Gernot Zander

unread,
Apr 7, 2012, 4:20:19 AM4/7/12
to
Hi,

ich würde da gleich den Aufruf für rrdtool hinzufügen, dann wird
der Datensatz gleich eingecheckt, ohne dass man noch das Textfile
mit wieder einem anderen Programm überwachen muss. Vorausgesetzt,
du machst das damit. (Ich hab das - auch für das ELV-Ding - in C
gemacht, aber es sieht so schrecklich aus, dass ich es hier nicht
posten möchte, und ich habe im Moment auch nur einen Sensor dran.)

in de.comp.os.unix.shell Horst Felder <bimme...@flohheim.de> wrote:

> Stefan Reuther <stefa...@arcor.de> schrieb:
> > ">" löscht die Datei einmal. Du willst sie aber quasi nach jeder
> > Zeile löschen. Da würde ich mit
> > while read -r a; do
> > echo "$a" > wetteraktuell.txt
rufe/parste für rrdtool ....
> > done < /dev/ttyUSB0
> > anfangen.

mfg.
Gernot

--
<hi...@gmx.de> (Gernot Zander) *Keine Mailkopien bitte!*
Dieser Artikel enthält die im Header angegebene Menge Müll (X-M) und
Quoting (X-Q). Zu Risiken und Nebenwirkungen fragen Sie ihren Admin
oder den Dana-Moderator.

Horst Felder

unread,
Apr 7, 2012, 8:12:29 AM4/7/12
to
Hallo Gernot!

hi...@gmx.de (Gernot Zander) schrieb:
> ich würde da gleich den Aufruf für rrdtool hinzufügen

Danke für den Tipp! Das ist auch in der engeren Wahl, wenn ich das in
Zukunft auf einem eigenen kleinen Server laufen lasse (wenn ich mal
einen Raspberry Pi oder so was erwische).

Im Augenblick habe ich aber den PC nicht immer an und möchte
nur die aktuellen Daten gerne auf meine interne HTML-Wetterseite
ausgeben.

Momentan knabbere ich daran, meinen "wetteraktuell.txt" möglichst
einfach auf meine interne Webseite zu bekommen (beides auf dem selben
System).

> mfg.
> Gernot
0 new messages