Hallo.
Wenn folgende Bedingungen erfüllt sind, schaltet das Licht ein.
- es ist zwischen 17:00 und 7:00 Uhr
- die Haustür ist geöffnet
- die Beleuchtung ist aus
( [17:00-07:00] and [HM_363959] eq "Aus" and [Fk.UG.Haustuer] eq "open") ( set HM_363959 An)
Mein Problem ist die Haustür. Es soll nur geschaltet werden, wenn der Status von "closed" nach "open" wechselt und dann innerhalb von 3 sek. einmal einschalten.
Hat jemand eine Idee wie man das umsetzt oder einen besseren Ansatz?
Gruß
beSmart
Hi,
bin noch nicht ganz so drin in fhem, aber besteht evtl. die Möglichkeit, den letzten Status von [Fk.UG.Haustuer] in einen Dummy zu schreiben und dann dieses als zusätzliche Bedingung mit einzubinden?
( [17:00-07:00] and [HM_363959] eq "Aus" and [lastHaustuer:status] eq "closed" and [Fk.UG.Haustuer] eq "open") ( set HM_363959 An, setreading status lastHaustuer open)
Viele Grüße vom gent
den namen nach handelt es sich hier um homematic devices. also würde ich das mit direktem peering machen, ohne doif, sorry.
1. tk und aktor peeren.
2. im aktor die register einstellen, wie der tk schalten soll.
3. ein at definieren (hier kannst du natürlich auch ein doif nehmen), dass den aktor tags über auf inhibit setzt, und nachts das inhibit wieder freigibt.
( [?17:00-07:00] and [?HM_363959] eq "Aus" and [Fk.UG.Haustuer] eq "open") ( set HM_363959 An)
? verhindert das Triggern
Hallo und vielen Dank für die Unterstützung.
Habe es jetzt wie folgt gelöst:
1.) einen Dummy für die Haustür angelegt Status: An oder Aus
define dummy.Haustuer dummy
attr dummy.Haustuer group Test
attr dummy.Haustuer room Test
attr dummy.Haustuer webCmd An:Aus
2.) ein DOIF welches den Dummy auf "An" setzt und nach 3 Sek. wieder auf "Aus"
define doif.Haustuer DOIF ([Fk.UG.Haustuer] eq "open") ({ fhem("set dummy.Haustuer An ;;;; define Bel_ein_off at +00:00:03 set dummy.Haustuer Aus")})
attr doif.Haustuer group Beleuchtung Test
attr doif.Haustuer room Test
3.) ein DOIF welches die Beleuchtung einschaltet, wenn der Dummy "Haustür" den Status "An" hat.
define bel.automatik DOIF ([17:00-6:00] and [?HM_363959] eq "Aus" and [dummy.Haustuer] eq "An") ( set HM_363959 An)
attr bel.automatik group Test
attr bel.automatik room Test
Dank und Gruß
beSmart
Zitat von: beSmart am 05 März 2016, 20:41:22
Hallo und vielen Dank für die Unterstützung.
Habe es jetzt wie folgt gelöst:
1.) einen Dummy für die Haustür angelegt Status: An oder Aus
define dummy.Haustuer dummy
attr dummy.Haustuer group Test
attr dummy.Haustuer room Test
attr dummy.Haustuer webCmd An:Aus
2.) ein DOIF welches den Dummy auf "An" setzt und nach 3 Sek. wieder auf "Aus"
define doif.Haustuer DOIF ([Fk.UG.Haustuer] eq "open") ({ fhem("set dummy.Haustuer An ;;;; define Bel_ein_off at +00:00:03 set dummy.Haustuer Aus")})
attr doif.Haustuer group Beleuchtung Test
attr doif.Haustuer room Test
3.) ein DOIF welches die Beleuchtung einschaltet, wenn der Dummy "Haustür" den Status "An" hat.
define bel.automatik DOIF ([17:00-6:00] and [?HM_363959] eq "Aus" and [dummy.Haustuer] eq "An") ( set HM_363959 An)
attr bel.automatik group Test
attr bel.automatik room Test
Dank und Gruß
beSmart
Wozu ist der Zwischenschritt 2.) erforderlich ?
Hallo.
Der Zwischenschritt ist für mich erforderlich, da die Haustür über mehrere Stunden den Status geöffnet haben kann. Hier setze ich den Dummy auf An und nach 3 Sek. wieder Aus. Sonst würde die Beleuchtung über Stunden eingeschaltet sein bzw. sich immer wieder einschalten.
Gruß
beSmart
Zitat von: beSmart am 06 März 2016, 13:54:50
Hallo.
Der Zwischenschritt ist für mich erforderlich, da die Haustür über mehrere Stunden den Status geöffnet haben kann. Hier setze ich den Dummy auf An und nach 3 Sek. wieder Aus. Sonst würde die Beleuchtung über Stunden eingeschaltet sein bzw. sich immer wieder einschalten.
Gruß
beSmart
define doif.Haustuer DOIF ([Fk.UG.Haustuer] eq "open") ({ fhem("set dummy.Haustuer An ;;;; define Bel_ein_off at +00:00:03 set dummy.Haustuer Aus")})
so etwas lässt sich eleganter lösen mit:
define doif.Haustuer DOIF ([Fk.UG.Haustuer] eq "open") (set dummy.Haustuer An) (set dummy.Haustuer Aus")
attr doif.Haustuer wait 0,3
Ich gehe mal davon aus, dass HM_363959 nach einer bestimmten Zeit von selbst aus geht.
( [?17:00-07:00] and [?HM_363959] eq "Aus" and [Fk.UG.Haustuer] eq "open") ( set HM_363959 An)
DOELSEIF ([Fk.UG.Haustuer] eq "closed")
Ohne steuernde Attribute
HM_363959 geht nur einmal an, wenn [Fk.UG.Haustuer] auf "open" wechselt und dann erst wieder, wenn [Fk.UG.Haustuer] vorher auf "closed" gewechselt hat.
Hallo und vielen Dank für eure Antworten.
Anscheinend führen wieder viele Wege nach Rom.
@Damian
Deine Lösung ist eleganter, das stimmt. Ich habe sie noch nicht getestet, werde dies aber demnächst tun.
@Ellert
Auch deine Lösung habe ich noch nicht getestet. Werde dies aber auch noch machen.:)
Sie ist meinem 1. Ansatz bis auf DOELSEIF ([Fk.UG.Haustuer] eq "closed")
und 2? sehr ähnlich.
Bei meinem 1. Ansatz hatte ich das Problem, das die Beleuchtung sich immer wieder eingeschaltet hat.
Nochmal vielen Dank.
Gruß
beSmart