Nach ersten Gehversuchen auf der Synology-Plattform entschied ich mich, einen FHEM-Server auf einem Banana Pi zu betreiben. FHEM ist ein sehr umfangreiches Perl-Projekt, welches eine „Freundliche (Variante zur) Hausautomatisierung und Energie-Messung“ bietet. Und dieses Projekt ist komplett Open Source.
In Berührung mit FHEM kam ich, als mein Freund Ron sein Max!-Starterset entsorgen wollte – das sind Heizungsthermostate, die per Software steuer- und programmierbar sind. Ich bot mich an, ihm den Weg zur Entsorgungsstelle abzunehmen und bastelte etwas damit herum. Die Max!-Software rennt nur unter Windows und in einer Virtualbox will sie nicht. So begann meine Alternativensuche in der Open Source Welt und ich fand http://fhem.de/fhem_DE.html.
Da ich eine alte Synology in der Ecke stehen hatte, versuchte ich mich mit FHEM auf dieser Plattform. Es gibt zwar ganz gute Tutorials, aber man ist doch insbesondere wenn es später um USB-Treiber geht recht eingeschränkt. Also besorgte ich eigens dafür meinen ersten Einplatinencomputer – den Banana Pro. Das darauf laufende Bananian-OS (ein Debian-Derivat) scheint mir eine sehr gute Plattform dafür zu sein und stromsparend ist solch ein Konstrukt allemal.
Installation
Die Installation von FHEM verläuft extrem einfach. Zwar kann man mit den TGZ-Paketen alles von Hand machen, ein Repository spart hier aber die Suche nach Abhängigkeiten und wirft eine aktuelle und stabile Version direkt im Verzeichnis /opt/fhem ab. Dazu folgt man den einfachen Schritten, die auf https://debian.fhem.de aufgelistet sind:
# Den Schlüssel für das Repository besorgen:
wget -qO – https://debian.fhem.de/archive.key | apt-key add –# Das Repository einbinden:
echo „deb https://debian.fhem.de/stable ./“ > /etc/apt/sources.list.d/fhem.list# Die Paketliste aktualisieren und FHEM installieren:
apt-get update
apt-get install fhem
Der letzte Befehl sammelt automatisch alle notwendigen Abhängigkeiten ein und installiert alles, was zum Start benötigt wird. Zum Abschluss der Paketinstallation erfreut ein kurzes, aber aussagekräftiges „Starting fhem…“ das Auge des Installateurs und über http://<IP>:8083/fhem kann auf den neuen Dienst zugegriffen werden.
Eine Eigenart von FHEM ist das interne Modul-Update, welches den Paketmanager der jeweiligen Distribution unbeeindruckt lässt. Für ein immer aktuelles System empfiehlt es sich sehr, in der unscheinbaren Kommandozeile (siehe Bild oben) der Website nacheinander die Befehle
update
shutdown restart
auszuführen. Der erste Befehl lädt aktuelle Versionen aller Module herunter und der zweite Befehl startet den Serverdienst neu.
In eine Datenbank loggen
In der Standardkonfiguration schreibt FHEM seine Daten in diverse Logfiles. Da es erst dann Spaß macht, wenn man ermittelte Daten auch plottet, kann hier bei großen Datenmengen schnell Frust entstehen. Darum logge ich in eine MySQL-Datenbank. Deren Einrichtung ist nicht wirklich komplex: Es ist eine db.conf-Datei anzulegen, für die es ein Muster im Verzeichnis contrib/dblog/ gibt. In diesem Verzeichnis befinden sich auch SQL-Snipplets zum Einrichten der Datenbank. Ist dies getan, so aktiviert der folgende Eintrag in der fhem.cfg das Loggen in die Datenbank (./db.conf ist der Pfad zur editierten db.conf-Datei und anstelle von .*:.* könnten auch globale Filter angegeben werden):
define logdb DbLog ./db.conf .*:.*
Nun ist FHEM von Haus aus sehr gesprächig. Loggt man sich auf der MySQL-Konsole ein, so zeigt der Befehl
SELECT * FROM history ORDER BY TIMESTAMP;
alle aufgezeichneten Werte in chronologischer Reihenfolge an. Man wird schnell erkennen, dass dort viel mehr steht als benötigt wird. Je definiertem Gerät kann man die Datenmenge mit zwei simplen Parametern reduzieren:
attr <GERÄT> event-min-interval state:720
attr <GERÄT> event-on-change-reading state
Der untere Eintrag sagt, dass nur dann etwas in die Log-Datenbank zu schreiben ist, wenn sich der danach angegebene Wert (hier: state) tatsächlich ändert. Alle nicht-angegebenen Werte werden gar nicht geloggt. Die obere Zeile bewirkt, dass midnestens alle 720 Sekunden der Wert im Logfile erscheint. Wenn man plotten möchte lässt dies Diagramme schöner asussehen, auch wenn sich Werte für lange Zeit nicht ändern.
Weiterführende Links
http://fhem.de/commandref_DE.html: Die FHEM-Befehlsreferenz. Parameter und deren Beschreibung findet man hier auf Deutsch und Englisch.
http://www.fhemwiki.de/wiki/Hauptseite: Das sehr gut gepflegte und oft helfende Wiki des FHEM-Projektes.
http://www.meintechblog.de/tag/fhem/: Hier bin ich bei meinen Recherchen oft gelandet. Dieser Blog ist sehr umfangreich und motiviert gern mal zu neuen Ideen.
http://forum.fhem.de/: Hier findet man eine sehr aktive Community, die Fragen binnen Stunden beantwortet. Aber Achtung: Wie bei jeder Community befreit auch diese nicht vom Selbstdenken! Also: Erst recherchieren, dann fragen.
Mein Artikel: FHEM: Max!-Heizungsthermostate steuern
Mein Artikel: Erfahrungen mit Max!-Thermostaten und FHEM
2 Responses
echo „deb https://debian.fhem.de/stable ./“
führt dazu, dass die Zeile mit Anführungsstrichen in /etc/apt/sources.list.d/fhem.list geschrieben wird. Dann funktioniert apt-get update garnicht mehr.
Danke für die Anleitung btw! ♥ 🙂
Moin,
das ist korrekt. WordPress lässt mich keine amerikanischen Anführungszeichen darstellen – damit gänge es ;-). Danke für den Hinweis!