Eigenen Timer realisieren

Begonnen von TommiH, 21 Oktober 2017, 10:36:15

Vorheriges Thema - Nächstes Thema

TommiH

Hallo Zusammen,

ich würde gerne einen eigenen Timer realisieren. Hintergrund, WC-Schaltung. Wenn die Tür aufgeht (TFK), dann dimmt ein LichtDimmer innerhalb von 15 Sekunden von 0 auf 90% hoch und bleibt da 10 Minuten. Wenn bei LichtDimmer 90% der TFK wieder anschlägt (open) dann dimmt der LichtDimmer wieder langsam von 90 auf 0.
Problem: wenn jemand (eines unserer Kids ;) ) nach 1-2 Minuten die Tür aufreist, dann startet das auch, daher würde ich gerne mit dem ersten Türöffnen einen eigenen Timer starten und solange der Timer <3 Minuten ist, geht das Licht auf alle Fälle nicht direkt aus.

Macht man das über einen Dummy-Dimmer, den man parallel mit dem normalen Dimmer startet oder gibt es da einen einfacheren Weg?

Tommi

MadMax-FHEM

Hi Tommi,

wie hast du das bislang laufen?

Notify?

Dann einfach eine if-Bedingung vor dem set mit ReadingsAge-Abfrage, also wenn ReadingsAge("Lampe", "Ein", 0) < 180 (entspr. 3min) dann "ignorieren" oder halt den set-Befehl nur ausführen, wenn ReadingsAge > 180...

Bei DOIF gibt es sowas wie 'attr wait' (oder so), da ich das aber nicht (kenne) nutze nur der Hinweis...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TommiH

Hallo MadMax-FHEM,

im Moment habe ich ein DOIF am Start , in folgender Form: (der Keks ist nur ein Testversuch -> da fehlt mir noch die Möglichkeit des Auslesens, wenn ich Uhrzeit oder Datumswerte zuweise,)


([GK_TFK_Tuer:"open"] and [GK_LichtDi:level] == 0) (set GK_LichtDi 100 300 15)
DOELSEIF ([GK_TFK_Tuer:"open"] and [GK_LichtDi:level] == 100) (set GK_LichtDi 0 0 30)
DOELSEIF ([GK_TFK_Tuer:"open"] and [GK_LichtDi:level] == 98) (set GK_LichtDi 0 0 5)   
DOELSE (set TestVariable Keks)


Damit geht  beim betreten des WC das Licht für 300 Sekunden innerhalb von 15 Sekunden an.
Wenn nach diesen 15 Sekunden die Tür wieder aufgemacht wird, dann wird es in 30 Sekunden wieder dunkel.
Ergänzend, wenn man zwischendrin auf den Lichtschalter drückt, dann wird die Helligkeit dauerhaft auf 98 geregelt und wenn man dann die Tür öffnet, dann wird nach 5 Sekunden das Licht wieder ausgeschaltet.

Okay, dann schaue ich mir mal das 'attr wait' genauer an.

Langfristig soll aber eh noch ein Sensor dazukommen, der erkennt, wenn das Klo offen ist und dann das Licht so lange an läßt, bis der Klodeckel wieder geschlossen ist. Danach soll es dann gehen wie oben.
Das Problem ist damit nur temporär, aber es kommt halt vor, das unsere Kleinste einfach ins Klo gesaust kommt, dann sollte das Licht nicht direkt ausgehen, wenn man erst seit 1 Minute drauf sitzt ;)

Ich schaue mir die DOIF-Anleitung nochmal genauer an. Danke!

Tommi

MadMax-FHEM

Hi Tommi,

ah, ok... ;)

Wie gesagt ich verwende DOIF nicht...
...habe mich getäuscht mit wait.

Besser passt wohl:

https://fhem.de/commandref_DE.html#DOIF_cmdpause

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

papa

Das sollte auch mit einer Direktverknüpfung mit 2 virtuellen Kanälen gehen. Kanal 1 wie bisher. Kanal2 onTime auf die 3 Minuten und nicht weiter reagieren, wenn schon an. Beide Kanäle mit OR verknüpfen. Damit sichert Kanal2 die Mindestzeit von 3 Minuten.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire