FHEM Docker Container einrichten

29. September 2022, Tags:

Schon in früheren Artikeln habe ich über meine Erfahrungen mit der Heimautomatisierungsplattform FHEM geschrieben. Diese ist zwar meiner Meinung nach durchaus etwas in die Jahre gekommen, tut aber noch immer ihren Dienst, wenn ältere Geräte ins Smart Home eingebunden werden sollen. In diesem Artikel beschreibe ich, wie man den FHEM Docker Container einrichten kann. Dieser kann zum Beispiel sehr einfach und schnell auf einem NAS genutzt werden. Tiefgreifende Linux-Kenntnisse sind dafür nicht notwendig.

Bitte werft auch einen Blick auf meinen Blogpost Energiekosten durch smarte Thermostate sparen mit FHEM!

Container in ein QNAP NAS einbinden

Bei anderen Herstellern ist es gewiss ähnlich, aber ich habe nun mal ein NAS von QNAP 🙃. Die Grundlagen sind jedoch für alle anderen Plattformen vergleichbar. Auf QNAP findet das ganze Voodoo in der App „Container Station“ statt. Unter dem Menüpunkt „Create“ kann man einfach nach „FHEM“ suchen und bekommt das präsentiert, was der Docker Hub so zu bieten hat. Der Container fhem/fhem ist vollkommen ausreichend. Auch für die Anbindung an Alexa ist kein weiterer Container nötig!

Bei der Einrichtung habe ich auf folgendes geachtet:

  • die CPU-Leistung habe ich auf 50% der Leistung meines NAS reduziert
  • den maximalen Arbeitsspeicher (RAM) habe ich auf 4GB gestellt
  • das Netzwerk steht bei mir aus „NAT“ und der Port 8083 des NAS wird auf 8083 im Container weitergeleitet
  • der Container muss im privileged mode ausgeführt werden
  • USB-Geräte (ACM USB modems, TTY, …) werden an den Container weitergereicht (siehe Screenshot)

Screenshot QNAP Docker Station - Devices

Vor allem die letzten beiden Punkte sind immens wichtig. Ohne diese ist der Container nicht in der Lage, Geräte jenseits des WLANs zu finden. Ich nutze hier einen per USB angeschlossenen CUL und einen ebenfalls per USB angeschlossenen RFXtrx433 Transceiver. Den CUL brauche ich, um mit meinen Thermostaten zu „sprechen“. Er könnte auch die Techem-Messgeräte an den Heizungen auslesen oder den Wasserverbrauch von entsprechenden Zählern. Dafür müsste er jedoch in einem anderen Modus betrieben werden. Den RFXtrx hatte ich noch da 😁.

FHEM Docker Container einrichten

Nachdem der Container gestartet ist, sollte man über http://<NAS>:8083 auf eine Web-Oberfläche zugreifen können. Hier werden wir nun den FHEM Docker Container einrichten. Im Menü gibt es auf der linken Seite den Punkt „System“. Dieser führt in ein Status-Menü, in dem einiges rot ist. Das ist nicht schlimm – hier fehlen nur ein paar Updates. Auch im alltäglichen Betrieb sollte das hin und wieder gecheckt werden.

Zunächst habe ich das System aktualisiert. Dazu muss man lediglich auf „System“ klicken und dann der Reihe nach „set fhemServerApt reposync“ und danach „set fhemServerApt toUpgrade“ ausführen. Danach bin ich ganz ähnlich mit dem Node.js vorgegangen: Erst ein „set fhemServerNpm statusRequest“, dann unter „Package“ ein „set install alexa-fhem“. Vermutlich fehlen dann noch ein paar Updates. Diese habe ich über „showOutdatedList“ gefunden und über „Update“ installiert. Ich habe nie „all“ gewählt, weil das irgendwie bei meinen ersten Versuchen schief ging. Stattdessen habe ich die in der „showOutdatedList“ gezeigten Komponenten von Hand gewählt.

Ich habe hierzu ein paar Screenshots angehangen.

Bedienungsanleitung 🤪

Die Oberfläche von FHEM ist sehr technisch gehalten und nicht mehr so richtig state-of-the-art. Aber man ist hier ja nicht jeden Tag unterwegs und sie erfüllt ihren Zweck. Dennoch denke ich, dass ein paar erklärende Worte hilfreich sind.

Prinzipiell besteht FHEM aus Geräten (Devices), die in Räumen organisiert werden können. Alles, was irgendeine Aktion auslöst, ist ein Device. So zum Beispiel auch das oben erwähnte „fhemServerApt“. Geräte können mit „set“-Befehlen zu Aktionen überredet werden und mit „get“-Befehlen nach Informationen gefragt werden. Die relevantesten set/get-Befehle finden sich ganz oben in einem Device und deren Parameter können meist aus Drop-Down-Menüs gewählt werden. Allerdings kann man Befehle auch in der unscheinbaren weißen Zeile ganz oben im Interface von Hand eintragen. Um einen Befehl aus dem Drop-Down-Menü auszuführen, wird dieser gewählt und dann per Klick auf „set“ bzw. „get“ ausgeführt. Das führt nicht immer zu einer Rückmeldung, was durchaus verwirrend sein kann. Es lohnt sich, in einem zweiten Browser-Tab den „Event monitor“ aus dem Menü links offen zu haben. Hier setze ich meist noch den Haken bei „FHEM log“. Dann finde ich im Datenwust eigentlich immer die soeben ausgelöste Funktion.

WICHTIG: Alles, was im Web-Interface gemacht wird, ist zunächst nur temporär gespeichert. Um eine Konfiguration permanent zu speichern, so dass sie auch nach einem Neustart noch verfügbar ist, muss links oben im Web-Interface „Save config“ angeklickt werden! Ein rotes Ausrufezeichen daneben bedeutet, dass ungespeicherte Informationen vorhanden sind.

Zusammenfassung

Damit sind wir fertig damit, den FHEM Docker Container einzurichten. Noch macht der Container nichts. Er kann jetzt mit Geräten und Funktionen bestückt werden. Hilfestellung findet man im FHEM Wiki und auch im sehr aktiven FHEM-Forum.

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.