Schaltbefehl führt zu Fehler

Begonnen von Dolfi, 08 November 2014, 17:06:25

Vorheriges Thema - Nächstes Thema

Dolfi

Ein Schaltbefehl in meinem Script führt zu einer Fehlermeldung und wird nicht ausgeführt.

Ein gleichlautender Befehl mit einem anderem Datum funktioniert.

Befehl:

#--------------- LAUSSEN an einem bestimmten Tag einmalig einschalten

define LichtAn at *16:00:00 {if($year==2014 && $month==11 && $mday==08) {fhem("set LAUSSEN on")} }


erzeugt folgende Fehlermeldung im Logfile:

2014.11.08 16:00:00 3: LichtAn: Illegal octal digit '8' at (eval 7253) line 1, at end of line

dieser Befehl funktioniert:

#--------------- Heizung an einem bestimmten Tag einmalig einschalten

define HeizungEin at *18:00:00 {if($year==2014 && $month==11 && $mday==07) {fhem("set TS_Climate_off einschalten")} }

habe in einem externen Editor geprüft ob unsichtbare Zeichen enthalten sind , nichts gefunden

Die Fehlermeldung kann ich leider nicht interpretieren

kann mir jemand helfen?

Danke Dolfi


betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Bevor jetzt die Frage kommt, warum bei 08 ein Fehler kommt und bei 07 nicht, möchte ich auf die eigentlich doch sehr klare und unmissverständliche Fehlermeldung hinweisen:

Illegal octal digit '8'


  • Du vergleichst einen numerischen (!) Wert gegen 08
  • Perl interpretiert numerische Werte, die mit Null beginnen, generell als Oktalzahl
  • Im oktalen Zahlensystem gibt es nur die Ziffern 0 bis 7
  • Deshalb ist 07 zulässig und 08 nicht.

Alles klar?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dolfi

vielen Dank, da wäre ich nie drauf gekommen, hab den Code übernommen