Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:fhem:todo

FHEM - Todo

Holiday

Es lassen sich Dateien festlegen, in der Feiertage / Ferien eingetragen werden.

–> Einstiegsdoku pdf

notify

Schalten von Ereignissen abhängig machen - notify Vor allem bei indirekten Schaltungen möchten Sie erreichen, dass ein Ereignis (z.B. Drücken einer Taste) das Schalten eines Aktors nach sich zieht. Die Kopplung erfolgt so: define <name> notify <pattern> <command> also z.B. define Schalter1Notify notify Schalter1 set wz_Media on Heimautomatisierung mit fhem Heimautomatisierung mit fhem - für Einsteiger Version 4.0 Seite 27 Der bei define…notify angegebene Name bezeichnet den ‚Event-Handler‘. Die besondere Eigenschaft dieser notify-Anweisungen ist, dass sie nicht zum Zeitpunkt der Eingabe oder zu einer festgelegten Uhrzeit ausgeführt werden, sondern im Hintergrund ‚mitlauschen‘. Sobald der nach notify angegebene Sensor (Schalter1) einen Funkbefehl übermittelt, wird die im notify angegebene Anweisung ausgeführt. Die oben dargestellte Zeile schaltet also wz_Media an, sobald der Taster Schalter1 betätigt wird. Häufig möchten Sie mit nur einem Klick mehrere Geräte schalten. In diesem Fall können Sie als <command> auch eine Liste von Geräten angeben (siehe devspec beim Befehl set) oder eine Struktur schalten (siehe structure). Allerdings ist das o.g. Beispiel -so wie es da steht- ein Anwendungsfall vornehmlich für die Einstellung als 4-Kanal-Schalter, also Tastern: das Gerät soll beim Betätigen des Schalter1 immer eingeschaltet werden. Für das Ausschalten würde man also analog Schalter 2 mit dem off-Befehl koppeln: define Schalter2Notify notify Schalter2 set wz_Media off Ist Ihr Schalter als 2-Kanal definiert, können Sie herausfiltern, ob der on- oder der off-button gedrückt wurde: define Schalter1NotifyOn notify Schalter1:on set wz_Media on oder Sie schalten das Licht aus, wenn Media eingeschaltet wird – und umgekehrt: define Schalter1NotifyAn notify Schalter1:on set wz_Media on;;set wz_Licht off define Schalter1NotifyAus notify Schalter1:off set wz_Media off;;set wz_Licht on Hinweis: Bei Aufzählungen keine Leerstellen vor und nach den Semikola! Als kürzere Alternative zu define Schalter1NotifyOn notify Schalter1:on set wz_Media on define Schalter1NotifyOff notify Schalter1:off set wz_Media off verwenden Sie die Variable $EVENT: define Schalter1Notify notify Schalter1 set wz_Media $EVENT define Schalter1Notify notify Schalter1 set wz_Media % (alte Schreibweise) Dabei hat $EVENT genau den Wert, der vom abgefragten Sensor (also Schalter1) gesendet wurde. Sendet also Schalter1 den Wert on, so wird der Befehl set wz_Media on ausgeführt. Sendet der Schalter1 den Befehl off, so wird set wz_Media off ausgeführt. Analog funktioniert das für jeden Befehl des Sensors, also auch toggle, dimup, dimdown etc.

Verwendung von notify als Makro Als Makro bezeichnet man das Ausführen mehrerer Befehle auf Grund nur eines auslösenden Ereignisses (also z.B. dem Drücken einer Taste, dem Klick auf einen Weblink o.ä.). In diesem Sinne lässt sich notify als Makro verstehen, wenn Sie wie oben als <command> mehrere Befehle – durch Semikola getrennt- angeben: define Schalter1NotifyAn notify Schalter1:on set wz_Media on;;set wz_Licht off Das Abarbeiten eines notify (Makros) wird gestartet, sobald das <pattern> eintritt. Starten eines Makros – trigger Ein solches Ereignis muss nicht durch ein Funktelegramm ausgelöst werden, sondern kann auch durch den Befehl trigger gestartet werden. Wenn z.B. abends in jedem Raum eine Lampe eingeschaltet werden soll: define Abends notify Abends set wz_LampeKlein on;;set sz_Stehlampe on;;set ku_Downlight on können Sie den Vorgang starten durch trigger Abends Diese Möglichkeit ist besonders zum Testen neuer notify-Makros hilfreich.

globales Logfile

Ebenso wichtig ist die Pfadangabe zur fhem Logdatei: attr global logfile /var/InternerSpeicher/fhem/log/fhem-%Y-%m.log (Hier muss natürlich der zu Ihrem Gerät passende Pfad stehen!). Durch die Angabe %Y-%m wird eine separate Datei pro Monat pro Jahr angelegt – wie weiter oben im Internal-Wert „currentlogfile“ zu sehen ist. Das erlaubt eine zielgerichtete Archivierung, da die Logdateien je nach Anzahl und Art der verwendeten Geräte recht schnell recht groß werden können. Im Beispiel ist zu sehen, dass die Logdateien auf einen USB-Stick ausgelagert wurden.

at

Ein häufiger Anwendungsfall ist das Schalten von Geräten zu festgelegten, sich ggf. wiederholenden Zeitpunkten. Dazu steht in fhem der Befehl define…at zur Verfügung: define <name> at <timespec> <command> also z. B. define LampeAnUm1700 at 17:00:00 set lamp on

LampeAnUm1700 ist hierbei lediglich ein Name/Platzhalter, unter dem diese „Zeitschaltuhr“ in fhem gespeichert wird und später wiedergefunden werden kann. Sobald Sie den oben genannten Befehl eingeben, erscheint dieses geplante Ereignis unter ‚Everything‘ im Abschnitt ‚at‘. Ist die angegebene Uhrzeit erreicht, wird die Anweisung genau einmal ausgeführt. Damit ist das Ereignis erfolgreich abgearbeitet und wird gelöscht. Auch Wiederholungen sind möglich, z.B. täglich um 17:00. Dazu wird der Uhrzeit ein * vorangestellt: define LampeTaeglichAn at *17:00:00 set lamp on Der modify-Befehl dient dazu, den Zeitpunkt zu ändern, ohne den Befehls-Teil erneut angeben zu müssen: modify LampeTaeglichAn *17:30:00

Über die absolute Angabe von Schaltzeiten (um 17:00) hinaus erlaubt der at-Befehl auch relative Angaben. Dies wird durch ein vorangestelltes Plus-Zeichen erreicht. Also „in 10 Minuten“: define a5 at +00:10:00 set lamp on Die Kombination von + und * bewirkt dann z.B. „alle 10 Minuten“, hier für 30 Sekunden: define a6 at +*00:10:00 set lamp on-for-timer 30 Für solche Durchläufe kann auch die gewünschte Anzahl der Wiederholungen in geschweiften Klammern angegeben werden: define a7 at +*{3}00:00:02 set lamp on-for-timer 1 # drei mal blinken (drei mal alle 2 Sekunden für 1 Sekunde einschalten

linux/fhem/todo.txt · Zuletzt geändert: 11.01.2016 09:47 von marc