FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: beSmart am 03 März 2016, 21:57:58

Titel: Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: beSmart am 03 März 2016, 21:57:58
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
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: gent am 03 März 2016, 22:20:01
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
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: frank am 03 März 2016, 22:27:40
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.
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: Ellert am 04 März 2016, 09:11:38
( [?17:00-07:00] and [?HM_363959] eq "Aus" and [Fk.UG.Haustuer] eq "open") ( set HM_363959 An)
? verhindert das Triggern
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag 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
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: Ellert am 05 März 2016, 21:07:36
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 ?
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag 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
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: Damian am 06 März 2016, 14:14:38
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

Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: Ellert am 06 März 2016, 14:26:05
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.
Titel: Antw:Benötige Hilfe bei DOIF für Beleuchtung Treppenhaus
Beitrag von: beSmart am 09 März 2016, 13:30:07
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