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 -yUm 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 -yJetzt 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-HiResFHEM 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.gzNachdem der Ordner heruntergeladen wurde, muss dieser entpackt werden.
tar -xzf fhem-6.0.tar.gzDer entpackte Ordner wird nun noch nach /opt verschoben und umbenannt.
mv fhem-6.0 /opt/fhemZum Testen kann man nun in den Ordner /opt/fhem wechseln und FHEM mit dem folgenden Befehl starten:
perl fhem.pl fhem.cfgIm 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 --reloadFHEM 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 fhemAnschließ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.targetNun muss noch der automatische start konfiguriert werden.
systemctl enable fhem.serviceMit systemctl können wir FHEM auch manuell starten und stoppen.
systemctl start fhem
systemctl stop fhemBenutzernamen 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 | base64Anschließ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”