FHEM > Anfängerfragen

Kleiner FHEM-Kurs: Erste Schritte in FHEM

<< < (6/6)

freddie:
Noch eine kleien Anmerkung zum Kurs:
Für Anfänger wäre es vielleicht vorteilhaft, ein "echtes" Treppenlicht (mit retriggern, also "verlängern der Einschaltzeit durch Drücken des Tasters) zu erstellen. Das könnte dann auch direkt in eine funktionierende FHEM-Umgebung eingefügt werden. Dabei lernt man auch gleich noch eine weitere nützliche Funktion (watchdog, also retriggerbarer abschaltverzögerter Timer). Die Erklärung im Wiki ist leider (vor Allem für Anfänger) etwas schwer zu verstehen.
Dazu noch ein passender Text (Kann ins Wiki eingefügt werden):

Mit dieser Lösung können sie das Licht allerdings erst wieder einschalten, wenn es bereits ausgegangen ist. Der Grund hierfür ist der verwendete Timer, der mit der Meldung vom notify anfängt zu laufen und das Licht ausschaltet, wenn er abgelaufen ist. Wenn man jetzt, wie bei den meisten Treppenhäusern üblich, die Zeit bis zum Ausschalten des Treppenhauslichts verlängern möchte, kommt die Funktion "Watchdog" zum Zug. Ein "Watchdog" ist ein Timer, der immer wieder bei "0" startet, sobald der Eingang (z.B. ein "notify") gesetzt wird.D.h. er läuft nicht, wie zuvor automatisch ab und schaltet dann, sondern kann immer wieder neu gestartet werden.
Diese Funktion kann für viele Anwendungen eingesetzt werden.
Dazu ändern wir das notify nchmals ab, indem das "DEF" wie folgt abgeändert wird:

--- Code: ---[sw_Light_on:on set sw_Light on $EVENT/code]
Dann erstellen wir einen Watchdog: [code]define WD_Switch_on watchdog sw_Switch:on 00:02:00 sw_Switch:on set sw_Light off; trigger WD_Switch_on/code]
Mit dem obigen Befehl erstellen wir den Watchdog ("define WD_Switch_on watchdog"). Dann kommt erst mal ein regulärer Ausdruck (was soll passieren): "sw_Switch:on", danach für wie lange: "00:02:00" (zwei Minuten). Die Zeit kann zum Testen natürlich auch in den Sekundenbereich verkürzt werden, z.B. "00:00:10", also für 10 Sekunden an). Danach kommt wieder ein regulärer Ausdruck (was soll nach dem endgültigen Ablauf des Timers (Watchdog) passieren): "set sw_Light off;" und zum Schluß noch das Kommando, daß der Watchdog (Timer) wieder bei "0" starten soll, wenn er erneut durch das notify gestartet wird: "trigger WD_Switch_on".
Dann fügen wir den Watchdog noch dem Raum "Stairwell" hinzu: [code]attr WD_Switch_on room Stairwell
--- Ende Code ---
. Für alle Fälle setzen wir noch das Attribut "autoRestart" und aktivieren es:
--- Zitat ---attr WD_Switch_on autoRestart 1
--- Ende Zitat ---
.
Wenn jetzt das Treppenhauslicht mittels sw_Switch eingeschaltet wird, wird es für die oben eingestellte Zeit an bleiben und dann wieder ausgehen, es sei denn, man "drückt" während der "AN-"Zeit nochmals auf "sw_Switch". Dann geht das Licht erst aus, wenn die Zeit nach dem letztmaligen Drücken von "sw_Switch". abgelaufen ist.

CU

Freddie

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln