Hallo,
ich stehe gerade mächtig auf dem Schlauch und das bereits seit Stunden.
Ich schalte derzeit einige Leuchten per Bewegungsmelder in einem bestimmten Zeitraum. Dieser Zeitraum soll nun Simpel über Dummy's definiert werden (quasi Frauensicher).
Mein derzeitiges Notify zum Schalten sieht so aus:
Bw_Flur2:dim.* { if ( (($hour >= 22 || $hour < 5)) && Value("rr_Bastian") eq "home" && Value("Bew_Automatik") eq "an" && Value("LED_Kuehlschrank") eq "off" ) { {fhem ("set LED_Kuehlschrank hue 45942 2")} {fhem ("define at_Bw_Flur2_KuecheA at +00:00:50 trigger Bw_Flur2_KuecheA")} } }
Nun hab ich 2 Dummy's definiert, über welche man per Schieberegler den Zeitraum definieren kann:
- Zeit_BWLicht_An
- Zeit_BWLicht_Aus
Ich bekomme es allerdings einfach nicht hin, den Zeitraum mithilfe der Dummy korrekt festzulegen. Meine jetzige, nicht lauffähige Lösung sieht so aus:
Bw_Flur2:dim.* { if ( (({Value("Zeit_BWLicht_An")} || {Value("Zeit_BWLicht_Aus")})) && Value("rr_Bastian") eq "home" && Value("Bew_Automatik") eq "an" && Value("LED_Kuehlschrank") eq "off" ) { {fhem ("set LED_Kuehlschrank hue 45942 2")} {fhem ("define at_Bw_Flur2_KuecheA at +00:00:50 trigger Bw_Flur2_KuecheA")} } }
Der Wert der Zeitdummy's sind korrekt
list Zeit_BWLicht_An
Internals:
CFGFN
NAME Zeit_BWLicht_An
NR 13797
STATE 23:20
TYPE dummy
READINGS:
2018-07-02 21:39:22 state 23:20
Attributes:
room Dashboard
setList state:time
webCmd state
FHEM Log
PERL WARNING: Odd number of elements in anonymous hash at (eval 4386095) line 1.2018.07.02 22:28:15 3 : eval: my $EVENT='dim100%';my $SELF='Bw_Flur2_Kueche';my $TYPE='FS20';my $NAME='Bw_Flur2';my $EVTPART0='dim100%';{ if ((({Value("Zeit_BWLicht_An")} || {Value("Zeit_BWLicht_Aus")})) && Value("rr_Bastian") eq "home" && Value("Bew_Automatik") eq "an" && Value("LED_Kuehlschrank") eq "off" ) { {fhem ("set LED_Kuehlschrank hue 45942 2")} {fhem ("define at_Bw_Flur2_KuecheA at +00:00:50 trigger Bw_Flur2_KuecheA")} } }2018-07-02 22:28:15 at at_Bw_Flur2_KuecheA Next: 22:29:05
Hab schon diverse Themen durch, leider aber keine Themen gefunden welche sich auf einen Zeitraum definieren.
Liebe Grüße
Bastian
ZitatHab schon diverse Themen
Falls Du DOIF verwenden möchtest, geht es auch ohne Perl-Kenntnisse, s. https://fhem.de/commandref_DE.html#DOIF_Indirekten_Zeitangaben
Der Vergleich
(({Value("Zeit_BWLicht_An")} || {Value("Zeit_BWLicht_Aus")}))
ist nicht korrekt formuliert, letztlich verknüpfst Du 2 Zeichen Ketten mit ||.
Wenn Du {"22:30"||"05:00"} in der FHEM-Befehlszeile ausführst siehst Du das Problem.
{Value("Zeit_BWLicht_An")} versucht Perl als "anonymous hash" zu interpretieren und schlägt fehl weil die Syntax unvollständig ist.
Hey Ellert,
vielen Dank für deinen Hinweis. Ich habe mich gestern nun (endlich) mit der DOIF Funktion auseinandergesetzt. Schiebe ich schon seit langem vor mir her.
Ich habe es mithilfe der Zeitangabe umgesetzt bekommen ->
https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#Zeitangaben
Für alle, welche vor dem gleichen Problem stehen sollten hier meine funktionierende Lösung:
([Bw_Flur2:"dim100%"] and [rr_Bastian:state] eq "home" and [Bew_Automatik:state] eq "an" and [LED_Kuehlschrank:state] eq "off" and [?[Zeit_BWLicht_An]-[Zeit_BWLicht_Aus]]) ((set LED_Kuehlschrank hue 45942),(set LED_Kuehlschrank pct 75),(define at_Bw_Flur2_KuecheA at +00:00:50 trigger Bw_Flur2_KuecheA)) DOELSE (setstate Bw_Flur2 off)
Viele Grüße
Bastian
Wenn du deine ersten Schritte mit DOIF gemacht hast, dann kannst du auch gleich die entsprechenden DOIF-Features nutzen:
aus
((set LED_Kuehlschrank hue 45942),(set LED_Kuehlschrank pct 75),(define at_Bw_Flur2_KuecheA at +00:00:50 trigger Bw_Flur2_KuecheA))
besser definieren:
(set LED_Kuehlschrank hue 45942, set LED_Kuehlschrank pct 75)(trigger Bw_Flur2_KuecheA)
attr wait 0,50
Ja cool, wieder was gelernt.
Deinen Teil zum Zusammenfassen der zwei Befehle hab ich gleich übernommen. Danke!
Was ich nicht so ganz verstehe ist das Wait Attribut. Mit dem "at" Device setze ich ja den Timer zum Abschalten der Leuchte nach 50Sek. Wenn ich nun dein Wait Attribut setze, wirkt sich das doch ebenso auf den Einschaltbefehl aus, oder nicht?
Zitat von: KnoPPerS am 02 Juli 2018, 22:21:41
Dieser Zeitraum soll nun Simpel über Dummy's definiert werden (quasi Frauensicher).
Es gibt kein frauensicheres FHEM.
Zitat von: betateilchen am 04 Juli 2018, 14:08:53
Es gibt kein frauensicheres FHEM.
Stimmt, aber man kann versuchen es so Simpel wie möglich zu halten :)