Twilight und Bewegungsmelder

Begonnen von zebbl, 30 Juli 2016, 14:45:41

Vorheriges Thema - Nächstes Thema

zebbl

Hallo zusammen,

ich möchte einen Bewegungsmelder abhängig von den Lichtverhältnissen nutzen um das Aussenlicht zu schalten. Dazu will ich das Twilightmodul nutzen und hab folgendes notify erstellt:

define Test notify (BM_Garage:M.*) {\
     if ((MyTW:light)<2){\
        fhem('set Licht_Garage '.$EVTPART1);;;;\
     }\
}


Aber leider funktioniert das nicht wirklich. Im Logfile steht diese Fehlermeldung:
2016.07.30 14:39:13 3: Test return value: syntax error at (eval 163161) line 2, near "MyTW:"
syntax error at (eval 163161) line 5, near "}
}"


Hat jemand eine Idee wo der Fehler liegt?

MfG zebbl

Dietmar63

MyTW:light

Ist kein gültiger Perlausdruck
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

zebbl

Okay... Wie muss es denn aussehen?!

Dietmar63

Such mal nach ReadingsVal (... )
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

zebbl

Danke für den Tipp...
Hab jetzt sowas gefunden, aber ich hab ja keine Ahnung von Perl.......
Was sagst du dazu?

define Test notify (BM_Garage:M.*) {\
     my $licht=ReadingsVal("MyTW","light","6");;\
     if ($licht<2){\
        fhem('set Licht_Garage '.$EVTPART1);;;;\
     }\
}

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

DeeSPe

#6
Zitat von: zebbl am 01 August 2016, 14:13:30
Danke für den Tipp...
Hab jetzt sowas gefunden, aber ich hab ja keine Ahnung von Perl.......
Was sagst du dazu?

define Test notify (BM_Garage:M.*) {\
     my $licht=ReadingsVal("MyTW","light","6");;\
     if ($licht<2){\
        fhem('set Licht_Garage '.$EVTPART1);;;;\
     }\
}


Ich denke die 6 sollte ohne Anführungszeichen da stehen, da es sonst (falls das Reading mal nicht da sein sollte und eben auf die 6 zurückfällt) als String und nicht als Zahl interpretiert wird und somit der Vergleich (<) nicht mehr funktioniert.

Gruß
Dan

Edit: Wozu sind denn die vier Semikolon? Zwei sollten doch maximal reichen!
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe