I Skript Tag/Nacht für rrdtool grafische Darstellungen zu bestimmen habe:Script-Fehler: Wert zu groß für die Basis (Fehler-Token ist "09")
# Calculating Civil Twilight based on location from LAT LON
DUSKHR=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun rises/{:a;n;/Nautical twilight/b;p;ba}' | cut -c 45-46`
DUSKMIN=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun rises/{:a;n;/Nautical twilight/b;p;ba}' | cut -c 47-48`
DAWNHR=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun rises/{:a;n;/Nautical twilight/b;p;ba}' | cut -c 30-31`
DAWNMIN=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun rises/{:a;n;/Nautical twilight/b;p;ba}' | cut -c 32-33`
# Calculating sunset/sunrise based on location from LAT LON
SUNRISEHR=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun transits/{:a;n;/Civil twilight/b;p;ba}' | cut -c 30-31`
SUNRISEMIN=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun transits/{:a;n;/Civil twilight/b;p;ba}' | cut -c 32-33`
SUNSETHR=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun transits/{:a;n;/Civil twilight/b;p;ba}' | cut -c 45-46`
SUNSETMIN=`/usr/bin/sunwait sun up $LAT $LON -p | sed -n '/Sun transits/{:a;n;/Civil twilight/b;p;ba}' | cut -c 47-48`
# Converting to seconds
SUNR=$(($SUNRISEHR * 3600 + $SUNRISEMIN * 60))
SUNS=$(($SUNSETHR * 3600 + $SUNSETMIN * 60))
DUSK=$(($DUSKHR * 3600 + $DUSKMIN * 60))
DAWN=$(($DAWNHR * 3600 + $DAWNMIN * 60))
, die in rrdtool Graphen wird wie folgt verwendet:
#!/bin/bash
. inc/colors.sh
. inc/sunlight.sh
# Inside last 24 hours (mobile)
rrdtool graph /ram/temperature/graphs/sensors-24h-inside-mobile.png \
--alt-autoscale \
--slope-mode \
--width 638 --height 337 \
--border 0 \
--font AXIS:13:0 \
--color BACK#363636 --color CANVAS#363636 --color GRID#999999 --color MGRID#B5B5B5 --color FONT#CCCCCC \
--x-grid MINUTE:60:HOUR:1:MINUTE:360:0:%R \
--y-grid 1:1 \
DEF:Obyvacka=ds_temperature.rrd:O:AVERAGE \
CDEF:nightplus=LTIME,86400,%,$SUNR,LT,INF,LTIME,86400,%,$SUNS,GT,INF,UNKN,Obyvacka,*,IF,IF \
CDEF:nightminus=LTIME,86400,%,$SUNR,LT,NEGINF,LTIME,86400,%,$SUNS,GT,NEGINF,UNKN,Obyvacka,*,IF,IF \
AREA:nightplus#303030 AREA:nightminus#303030 \
CDEF:dusktilldawn=LTIME,86400,%,$DAWN,LT,INF,LTIME,86400,%,$DUSK,GT,INF,UNKN,Obyvacka,*,IF,IF \
CDEF:dawntilldusk=LTIME,86400,%,$DAWN,LT,NEGINF,LTIME,86400,%,$DUSK,GT,NEGINF,UNKN,Obyvacka,*,IF,IF \
AREA:dusktilldawn#222222 AREA:dawntilldusk#222222 \
LINE2:Obyvacka$GREEN:
und manchmal (ich habe kein Muster noch nicht bestimmt) ich werde folgende Fehlermeldung erhalten:
inc/sunlight.sh: line 15: 18 * 3600 + 09: value too great for base (error token is "09")
ERROR: invalid rpn expression in: LTIME,86400,%,19920,LT,INF,LTIME,86400,%,,GT,INF,UNKN,Obyvacka,*,IF,IF
Aber es sieht, dass Es passiert nur um 23 Stunden.
Ich habe viele Lösungen gefunden, aber ich kann nicht einzeln auf mein Skript anwenden.
Lösung so einfach, wenn Sie wissen, was Sie tun. Es wirkt jetzt wie ein Zauber. Und ich verstehe es wegen Ihres minimalen Beispiels. Vielen Dank. – RoSi
Ou, es funktionierte für einige Stunden als ein Charme, aber jetzt bekommen ** inc/sunlight.sh: Zeile 15: 10 # 1 * 3600 + 10 # 91 * 60: Syntaxfehler im Ausdruck (Fehler Token ist "1 * 3600 + 10 # 91 * 60 ") inc/sunlight.sh: Zeile 16: 10 # 1 * 3600 + 10 # 94 * 60: Syntaxfehler im Ausdruck (Fehler Token ist" 1 * 3600 + 10 # 94 * 60 ") ** Fehler. – RoSi
Sieht so aus als ob in einer Ihrer Variablen ein Leerzeichen vor der '1' steht. Um alle Leerzeichen aus einer Variablen in bash zu entfernen, können Sie folgendes tun: 'export A =" 1 "; echo "$ {A //}" ' – jbr