FHEM
Um z.B. die Komponenten aus der "FS20"-Serie in FHEM einzubinden, ist es erforderlich, sich vorher mit der Arbeitsweise der FS20-Module vertraut zu machen. Die folgenden Beschreibungen sind entnommen aus http://fhem.de/HOWTO.html und http://fhem.de/commandref.html
Dem FHEM Image liegt eine Konfigurationsdatei von FHEM bei. Nach der Installation des FHEM Image auf der Box liegt dieses im internen Speicher im Verzeichnis /opt/etc/fhem.cfg und kann auch innerhalb der FHEM-Webseiten (http://192.168.178.1:8083/fhem?cmd=style%20edit%20fhem.cfg) bearbeitet werden.
Durch Hinzufügen der Zeilen
#define autocreate autocreate #attr autocreate autosave 1 #attr autocreate device_room %TYPE #attr autocreate filelog /opt/fhem/log/%NAME-%Y.log #attr autocreate weblink 1 #attr autocreate weblink_room Plots
erkennt FHEM Geräte in der Umgebung automatisch, sobald es Übertragungen von diesem empfängt und legt in der FHEM Konfiguration neue Geräte an.
Wird z. B. der Schaltvorgang eines FS20 Handsenders mit dem Hauscode a751 und Tastencode 01 empfangen, legt FHEM ein neues Gerät mit der Bezeichnung FS20_a75101 an.
Umbenennung von erkannten Geräten
Wäre z.B. ein darauf reagierender Aktor ein Funkschalter FS20 ST könnte dieser Zuweisung von passendem Namen und Darstellung in der FHEM Weboberfläche eingebunden werden.
Dazu kann das neue Gerät durch Eingabe des Kommandos
rename FS20_a75101 Steckdose
in der FHEM Kommandozeile in "Steckdose" umbenannt werden und durch
attr Steckdose model fs20st
dem Webinterface als Funkschalter bekannt gemacht werden. Eine Liste der von FHEM unterstützten FS20 Geräte findet sich hier: http://fhem.de/commandref.html#model
Aktionen zu bestimmten Uhrzeiten durchführen
Um Aktionen zu bestimmten Zeitpunkten oder periodisch durchzuführen, sind Zeitregeln vom Typ "at" zu definieren. Die Seite http://fhem.de/commandref.html#at listet eine Reihe von Beispielen:
absolute ones:
define a1 at 17:00:00 set lamp on # fhem command define a2 at 17:00:00 { Log 1, "Teatime" } # Perl command define a3 at 17:00:00 "/bin/echo "Teatime" > /dev/console" # shell command define a4 at *17:00:00 set lamp on # every day
relative ones
define a5 at +00:00:10 set lamp on # switch the lamp on in 10 seconds define a6 at +00:00:02 set lamp on-for-timer 1 # Blink once in 2 seconds define a7 at +*{3}00:00:02 set lamp on-for-timer 1 # Blink 3 times
Switch the lamp on from sunset to 11 PM
define a9 at +*{sunset_rel()} set lamp on define a10 at *23:00:00 set lamp off
More elegant version, works for sunset > 23:00 too
define a11 at +*{sunset_rel()} set lamp on-till 23:00
Only do this on weekend
define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }
Switch lamp1 and lamp2 on from 7:00 till 10 minutes after sunrise define a13 at *07:00 set lamp1,lamp2 on-till {sunrise(+600)}
Switch the lamp off 2 minutes after sunrise each day define a14 at +{sunrise(+120)} set lamp on
Switch lamp1 on at sunset, not before 18:00 and not after 21:00 define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on
Aktionen durch Sensoren auslösen
Um Aktionen durch Sensoren auszulösen, sind Regeln vom Typ "notify" oder "watchdog" zu definieren, z.B.
- Blink 3 times if the piri sends a command
define n1 notify piri:on.* define a8 at +*{3}00:00:02 set lamp on-for-timer 1
schaltet das Gerät "lamp" 3x in Folge an und aus, wenn das Gerät "piri" (Bewegungsmelder) auslöst.
Komplexere Beispiele finden sich unter:
http://fhemwiki.de/index.php/Schalten_mit_mehreren_Bedingungen http://fhemwiki.de/index.php/Category:Code_Snippets
Die FHEM Community diskutiert auf: