FHEM #3 – FHEM-Server installieren

FHEM Titelbanner

 

Dieser Beitrag beschreibt die Installation eines FHEM-Server unter Raspbian oder Ubuntu. Danach zeige ich Euch noch wie man FHEM updatet, das FHEM-Passwort vergibt und wie man seine Konfiguration speichert.

Hinzu kommen noch einige weitere interessante Themen rund um die Installation und Einrichtung von FHEM.

FHEM-Server: Installation

Es empfiehlt sich vor der Installation das System zuerst auf den neuesten Stand zu bringen.

Auch für den FHEM-Server installiere ich nur die Pakete die wirklich notwendig sind. Werden später weitere Pakete benötigt können diese nachinstalliert werden. Damit schone ich die verfügbaren Ressourcen vor allem die des RaspberryPi.

Den folgenden Einzeiler könnt Ihr in Raspbian oder Ubuntu verwenden.

sudo apt-get install -f && sudo apt-get install -y libwww-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libdevice-serialport-perl libio-socket-ssl-perl && wget http://fhem.de/fhem-5.8.deb && sudo dpkg -i fhem-5.8.deb

Dieser Befehle installiert alle notwendigen Pakete, lädt FHEM aktuell in der Version 5.8 herunter (Stand 26.06.2017) und installiert FHEM. Nach der Installation startet FHEM mit der Meldung “Starting fhem” automatisch .

Der FHEM-Server ist nach der Installation per Webbrowser unter der Server IP-Adresse mit dem Port 8083 erreichbar. Bei mir z.B. unter der folgenden IP-Adresse:

 

 

FHEM-Server: Passwort vergeben

Die Vergabe eines Passworts ist vor allem dann notwendig, wenn der FHEM-Server direkt über das Internet erreichbar ist. Auch wer generell auf Nummer sicher gehen will kann hier ein Passwort vergeben.

Wer den FHEM-Server nur intern in seinem eigenen Netzwerk verwendet oder einen reverse proxy mit Passwortzugang verwendet kann diesen Punkt überspringen. Auch bei Verwendung eines VPN-Zugangs für den Zugriff von außen kann auf ein Passwort für den FHEM-Server verzichtet werden.

FHEM verwendet standardmäßig drei verschiedenen Instanzen zur Anzeige der Weboberfläche. Ihr kommt zu den Instanzen indem Ihr in der Weboberfläche auf “Everything” klickt.

Ich verwende nur die “WEB” Instanz in meiner Konfiguration, die für die Anzeige in einem Webbrowser am Rechner vorgesehen und über den Port 8083 erreichbar ist. Die anderen beiden Instanzen sind für die Anzeige auf Mobiltelefonen und Tablets optimiert und über die Ports 8084 und 8085 erreichbar.

Um ein Passwort für die “WEB”-Instanz zu vergeben muss folgender Befehl in das obere Eingabefeld eingegeben werden.

attr WEB basicAuth { "$user:$password" eq "benutzername:passwort" }

Dabei solltet Ihr dann einen eigenen Benutzernamen und ein eigenes Passwort verwenden.

Wer weitere Instanzen verwendet sollte auch diese entsprechend absichern ansonsten sind diese ohne Passwort erreichbar. Dabei müsst Ihr im Befehl “WEB” mit dem Namen der weiteren Instanzen austauschen.

Wird nur eine Instanz benötigt, können die weiteren über “Delete this Device” gelöscht werden:

Nach den Aktionen sollte die Konfiguration mit einem Klick auf “Save config” gespeichert werden:

FHEM-Server: Telnet-Zugang absichern

FHEM stellt auf dem Port 7072 von Haus aus einen Telnet-Zugang bereit. Dieser ist standardmäßig nicht passwortgeschützt.

Um diesen zu schützen gibt man wieder oben in das Eingabefeld den folgenden Befehl ein:

attr telnetPort password passwort

Dabei sollte wieder ein eigenes “passwort” eingesetzt werden.

[adinserter block=”1″]

FHEM-Server: Verschlüsselte Übertragung mit HTTPS/SSL

Bei direktem Zugriff über das Internet sollte neben der Vergabe eines Passworts auch dessen Übertragung verschlüsselt werden.

Die Schritte dazu werden im Wiki exzellent erläutert, weshalb hier auch darauf verweisen möchte. Die Schritte dort können sowohl für Raspbian als auch für Ubuntu verwendet werden.

FHEM-Server: Update inkl. Backup

FHEM bietet auch eine eingebaute Update-Funktion.

Direkt vor dem Update mache ich stets automatisiert ein Backup. Dies lässt sich mit dem folgenden Befehl in das obere Eingabefeld einstellen:

attr global backup_before_update 1

Zuerst überprüfe ich, ob neue Updates zur Verfügung stehen und wenn ja welche. Dies geschieht im Eingabefeld mit dem Befehl:

update check

Falls für mich relevante oder interessante Updates dabei sind starte ich den Update-Vorgang mit folgendem Befehl:

update

Nach Beenden des Updatevorgangs erscheint ganzen unten der Hinweis das man das System jetzt bitte neustarten möchte. Die geschieht im Eingabefeld mit dem Befehl:

shutdown restart

 

 

FHEM-Server: Schreibschutz der fhem.cfg aufheben

FHEM kann grundsätzlich komplett über die Weboberfläche konfiguriert werden. Die Einstellungen werden dabei in der fhem.cfg gespeichert. Diese Datei erreicht man über den Menüeintrag “Edit files”

Standardmäßig ist das direkte Bearbeiten dieser Datei nicht möglich, da sie schreibgeschützt ist.

Besitzt man eine sehr große und komplexe Konfiguration ist es meiner Meinung nach notwendig die fhem.cfg auch direkt bearbeiten zu können.

Um die fhem.cfg zur Bearbeitung freizugeben muss folgender Befehl in das Eingabefeld oben eingegeben werden:

attr WEB editConfig 1

Danach lässt sich die fhem.cfg direkt in FHEM bearbeiten und vor allem speichern.

FHEM-Server: Kommando-Referenz

Eine wichtige Hilfe stellt die FHEM Kommando-Referenz dar.

Kommando-Referenz(link)

In Ihr sind alle möglichen FHEM-Befehle und Module, in der Regel sehr detailliert, beschrieben. Zudem findet man darin sehr viele Beispiele inklusive Code.

Gerade als Anfänger sollte man hier öfters mal einen Blick hineinwerfen.

Reinhard

Autor von frombeyond.de. Smart-Home-Verrückter.

Nutzt Zuhause FHEM zusammen mit HomeMatic, JeeLink, 1-Wire, Flammtronik / Atmos HV, Buderus KM271, Philips HUE, Xiaomi Yeelight, Alexa, Sonos, FritzBox, Ubiquiti UniFi APs, APC UPS, APC PDU, IPMI. MariaDB, InfluxDB und Grafana zur Auswertung. Als Hardware-Untersatz kommen mehrere RaspberryPis und Supermicro Serverhardware zum Einsatz. Softwareseitig werden hauptsächlich Raspbian, Ubuntu, ESXi und Docker verwendet.