FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: FunkOdyssey am 09 Februar 2020, 16:12:46

Titel: Motion-Einschaltung: Wait abbrechen oder wie physikalisches Schalten erkennen?
Beitrag von: FunkOdyssey am 09 Februar 2020, 16:12:46
Hallo,
ich habe folgenden Code:

define di_on_for_timer ([detector:"motion"])
(set light on)
(set light off)
attr di_on_for_timer do resetwait
attr di_on_for_timer wait 0,30


Was mache ich, wenn in der Zwischenzeit, jemand bewusst das Licht eingeschaltet hat und der Wait-Timer noch läuft?

Wenn die Einschaltung ausschließlich über FHEM läuft:
Wie kann ich dann den Wait-Timer des DOIFs vorzeitig abbrechen?
Nur mit "set di_on_for_timer initialize"? Oder ich muss mir ein CMD2 einbauen und diesen bewusst setzen?
Oder gibt es noch andere Möglichkeiten?

Aber was macht man, wenn die Lampe über physikalische Schalter eingeschaltet wird?
Weiß jemand, wie ich dann vermeide, dass die Lampe über diese DOIF nach 30 Sekunden wieder ausgeschaltet wird?
Es kann ja sein, dass jemand das Licht nun dauerhaft eingeschaltet haben möchte.

Danke für eure Hilfe.

Titel: Antw:Motion-Einschaltung: Wait abbrechen oder wie sonst?
Beitrag von: Per am 11 Februar 2020, 12:48:56
Da gibt es viele Möglichkeiten.
Du kannst zusätzliche Fälle einführen und diese verriegeln ([$SELF:cmd] != 3), du kannst ein extra DOIF nehmen, welches An-Aus-Auto kennt.
Früher hatte ich mal nen Modul geschrieben (54_manu (https://forum.fhem.de/index.php/topic,52225.msg439869.html)), verwende aber bei neuen DOIF die Variante mit dem "Verriegeln".
Titel: Antw:Motion-Einschaltung: Wait abbrechen oder wie sonst?
Beitrag von: sash.sc am 11 Februar 2020, 13:07:15
Stehe da vor dem selben Problem. Versuche das gerade mit einem shelly 1 und den angeschlossenen schaltet zu realisieren.

Gesendet von meinem MI 9 mit Tapatalk

Titel: Antw:Motion-Einschaltung: Wait abbrechen oder wie sonst?
Beitrag von: KernSani am 11 Februar 2020, 13:42:16
Vielleicht kann Homezone (https://forum.fhem.de/index.php/topic,98594.msg919493.html#msg919493) da auch helfen...
Titel: Antw:Motion-Einschaltung: Wait abbrechen oder wie sonst?
Beitrag von: FunkOdyssey am 11 Februar 2020, 18:23:48
Zitat von: Per am 11 Februar 2020, 12:48:56
Da gibt es viele Möglichkeiten.
Du kannst zusätzliche Fälle einführen und diese verriegeln ([$SELF:cmd] != 3), du kannst ein extra DOIF nehmen, welches An-Aus-Auto kennt.
Früher hatte ich mal nen Modul geschrieben (54_manu (https://forum.fhem.de/index.php/topic,52225.msg439869.html)), verwende aber bei neuen DOIF die Variante mit dem "Verriegeln".

Bezieht sich deine Antwort mehr auf das Abbrechen des Wait-Timers oder der Erkennung einer manuellen Einschaltung?
Eine Verriegelung nutze ich sehr häufig, aber ich verstehe nicht, wie mir das hier helfen soll.
Und könntest du kurz beschreiben, was du mit dem Extra-DOIF "An-Aus-Auto" meinst?
Wie kann FHEM denn erkennen, ob jemand manuell (z.B. über Homebridge, Alexa oder Schalter) die Lampe geschaltet hat?

Zitat von: KernSani am 11 Februar 2020, 13:42:16
Vielleicht kann Homezone (https://forum.fhem.de/index.php/topic,98594.msg919493.html#msg919493) da auch helfen...

Danke. Das schaue ich mir an.
Titel: Antw:Motion-Einschaltung: Wait abbrechen oder wie physikalisches Schalten erkennen?
Beitrag von: Damian am 11 Februar 2020, 22:57:09
Du kannst doch deinen Code wie folgt erweitern:

define di_on_for_timer ([detector:"motion"] and [?schalter] ne "on")
(set light on)
(set light off)
DOELSEIF ([schalter] eq "on")
(set light on)
DOELSEIF ([schalter] eq "off")
(set light off)
attr di_on_for_timer do resetwait
attr di_on_for_timer wait 0,30


Schalter kann dann etwas sein: echter Schalter,  Dummy oder ein anderes DOIF, was das eigentliche Einschalten darstellt.