Watchdog löst nur einmal aus, Device ist Structure

Begonnen von Franz Häring, 07 Juli 2014, 22:32:36

Vorheriges Thema - Nächstes Thema

Franz Häring

Ich will folgende Schaltung realisieren:

Die Einbaustrahler in der Küche sollen abhängig von zwei Bewegungssensoren, einem virtuellen Taster und einem Twilight-Device aktiviert werden. Die Strahler sollen bei Bewegung angehen und erst ausgehen, wenn eine gewisse Zeit lang keine Bewegung mehr erkannt wird.

Mein Lösungsansatz (der einfachere Ansatz mit on-for-time deckt nicht alle Fälle ab):

Zwei Bewegungssensoren (PIRs an Raspi GPIOs) registrieren die Anwesenheit von Personen in Esszimmer und Küche. Die Sensoren liefern ein Signal bei Bewegung, das 5 Sekunden lang nach Bewegungsende aktiv bleibt. Die beiden Sensoren plus ein Dummy zum Testen auf der Website werden in einer Struktur zusammengefasst. Der Status der Struktur verhält sich wie erwartet (wenn ein Element "on" ist, ist die Struktur "on", sonst "off".

Ein Notify auf der Struktur schaltet die Einbaustrahler in der Küche ein (ELRO_STECKDOSE_B), egal ob der Status auf "on" oder "off" wechselt. Ein Watchdog schaltet die Einbaustrahler aus, wenn eine gewisse Zeit lang keine Änderung des Struktur-Status war.

Die entsprechenden Zeilen im fhem.cfg:


define GPIO_Pin16 RPI_GPIO 23
attr GPIO_Pin16 alias Bewegungsmelder Esszimmer
attr GPIO_Pin16 direction input
attr GPIO_Pin16 interrupt both
attr GPIO_Pin16 presence_sensors BewegungsSensorenInEsszimmerOderKueche
attr GPIO_Pin16 pud_resistor down
attr GPIO_Pin16 room Esszimmer,Küche

define GPIO_Pin18 RPI_GPIO 24
attr GPIO_Pin18 alias Bewegungsmelder Küche
attr GPIO_Pin18 direction input
attr GPIO_Pin18 interrupt both
attr GPIO_Pin18 presence_sensors BewegungsSensorenInEsszimmerOderKueche
attr GPIO_Pin18 pud_resistor down
attr GPIO_Pin18 room Küche

define Twilight Twilight 48.9961 12.1908 1 12838020

# Virtuellen Taster für Test als Alternative zu den Bewegungssensoren anlegen.
define VirtuellerTasterBewegungInEsszimmerOderKueche dummy
attr VirtuellerTasterBewegungInEsszimmerOderKueche presence_sensors BewegungsSensorenInEsszimmerOderKueche
attr VirtuellerTasterBewegungInEsszimmerOderKueche room Esszimmer,Küche
attr VirtuellerTasterBewegungInEsszimmerOderKueche setList on,off
attr VirtuellerTasterBewegungInEsszimmerOderKueche webCmd on:off

# Bewegungssensoren in Struktur zusammenfassen.
define BewegungsSensorenInEsszimmerOderKueche structure presence_sensors GPIO_Pin16 GPIO_Pin18 VirtuellerTasterBewegungInEsszimmerOderKueche
attr BewegungsSensorenInEsszimmerOderKueche clientstate_behavior relative
attr BewegungsSensorenInEsszimmerOderKueche clientstate_priority on|An|On off|Aus|Off
attr BewegungsSensorenInEsszimmerOderKueche room Esszimmer,Küche

# Einbaustrahler in der Küche aktivieren, wenn Bewegung in Küche oder Esszimmer ist.
define BewegungInEsszimmerOderKuecheWatchdog watchdog BewegungsSensorenInEsszimmerOderKueche 00:00:10 SAME IF ([BewegungsSensorenInEsszimmerOderKueche] eq "off" and [ELRO_STECKDOSE_B] ne "off") (set ELRO_STECKDOSE_B off)
attr BewegungInEsszimmerOderKuecheWatchdog room Esszimmer,Küche
define BewegungInEsszimmerOderKueche notify (BewegungsSensorenInEsszimmerOderKueche) IF ([Twilight:light] lt 6 and [ELRO_STECKDOSE_B] ne "on") (set ELRO_STECKDOSE_B on)
attr BewegungInEsszimmerOderKueche room Esszimmer,Küche


Das Ganze funktioniert genau einmal, nachdem FHEM neu gestartet wurde. Anschließend werden bei Bewegung die Einbaustrahler wieder aktiviert, der Watchdog führt aber nach Ablauf der 10s das Ausschaltkommando nicht mehr aus.

Was mach ich falsch?


Franz Häring

Hallo krikan,

danke für den Hinweis, es funktioniert jetzt, nachdem ich den Watchdog im Command Re-Triggere:


# Einbaustrahler in der Küche aktivieren, wenn Bewegung in Küche oder Esszimmer ist.
define BewegungInEsszimmerOderKuecheWatchdog watchdog BewegungsSensorenInEsszimmerOderKueche 00:02:00 SAME IF ([BewegungsSensorenInEsszimmerOderKueche] eq "off" and [ELRO_STECKDOSE_B] ne "off") (set ELRO_STECKDOSE_B off);;trigger BewegungInEsszimmerOderKuecheWatchdog .


Allerdings find ich das wie Deudi auch ziemlich unintuitiv. Lässt sich aber wohl nicht mehr ändern, weil das ja schon im Einsatz ist und damit Kompatibilität Pflicht ist.

Dank und Gruß
Franz