FHEM: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(9 dazwischenliegende Versionen derselben Benutzerin werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<div style="margin: 10px 10px 0pt 0pt; border: 1px solid rgb(51, 51, 51); padding: 0em 1em 1em; background-color: rgb(27, 28, 45);"><br><center>[[Image:ZD-Logo.png]]</center> <center><big><span style="color: rgb(181, 181, 181);">'''''Das Board mit Freiheiten'''''</span></big></center> | |||
<font color="white"></font> | |||
---- | |||
<br> | |||
<div style="margin: 0px 20px 15pt 15pt; padding: 0em 1em 1em; background-color: rgb(48, 49, 64); border: 1px solid rgb(0, 0, 0);"> | |||
<br> | |||
{{Navi-Tipps-Sektion}} | |||
[[Datei:Labor symbol home.png]] | |||
=== fhem === | === fhem === | ||
Zeile 199: | Zeile 212: | ||
http://fhemwiki.de/index.php/Category:Code_Snippets | http://fhemwiki.de/index.php/Category:Code_Snippets | ||
=== Quellenangaben === | |||
* [http://fhem.de/ FHEM Homepage] | |||
* [http://www.fhemwiki.de/wiki/FHEM/ FHEM Wiki] | |||
* [http://fhem.de/fritzbox.html FHEM Homepage: FHEM on the Fritz!Box] | |||
=== Links === | |||
*[[FHEM Hausautomation mit Fritzbox]] | |||
* [http://medialab-karlsruhe.dyndns.org/index.php?option=com_content&view=article&id=275%3Afhem-50-auf-fb-7270 Anleitung: FHEM 5.0 auf FB 7270] | |||
* [http://groups.google.com/group/fhem-users/msg/aaafd214893d3d17 Net2Ser Anleitung für FHEM] | |||
*[[Freetz]] | |||
*[[Fritzbox]] | |||
*[[Hauptseite|[Zurück zu Hauptseite]]] | |||
[[Category:Fritzbox]] | |||
[[Category:Hardware]] | |||
[[Category:Software]] | |||
[[Category:Router]] |
Aktuelle Version vom 28. Oktober 2013, 03:44 Uhr

Zebradem AVM Wiki >> Fritzbox Tipps & Tricks >> FHEM | Magyar, Nederlands, Italiano, English |
Community | Modelle | Freetz | Fritzbox Tipps & Tricks |
Hardware-Tipps | System-Tipps | Netzwerk-Tipps | Telefonie-Tipps | Software-Tipps | Sonstige Tipps |
fhem
fhem ist ein Projekt zur Webserver-gestützen Heimautomation, das AVM in Zukunft auf neueren FRITZ!Box-Modellen in die Firmware aufnehmen will (CONFIG_FHEM, CONFIG_PERL). Aber auch auf älteren Modellen kann fhem betrieben werden, jedoch ist die nachträgliche Installation alles andere als simpel.
Daher werden hier Informationen gesammelt wie man fhem auf einer FRITZ!Box nachträglich installiert.
Schritt 1 - Freetz kompilieren
cd freetz-trunk make menuconfig
Bei Hardware Type auf entsprechende Fritz!Box stellen. Show advanced options ---> einschalten Der USB-Stick sollte mit ext2/ext3 formatiert sein. In Patches automount ext2/ext3 beim USB mounting einschalten. Bei den Packages ---> Testing ---> ser2net aktivieren. menuconfig mit Exit verlassen und speichern der Einstellungen bestätigen. in Advanced options ---> kernel modules ---> drivers --> usb-storage.ko, usbserial.ko, fti_sio.ko aktivieren.
--- Legacy Funktion aktivieren in uclibc ---
make uclibc-menuconfig
In General Library Settings ---> Enable SuSv3 LEGACY functions
--- Modem Modul (für das CUL) ---
make kernel-menuconfig
In Device Driver ---> USB support --> "USB Modem (CDC ACM) support aktivieren
Ausführen von make erzeugt das cdc-acm.ko Modul in kernel/modules-ur8-16mb-7270_04.86/drivers/usb/class/ Dieses Modul wird später gebraucht in /var/media/ftp/uStor01/fhem/fritzbox/
make
Schritt 2 - Perl5 installieren
fhem benötigt Perl5 und eine Reihe von Perl-Modulen. Das in Freetz anwählbare microperl ist nicht zum Betrieb von fhem geeignet. Das komplette Perl5 Paket zu kompilieren ist nicht gerade einfach, daher "leihen" wir uns fertige Binaries vom OpenWrt-Projekt. Ein erster Test eines für AR7- und UR8-Modelle geeigneten Sets aus Perl5 und einer auf fhem Bedürfnisse zusammengeschnürten Sammlung von Perl-Modulen kann hier heruntergeladen werden:
Mit Telnet zur Fritz verbinden und folgende Kommandos ausführen:
Dieses Perl Paket ist soweit fertig, dass FHEM ausgeführt wird. Es können für andere Anwendungen noch Module fehlen!
cd /var/media/ftp/uStor01 wget http://gpl.back2roots.org/binary/perl/perl5-mipsel-fhem.tar.gz tar xvzf perl5-mipsel-fhem.tar.gz
Nun hat man auf dem Stick ein 5.6MB fassendes perl Verzeichnis. Damit perl die Module findet genügt diese Zeile in rc.custom:
export PERL5LIB='/var/media/ftp/uStor01/perl/usr/lib/perl5/5.10:/'
Schritt 3 - FHEM & Kernelmodul installieren
Mit Telnet zur Fritz verbinden und folgende Kommandos ausführen:
cd /var/media/ftp/uStor01/ wget http://fhem.de/fhem-5.0.tar.gz && tar -xvzf fhem-5.0.tar.gz && mv fhem-5.0 fhem cd fhem && mkdir fritzbox && cd fritzbox
Im aktuellen Verzeichnis muss die cdc-acm.ko abgelegt sein. (siehe oben)
Das Cul muss wie folgt konfiguriert werden.
Im Freetz-Webinterface - ser2net:
27073:raw:300:/dev/ttyACM0:115200 NONE 1STOPBIT 7DATABITS
und in /var/media/ftp/uStor01/fhem.cfg
define MyCUL CUL 127.0.0.1:27073 3333
Als Grundlage zur fhem.cfg Datei kann man im fhem/examples Ordner die fhem_pgm2 nehmen.
Beispiel:
attr global autoload_undefined_devices 1 attr global logfile /var/media/ftp/uStor01/fhem/fhem-%Y-%m.log attr global modpath /var/media/ftp/uStor01/fhem attr global port 7072 global attr global room hidden attr global statefile /var/media/ftp/uStor01/fhem/tmp/fhem.save attr global verbose 3 define CUL CUL 127.0.0.1:27073 1234 attr CUL room hidden define WEB FHEMWEB 8083 global attr WEB fwcompress 0 attr WEB room hidden define WEBS FHEMWEB 8084 global attr WEBS fwcompress 0 attr WEBS room hidden attr WEBS smallscreen 1 define autocreate autocreate attr autocreate autosave 1 attr autocreate device_room %TYPE attr autocreate filelog /var/media/ftp/uStor01/fhem/%NAME-%Y.log attr autocreate room hidden attr autocreate weblink 1 attr autocreate weblink_room Plots
Damit FHEM auch das Webfrontend läuft muss der inhalt des webfrontend/pgm2 Ordners noch in den Ordner /var/media/ftp/uStor01/fhem/fhem kopiert werden.
FHEM starten
Damit FHEM gestartet wird in die rc.custom folgendes Eintragen
cd /var/media/ftp/uStor01/fhem/fritzbox mknod /dev/ttyACM0 c 166 0 insmod cdc-acm.ko cd /var/media/ftp/uStor01/fhem export dTSB=1212687845 export PERL5LIB='/var/media/ftp/uStor01/perl/usr/lib/perl5/5.10:/' /var/media/ftp/uStor01/perl/usr/bin/perl fhem.pl fhem.cfg &
Erreichbar ist das Interface über: http://fritz.box:8083/fhem
Viel Erfolg
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