Ich verstehe folgende Fehlermeldung nicht

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    seit einigen Monaten funktioniert meine Rollladensteuerung recht zuverlässig.
    Ich lasse sie u.a. nach dem Sonnenstand hoch- und runterfahren.
    Realisiert habe ich das durch eine von der Wochennummer abhängige Wartezeit.

    Code
    delay=(   920   980  1500  2000  2500  3180  3900  4680  5460  6180
    	 6840  7680  8400  9120 13380 14100 14820 15540 16200 16920
    	17580 18240 18780 19320 19680 19980 20100 20100 19980 19620
    	19200 18600 17940 17220 16380 15480 14580 13620 12660 11700 
    	10740  9780  8880  7980  3540  2760  2040  1440   960   600
    	  360   300   420   720	)
    sleep ${delay[week]}

    bzw.

    Code
    delay=( 4500 4620 4500 4260 3900 3420 2820 2100 1320  480 
    	1    1    1    1    1    1    1    1    1    1
    	1    1    1    1    1    1    1    1    1    1
    	1    1    1    1    1    1    1    1    1    60
    	720 1440 2100 2820    1  720 1440 2160 2820 3480
    	3960 4320 4500 4560	)
    sleep ${delay[week]}

    Seit dieser Woche (der 8.Woche im Jahr) kommt nun diese Meldung und die wochenabhängige Wartezeit wird übersprungen.

    Code
    /home/pi/skripte/fhem/rollo-hoch.sh: Zeile 67: 08: Der Wert ist zu groß für die aktuelle Basis. (Fehlerverursachendes Zeichen ist \"08\").
    2015_02_17__07.00 Rh,  2/08. KW, -5°C,  +40 Minuten
    2015_02_17__07.42 alle Rollos oben, -5°C
    /home/pi/skripte/fhem/rollo-runter1.sh: Zeile 59: 08: Der Wert ist zu groß für die aktuelle Basis. (Fehlerverursachendes Zeichen ist \"08\").
    2015_02_17__14.09 Rr (SU -2h), 4°C,  -7 Minuten
    2015_02_17__16.31 alle Rollos unten, 3°C

    Aber warum ist auf einmal die 08 (8.Woche) zu groß? Im Dezember war die 50. Woche auch nicht zu groß?

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

  • Kurz mal Google befragt :

    Code
    The error message is, however, quite easily explained. Numerical values starting with a zero (0) are interpreted as numbers in octal notation by the C language. As the only digits allowed in octal are {0..7}, an 8 or a 9 will cause the evaluation to fail.

    Lösungsvorschlag :

    Code
    360   300   420   720    )
    week=$(echo $week|sed 's/^0*//')
    sleep ${delay[week]}

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Also das würde jährlich immer die 8. und 9. KW betreffen, wenn man meine Aufgabe (kalenderwochenabhängige Aktionen auslösen) auf diese Art lösen will?
    Das Programm Rollo runter ist inzwischen gestartet, muss also bis morgen früh warten. Da füge ich die Zeile week=$(echo $week|sed 's/^0*//') ein

    Ja, das hätte ich noch schreiben müssen: die Zeile 59 bzw. 67 sieht so aus:

    Code
    sleep ${delay[week]}

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (18. Februar 2015 um 14:50)

  • Immer wieder peinlich, wie du mich an meine eigenen Sünden erinnerst ;)


    //EDIT: Poste mal bitte das vollständige Script

    Möchtest du dir das wirklich antun?
    Nagut, blamiere ich mich jetzt mal (die vielen Kommentare brauche ich, bin halt nicht vom Fach):

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

  • Ich möchte noch die Sache beenden.
    Der vom Imperator gezeigte Weg ist die Lösung meines Problems. Also vielen Dank!

    OT:
    Immer wieder erstaunlich, wie uns die Zufälle beherrschen.
    Seit Monaten läuft meine Rollladensteuerung nach meinen bescheidenen Wünschen einwandfrei und "erfreut mich".
    Kaum bin ich mal ein paar Tage aus dem Haus, muss ich aus der Ferne zu sehen, wie das Log Fehlermeldungen produziert und ich nicht eingreifen kann...
    Mal sehen, was noch so schlummert ;)

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!