Hallo zusammen,
jetzt probiere ich schon drei Tage hier rum, meinen Arduino via Seriell->USB an der DS211j auszulesen und die Werte dann in eine rrdtool-DB zu bekommen und dann auch noch alle 15 min. die Graphen erzeugen zu lassen.
Die ersten Hürden sind genommen, ich bekomme die Daten vom Arduino (Luftfeuchte, Temp und Taupunkt im Keller) via USB2Seriell rein und kann sie auslesen und in einer rrdtool-DB speichern.
Ich kann auch manuell die Grafiken erzeugen. D.h. im Prinzip klappt alles, ABER: nicht automatisch. Nur manuell.
Meine Ziele sind:
1.) Das get_data.sh Skript beim Systemstart zu starten und dann soll es laufen und laufen und laufen und laufen.
1a.) Wenn es mal nicht läuft, soll es sich selbst wieder starten.
2.) Alle 15 Minuten soll das Skript make_graph.sh ausgeführt werden und die Bilder neu erstellen und in zwei Verzeichnisse kopieren.
Die Skripte sind fertig und laufen auch, wenn man es manuell startet.
Was habe ich bisher versucht:
1.) Das get_data.sh Skript habe ich in /etc/rc.local eingetragen. In verschiedenen Varianten, mal mit nohup und &, mal mit screen, mal nur das Skript selber.
---> Ergebnis: Es wird nach einem Reboot nicht gestartet.
2.) Ich habe das Skript make_graph.sh in die /etc/crontab eingetragen, so dass es alle 15 Min. ausgeführt wird. Wird es aber nicht. Es passiert einfach gar nix.
Was mach ich falsch, wie kann man es besser machen.
Hier mal alle meine Dateien, damit evtl. der Fehler leichter zu finden ist:
/etc/crontab:
/etc/rc.local:
get_data.sh Skript:
make_graph.sh Skript:
Woran hakt's? Kann mir bitte jemand helfen?
Danke!
jetzt probiere ich schon drei Tage hier rum, meinen Arduino via Seriell->USB an der DS211j auszulesen und die Werte dann in eine rrdtool-DB zu bekommen und dann auch noch alle 15 min. die Graphen erzeugen zu lassen.
Die ersten Hürden sind genommen, ich bekomme die Daten vom Arduino (Luftfeuchte, Temp und Taupunkt im Keller) via USB2Seriell rein und kann sie auslesen und in einer rrdtool-DB speichern.
Ich kann auch manuell die Grafiken erzeugen. D.h. im Prinzip klappt alles, ABER: nicht automatisch. Nur manuell.
Meine Ziele sind:
1.) Das get_data.sh Skript beim Systemstart zu starten und dann soll es laufen und laufen und laufen und laufen.
1a.) Wenn es mal nicht läuft, soll es sich selbst wieder starten.
2.) Alle 15 Minuten soll das Skript make_graph.sh ausgeführt werden und die Bilder neu erstellen und in zwei Verzeichnisse kopieren.
Die Skripte sind fertig und laufen auch, wenn man es manuell startet.
Was habe ich bisher versucht:
1.) Das get_data.sh Skript habe ich in /etc/rc.local eingetragen. In verschiedenen Varianten, mal mit nohup und &, mal mit screen, mal nur das Skript selber.
---> Ergebnis: Es wird nach einem Reboot nicht gestartet.
2.) Ich habe das Skript make_graph.sh in die /etc/crontab eingetragen, so dass es alle 15 Min. ausgeführt wird. Wird es aber nicht. Es passiert einfach gar nix.
Was mach ich falsch, wie kann man es besser machen.
Hier mal alle meine Dateien, damit evtl. der Fehler leichter zu finden ist:
/etc/crontab:
Rich (BBCode):
#minute hour mday month wday who command
10 6 * * * root /usr/syno/bin/synolocalbkp -a "My backup Set 1"
*/15 * * * * root /opt/bin/bash /volume1/arduino/feucht/make_graph.sh
/etc/rc.local:
Rich (BBCode):
#!/bin/sh
# new USB serial by Marc
insmod /lib/modules/usbserial.ko
#insmod /lib/modules/ftdi_sio.ko
insmod /lib/modules/cdc-acm.ko
mknod /dev/usb/ttyACM0 c 166 0
# Run Serial Data collecting script
/opt/bin/screen /volume1/arduino/feucht/get_data.sh &
# Mount video, photo and music dirs from inside data dir
mount --bind /volume1/daten/music /volume1/music
mount --bind /volume1/daten/photo /volume1/photo
mount --bind /volume1/daten/video /volume1/video
# Optware setup
[ -x /etc/rc.optware ] && /etc/rc.optware start
exit 0
get_data.sh Skript:
Rich (BBCode):
#!/opt/bin/bash
# Receive remote Temp/Humidity/Dewpoiunt data from /dev/usb/ttyACM0 (Arduino) and store it into database
# Loop forever to read data from USB-WDE1
socat /dev/usb/ttyACM0,b9600 STDOUT | \
while read line
do
len=${#line}
if (("$len" > 0)) ; then
temp=`echo "${line}" | sed 's/.*T:\([-]*[0-9]*[.]*[0-9]*\).*/\1/'`
hum=`echo "${line}" | sed 's/.*H:\([-]*[0-9]*[.]*[0-9]*\).*/\1/'`
dew=`echo "${line}" | sed 's/.*D:\([-]*[0-9]*[.]*[0-9]*\).*/\1/'`
#echo "Temperatur: $temp°C, Luftfeuchte: $hum%, Taupunkt: $dew°C"
data=`echo "N:$temp:$hum:$dew"`
#echo $data
# update rrd
#echo "$line -> $data"
rrdtool update /volume1/arduino/feucht/keller.rrd $data
fi
done
make_graph.sh Skript:
Rich (BBCode):
#!/opt/bin/bash
width=600
height=300
zoom=1
cd /volume1/arduino/feucht
rrdtool graph Klima_Keller_06h.png \
-t 'Klimagraph Keller (6 Stunden)' \
-s 'now - 6 hours' \
-e 'now' \
-m $zoom \
-h $height \
-w $width \
DEF:temps1=keller.rrd:temps1:AVERAGE LINE2:temps1#0000ff:'Temperatur / C' \
DEF:hums1=keller.rrd:hums1:AVERAGE LINE2:hums1#ff0000:'Luftfeuchtigkeit / %' \
DEF:dews1=keller.rrd:dews1:AVERAGE LINE2:dews1#ff00ff:'Taupunkt / C'
rrdtool graph Klima_Keller_24h.png \
-t 'Klimagraph Keller (24 Stunden)' \
-s 'now - 1 day' \
-e 'now' \
-m $zoom \
-h $height \
-w $width \
DEF:temps1=keller.rrd:temps1:AVERAGE LINE2:temps1#0000ff:'Temperatur / C' \
DEF:hums1=keller.rrd:hums1:AVERAGE LINE2:hums1#ff0000:'Luftfeuchtigkeit / %' \
DEF:dews1=keller.rrd:dews1:AVERAGE LINE2:dews1#ff00ff:'Taupunkt / C'
rrdtool graph Klima_Keller_01w.png \
-t 'Klimagraph Keller (1 Woche)' \
-s 'now - 1 week' \
-e 'now' \
-m $zoom \
-h $height \
-w $width \
DEF:temps1=keller.rrd:temps1:AVERAGE LINE2:temps1#0000ff:'Temperatur / C' \
DEF:hums1=keller.rrd:hums1:AVERAGE LINE2:hums1#ff0000:'Luftfeuchtigkeit / %' \
DEF:dews1=keller.rrd:dews1:AVERAGE LINE2:dews1#ff00ff:'Taupunkt / C'
rrdtool graph Klima_Keller_01m.png \
-t 'Klimagraph Keller (1 Monat)' \
-s 'now - 1 month' \
-e 'now' \
-m $zoom \
-h $height \
-w $width \
DEF:temps1=keller.rrd:temps1:AVERAGE LINE2:temps1#0000ff:'Temperatur / C' \
DEF:hums1=keller.rrd:hums1:AVERAGE LINE2:hums1#ff0000:'Luftfeuchtigkeit / %' \
DEF:dews1=keller.rrd:dews1:AVERAGE LINE2:dews1#ff00ff:'Taupunkt / C'
rrdtool graph Klima_Keller_01y.png \
-t 'Klimagraph Keller (1 Jahr)' \
-s 'now - 1 year' \
-e 'now' \
-m $zoom \
-h $height \
-w $width \
DEF:temps1=keller.rrd:temps1:AVERAGE LINE2:temps1#0000ff:'Temperatur / C' \
DEF:hums1=keller.rrd:hums1:AVERAGE LINE2:hums1#ff0000:'Luftfeuchtigkeit / %' \
DEF:dews1=keller.rrd:dews1:AVERAGE LINE2:dews1#ff00ff:'Taupunkt / C'
cp Klima_Keller_*.png /volume1/daten/
cp Klima_Keller_*.png /volume1/web/img/
Woran hakt's? Kann mir bitte jemand helfen?
Danke!