FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Wettermodule => Thema gestartet von: zebbl am 30 Juli 2016, 14:45:41

Titel: Twilight und Bewegungsmelder
Beitrag von: zebbl am 30 Juli 2016, 14:45:41
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
Titel: Antw:Twilight und Bewegungsmelder
Beitrag von: Dietmar63 am 30 Juli 2016, 15:34:36
MyTW:light

Ist kein gültiger Perlausdruck
Titel: Antw:Twilight und Bewegungsmelder
Beitrag von: zebbl am 30 Juli 2016, 20:41:31
Okay... Wie muss es denn aussehen?!
Titel: Antw:Twilight und Bewegungsmelder
Beitrag von: Dietmar63 am 30 Juli 2016, 20:48:17
Such mal nach ReadingsVal (... )
Titel: Antw:Twilight und Bewegungsmelder
Beitrag 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);;;;\
     }\
}
Titel: Antw:Twilight und Bewegungsmelder
Beitrag von: Dietmar63 am 01 August 2016, 18:27:00
Könnte klappen
Titel: Antw:Twilight und Bewegungsmelder
Beitrag von: DeeSPe am 01 August 2016, 18:43:28
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!