FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: yogiflop am 12 Januar 2016, 22:01:49

Titel: DOIF perl error in condition
Beitrag von: yogiflop am 12 Januar 2016, 22:01:49
Hallo,

habe da eine Anweisung, wo ich leider den Fehler nicht finde, er mir aber einen ins Logfile schreibt.

define kugel.doif DOIF ([?06:00 - 06:40|8] and [myTwilight:light] = 0  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 100)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] = 1  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 75)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] = 2  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 50)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] = 3  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 25)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] >3) (set wz.ml.sofa off)\
DOELSEIF ([23:30|8] and [?whg.jemand.dum] eq "da" ) (set wz.ml.sofa off)\
DOELSE (set wz.ml.sofa off)
attr kugel.doif alias DOIF für Kugeln am Sofa
attr kugel.doif cmdState Morgens 100|Morgens 75|Morgens 50|Morgens 25|Morgens aus|Nachts aus|aus
attr kugel.doif group DOIF
attr kugel.doif room Timer



im Logfile taucht dann dazu folgendes auf
2016.01.12 21:45:42.935 2: kugel.doif: perl error in condition: DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and ReadingValDoIf('myTwilight','light','') = 0  and InternalDoIf('whg.jemand.dum','STATE','') eq "da" : Can't modify non-lvalue subroutine call in scalar assignment at (eval 16987) line 1, near "0  and"
Titel: Antw:DOIF perl error in condition
Beitrag von: Damian am 12 Januar 2016, 23:34:21
Zitat von: yogiflop am 12 Januar 2016, 22:01:49
Hallo,

habe da eine Anweisung, wo ich leider den Fehler nicht finde, er mir aber einen ins Logfile schreibt.

define kugel.doif DOIF ([?06:00 - 06:40|8] and [myTwilight:light] = 0  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 100)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] = 1  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 75)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] = 2  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 50)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] = 3  and [whg.jemand.dum] eq "da" ) (set wz.ml.sofa brightness 25)\
DOELSEIF ([?06:00 - 06:40|8] and [myTwilight:light] >3) (set wz.ml.sofa off)\
DOELSEIF ([23:30|8] and [?whg.jemand.dum] eq "da" ) (set wz.ml.sofa off)\
DOELSE (set wz.ml.sofa off)
attr kugel.doif alias DOIF für Kugeln am Sofa
attr kugel.doif cmdState Morgens 100|Morgens 75|Morgens 50|Morgens 25|Morgens aus|Nachts aus|aus
attr kugel.doif group DOIF
attr kugel.doif room Timer



im Logfile taucht dann dazu folgendes auf
2016.01.12 21:45:42.935 2: kugel.doif: perl error in condition: DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and ReadingValDoIf('myTwilight','light','') = 0  and InternalDoIf('whg.jemand.dum','STATE','') eq "da" : Can't modify non-lvalue subroutine call in scalar assignment at (eval 16987) line 1, near "0  and"


Vergleiche mit Zahlen werden in Perl mit == statt = angegeben.

Gruß

Damian
Titel: Antw:DOIF perl error in condition
Beitrag von: yogiflop am 13 Januar 2016, 06:33:40
Zitat von: Damian am 12 Januar 2016, 23:34:21
Vergleiche mit Zahlen werden in Perl mit == statt = angegeben.

Gruß

Damian

Ich weiß nicht, wie oft ich den Hilfetext gelesen habe, aber trotzdem nicht gesehen :-(

Ich danke dir

gruß Marc