Ausschaltverzögerung (mit DOIF?) zur Lichtsteuerung

Begonnen von Cavetom, 18 Dezember 2016, 13:51:33

Vorheriges Thema - Nächstes Thema

Cavetom

Hallo,

ich habe seit etwa 10 Jahren ein immer smarter werdendes Haus, anfangs mit FS20 und IP-Symcon, immer mehr erweitert und seit ein paar Jahren nun auf RasPi+FHEM laufend. Neben FS20 läuft hier mittlerweile auch Homematic, Hue, eine PV mit Sonnenbatterie, diverses ZWave, WLAN-Steckdosen, Enigma-Receiver, Harmony Ultimate und vermutlich noch so einige vergessene Dinge.

Ich versuche nun, die Beleuchtung im Wohnzimmer zu automatisieren, läuft über einen Fibaro Motion Sensor + Hue auf folgende Art (geklaut hier im Forum...):

define Motion1_StatusBeiBewegung dummy
define fl_LichtAn  DOIF ([Motion_Raum_Wohnzimmer:reportedState] eq "open" and [HUEDevice12] eq "off") ((set HUEDevice12 on),(set Motion1_StatusBeiBewegung on))
define fl_LichtAus DOIF ([Motion_Raum_Wohnzimmer:reportedState] eq "closed" and [Motion1_StatusBeiBewegung] eq "on") ((set HUEDevice12 off),(set Motion1_StatusBeiBewegung off))


Im Motion Sensor steht die BlindTime auf 15 (laut Anleitung sind das 8 Sekunden) und Cancelation Delay auf 180 (Sekunden). Ich dachte, dass dann nach 8 Sekunden der Sensor wieder auf Bewegung achtet und die 180 Sekunden wieder auf 0 gesetzt werden, sobald Bewegung erkannt wird. Trotzdem ist es aber so, dass nach 3 Minuten das Licht aus geht und direkt danach wieder an. Das widerspricht nicht nur dem WAF, das ist schlicht nervig.

Also dachte ich mir, ich baue in die DOIFs eine Art Ausschaltverzögerung, da fehlt mir aber die Idee, wer kann helfen?

1) Licht an, wie oben
2) Wenn reportedState auf "closed" geht, die Zeit merken
3) 2 Minuten später das Licht ausschalten, wenn zu diesem Zeitpunkt der Sensor noch immer "closed" ist, ansonsten bleibt Licht an

Geht das über DOIF, oder brauche ich einen ganz anderen Ansatz?

Grüße,
Thomas

swsmily

Hi!

Warum 2 DOIF?

Ich nutze auch Fibaro Motion Sensoren (alte und neue Generation) um damit HUE zu steuern.
Blindtime ebenso auf 15, MotionCanceletion Delay sogar nur auf 60 Sekunden. Wenn man nicht gerade völlig ohne Bewegung im Raum steht bleibt das Licht bei mir an.
Pro Raum jeweils nur ein DOIF (Beispiel meines Badlichtes, stark gekürzt):


## Wenn Bewegung
(
([Bewegungsmelder_Bad] eq "open")
)
## Dann Licht auf helles-weiß
(
set HUE_Bad rgb FFE0C1
)

## Wenn keine Bewegung
DOELSEIF (
([Bewegungsmelder_Bad] eq "closed") and
)
## Dann Licht aus, Dimmzeit 5 Sekunden
(
set HUE_Bad rgb 000000 : transitiontime 50
)


Damit sollte dein Licht immer bei Bewegung auf den eingestellen RGB-Wert anschalten und wenn eine Minute lang keine Bewegung mehr erkannt wird, geht es aus (dimmt innerhalb von 5 Sekunden runter).

Tototo

Mein Bewegungsmelder schaltet meine Lampe mit on-for-timer. Solange der Bewegungen bekommt geht die nicht aus, erst wenn nichts mehr kommt geht die nach der Timerzeit aus. Ist keine HUE aber vielleicht hilft das auch.

Cavetom

Hmm... Bei mir ist es so, dass die Lampe ganz kurz aus und direkt wieder an geht. Ggf ist das auch Zufall, er erkennt tatsächlich keine Bewegung und sobald das Licht ausgeht, zuckt einer von uns zusammen und das Licht geht wieder an. Im Log sieht man dazwischen auch tatsächlich keine Einträge, wobei ich aber auch nicht weiss, ob der Sensor bei jeder einzelnen Erkennung sendet, auch wenn er bereits auf "open" steht.
Das sollte ja eigentlich nicht so sein, die Blind Time macht der Motion Sensor wirklich nichts, danach sollte er aber ja wieder auf Bewegung achten und entsprechend nicht auf "closed" gehen, solange wir im Zimmer sind. Ich schau nochmal, ggf. spiele ich nochmal mit dem Cancelation Delay.

swsmily

Der motion sensor von Fibaro sendet nur einmalig open und sendet das nicht nochmal solange Bewegung ist. Daher geht meiner Meinung nach das on-for-timer gar nicht mit diesem Bewegungsmelder.?
Wenn ihr oft sehr ruhig steht, dann nutze wie in meinem Beispiel doch die transitiontime, damit wird es wenigstens allmählich dunkel und ihr steht nicht sofort im Dunkeln   ;)