Bei FHEM handelt es sich um einen auf Perl basierenden Server zur Hausautomatisierung der sehr beliebt im privaten Umfeld ist und eine alternative zu ioBroker darstellt.
FHEM ist zwar schon ein bisschen älter, kommt dafür aber komplett ohne Cloud aus. Dabei werden die folgenden Technologien unterstützt:
- eQ3 spezific: HomeMatic, MAX!, FS20, EM1000, FHT80b, HMS, S300, ESA2000
- KNX, ZWave, EnOcean, Philipps HUE, FRITZ!Dect, Intertechno, HomeEasy, X10
- 1Wire, Firmata, webio, panStamp, LIRC, JeeLink, RFXCOM/RFXTRX, Wireless M-Bus
- Davis VantagePro2, Oregon Scientific, Allnet
- TVs von LG, Panasonic, Philips, Samsung, Sony
- Devices von Bose, Sonos, Squeezebox
- Amplifier von Denon, Onkyo, Pioneer, YAMAHA
- iTunes/AppleTV, Enigma2, XBMC/Kodi, MediaPortal, Plex
- Alexa, HomeKit, HomeBridge, MQTT
Solltet ihr etwas verwenden, was noch nicht in dieser Liste auftaucht ist das für gewöhnlich auch kein Problem. Entweder man schreibt sich selber ein Perl Modul oder man schaut mal in das Forum, ob das vielleicht schon jemand anderes getan hat.
Das ganze kann man auf einer beliebigen Hardware installieren. Ich habe das ganze schon auf einem Raspberry Pi (Affiliate Link) laufen lassen, verwende aber mittlerweile einen Intel NUC (Affiliate Link).
Als Betriebssystem ist verwende ich ein CentOS (Linux). Für die Installation von FHEM unter Debian/Raspbian habe ich bereits ein Tutorial geschrieben.
Vorbereitung des CentOS Systems
Bevor eine neue Software installiert wird, sollte das System, wenn möglich, aktualisiert werden. Dafür verwendet man unter CentOS den folgenden Befehl:
yum update -y
Um FHEM auf dem System verwenden zu können wird noch einen zusätzliche Perl Library benötigt. Damit diese installiert werden kann, wird auf dem System das EPEL Repository benötigt. Dieses kann ebenfalls mit einem einfachen Befehl installiert werden.
yum install epel-release -y
Jetzt kann das RPM Paket perl-Device-SerialPort und das Paket perl-Digest-MD5 auf dem System installiert werden.
yum install perl-Device-SerialPort perl-Digest-MD5 perl-Time-HiRes
FHEM Installation
Im Gegensatz zu Debian, muss man auf dem CentOS System FHEM eigenständig installieren. Das ist aber nicht weiter kompliziert. Zuerst wird FHEM heruntergeladen. Dazu dient der folgende Befehl:
wget http://fhem.de/fhem-6.0.tar.gz
Nachdem der Ordner heruntergeladen wurde, muss dieser entpackt werden.
tar -xzf fhem-6.0.tar.gz
Der entpackte Ordner wird nun noch nach /opt verschoben und umbenannt.
mv fhem-6.0 /opt/fhem
Zum Testen kann man nun in den Ordner /opt/fhem wechseln und FHEM mit dem folgenden Befehl starten:
perl fhem.pl fhem.cfg
Im Webbrowser kann FHEM unter dem Port 8083 aufgerufen werden.
Sollte dies aus irgendeinem Grund nicht funktionieren, kann es sein das die Firewall auf dem System noch angepasst werden muss. Dafür können die folgenden Zeilen verwendet werden.
firewall-cmd --zone=public --add-port=8083/tcp --permanent
firewall-cmd --reload
FHEM Automatisch starten und stoppen
Als nächstes ist es sehr sinnvoll, ein Start- bzw. Stopskript zu hinterlegen. Dadurch kann FHEM bequem gestartet und gestoppt werden. Zusätzlich kann eine Konfiguration angelegt werden, um FHEM nach einem Neustart der Hardware (zb. nach einem Stromausfall) direkt wieder zu starten.
Dafür müssen wir als erstes einen eigenen User für FHEM auf dem CentOS System anlegen. Diesen nennen wir einfach fhem.
adduser fhem
Anschließend müssen wir die Dateien von FHEM dem neuen User zuordnen.
sudo chown -R fhem fhem/
Nun können wir unter /etc/systemd/system eine neue Datei mit dem Namen fhem.service anlegen. Diese wird mit dem folgenden Inhalt gefüllt.
[Unit]
Description=FHEM service
After=network.target
[Service]
Type=forking
User=fhem
Group=dialout
WorkingDirectory=/opt/fhem
ExecStart=perl fhem.pl fhem.cfg
[Install]
WantedBy=multi-user.target
Nun muss noch der automatische start konfiguriert werden.
systemctl enable fhem.service
Mit systemctl können wir FHEM auch manuell starten und stoppen.
systemctl start fhem
systemctl stop fhem
Benutzernamen und Passwort für FHEM
Ich persönlich finde es immer sinnvoll den Zugang zu FHEM oder einer anderen Software zu beschränken. Um dies bei FHEM realisieren zu können, brauchen wir eine Benutzername / Passwort Kombination, welche Base64 encoded ist. Dafür können wir unter CentOS den folgenden Befehl verwenden.
echo -n benutzername:passwort | base64
Anschließend muss die Zeichenfolge vom Terminal im Frontend eingefügt werden. Dazu ruft man das Frontend von FHEM auf und wählt auf der linken Seite im Menü den Punkt Everything aus. Hier klickt man dann auf das Signalwort WEB im Bereich FHEMWEB.
Auf der Seite die sich nun öffnet finden wir eine Zeile die mit attr WEB startet. Hier wird im Dropdown Menü der Punkt basicAuth ausgewählt. In das Formularfeld dahinter wird die Zeichenfolge, die wir auf dem Terminal erstellt haben, kopiert. Um die Konfiguration zu speichern, wird auf den Punkt Save config im Menü geklickt
Wenn alles funktioniert hat, sollte nun ein Login Fenster kommen (Falls nicht, einfach nochmal versuchen).
Damit haben wir nun eine lauffähige Version von FHEM auf unserer Hardware. Als nächstes geht es darum, entsprechende Sensoren und Aktoren in FHEM einzubinden.
Ich würde mich freuen, wenn ihr mir ein kurzes Kommentar hinterlasst, welche Sensoren, Aktoren oder Hersteller euch besonders interessieren.
2 Replies to “FHEM – Installation auf dem Intel NUC”