Hallo zusammen,
Ich möchte ein langsames Aufdimmen zu einem festen Zeitpunkt hinterlegen, wenn dies in meinem Dummy-Device aktiviert wurde. Dazu habe ich nun folgendes gemacht:define terra_sunrise doif ([08:00] and [automatische_Lichtsteuerung:state] = on) (define sunrise at +*{12}00:01 set Test1 dimup)
Leider mit wenig Erfolg:perl error in condition: DOIF_time_once($hash->{timer}{0},$wday,"") and ReadingValDoIf('automatische_Lichtsteuerung','state','') = on: Can't modify non-lvalue subroutine call in scalar assignment at (eval 397) line 2, at EOF Bareword "on" not allowed while "strict subs" in use at (eval 397) line 1Grob gesagt, das ist nicht zulässig, oder wie muss ich die Meldung interpretieren?
unberechtigte Grüße
Niels
define terra_sunrise doif ([08:00] and [automatische_Lichtsteuerung:state] eq "on") (define sunrise at +*{12}00:01 set Test1 dimup)"eq" nicht "="
Oder "==" bei Zahlenwerten.
= ist kein Vergleich und hat in den Bedingungen nichts zu suchen. Damit wird Variablen ein Werte zugewiesen.
Und Texte in Anführungszeichen.
Gruß
Siehe Commandref:
ZitatVergleichende Abfragen werden, wie in Perl gewohnt, mit Operatoren ==, !=, <, <=, >, >= bei Zahlen und mit eq, ne, lt, le, gt, ge, =~, !~ bei Zeichenketten angegeben. Logische Verknüpfungen sollten zwecks Übersichtlichkeit mit and bzw. or vorgenommen werden. Selbstverständlich lassen sich auch alle anderen Perl-Operatoren verwenden, da die Auswertung der Bedingung vom Perl-Interpreter vorgenommen wird. Die Reihenfolge der Auswertung wird, wie in höheren Sprachen üblich, durch runde Klammern beeinflusst. Stati werden mit [<devicename>], Readings mit [<devicename>:<readingname>], Internals mit [<devicename>:&<internal>] angegeben.
Danke Phill,
Der Teufel steckt bekanntlich immer im Detail und wer lesen kann ist sowieso im Vorteil ;)
Ich habe noch keinen Schuh, aber die Socke ist Dank Eurer Hilfe langsam fertig ;D
voranschreitende Grüße
Niels