FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Tiedi am 07 Oktober 2014, 08:31:18

Titel: at Befehl mit if Befehl für zwei Lampen
Beitrag von: Tiedi am 07 Oktober 2014, 08:31:18
Ich bekomme im Logfile folgenden Fehler
Abendlicht: syntax error at (eval 1732) line 1, near "HandySascha:"

folgenden at - Timer habe ich erstellt:
*{sunset(0)} { fhem ("set WohnzimmerVitrine,Aussenlicht_hinten1 on") if ([Handy1:&STATE] eq "present" || [Handy2:&STATE] eq "present") }

Es sollen, wenn eines der Handys da ist, zum Sonnenuntergang zwei Lampen eingeschaltet werden.
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Puschel74 am 07 Oktober 2014, 08:35:30
Hallo,

du versuchts if und IF zu vermischen was logischerweise schief geht.
das hatten wir aber bereits ein paar mal hier  8)


Grüße

Edith: Hier die commandref - sogar auf deutsch:
http://fhem.de/commandref_DE.html#IF (http://fhem.de/commandref_DE.html#IF)
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Tiedi am 07 Oktober 2014, 08:59:50
Alles klar danke für den Hinweis.
So gehts:
*{sunset(-2700)} IF ([Handy1:&STATE] eq "present" || [Handy2:&STATE] eq "present") ((set WohnzimmerVitrine,Aussenlicht_hinten1 on))
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Puschel74 am 07 Oktober 2014, 10:02:40
Hallo,

du weisst aber das, wenn der Zeitpunkt des at rum ist und du erst danach present bist nicht mehr geschaltet wird.

Schau dir mal DOIF an - damit kannst du genau solche Fälle noch abfangen.
Sprich:
at vorbei niemand da = es passiert nichts
at vorbei jemand kommt = Licht schaltet
jemand da und at erreicht = Licht schaltet <-- das kannst du evtl. noch abfangen wenn du das nicht willst

Grüße
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Tiedi am 07 Oktober 2014, 15:40:15
OK, das war mir klar aber ich glaube DOIF ist mir für den Anfang zu mächtig. Aber vielen Dank! Immer gut zu wissen was es alles gibt :)
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Puschel74 am 07 Oktober 2014, 16:30:45
Hallo,

mal als Beispiel (ich bin mit DOIF noch nicht so vertraut):
define di_lamp DOIF ([{sunset(-2700)}] and ([Handy1] eq "present" or [Handy2] eq "present")) (set WohnzimmerVitrine,Aussenlicht_hinten1 on)
attr di_lamp do always


Grüße
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Damian am 07 Oktober 2014, 17:24:43
Zitat von: Puschel74 am 07 Oktober 2014, 16:30:45
Hallo,

mal als Beispiel (ich bin mit DOIF noch nicht so vertraut):
define di_lamp DOIF ([{sunset(-2700)}] and ([Handy1] eq "present" or [Handy2] eq "present")) (set WohnzimmerVitrine,Aussenlicht_hinten1 on)
attr di_lamp do always


Grüße

Komma ist Trennzeichen bei DOIF zwischen den FHEM-Befehlen, also:

define di_lamp DOIF ([{sunset(-2700)}] and ([Handy1] eq "present" or [Handy2] eq "present")) (set WohnzimmerVitrine on, set Aussenlicht_hinten1 on)

Gruß

Damian





Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Puschel74 am 07 Oktober 2014, 17:34:14
Hallo,

und das ist der einzige Fehler  ::)
Dann werd ich auch langsam auf DOIF migrieren - und das von mir  :o

Grüße
Titel: Antw:at Befehl mit if Befehl für zwei Lampen
Beitrag von: Damian am 07 Oktober 2014, 17:43:38
Zitat von: Puschel74 am 07 Oktober 2014, 17:34:14
Hallo,

und das ist der einzige Fehler  ::)
Dann werd ich auch langsam auf DOIF migrieren - und das von mir  :o

Grüße

ja, oft werden Sachen von at oder notify eins zu eins portiert. Mit einem DOIF macht es aber insbesondere Sinn ein Problem komplett abzudecken, nach dem Motto: "Wer die Lampe anmacht, soll sie auch wieder ausmachen"

Gruß

Damian