Fallstudie: Haus automatisieren
Einleitung
Dieser Artikel ist eine Fallstudie zum Einsatz von FHEM für die Hausautomation mit Anwendungsfeldern von FHEM, die für die meisten Anwender üblich sind. Er soll Einsteigern in FHEM die Nutzung von FHEM erleichtern.
Ich bin ein FHEM-Nutzer der ersten Stunde und FHEM-Entwickler seit 2007. Dieser Artikel beschreibt die aufgrund von Umzügen vierte Installation von FHEM in einer von mir bewohnten Liegenschaft, nicht eingerechnet Aktualisierungen und Veränderungen an der Hausautomation aufgrund von Wechseln bei der eingesetzen Server-Hardware und -Software und den verwendeten Hausautomationssystemen.
Ich bringe in diesen Artikel meine Erfahrungen ein, was sich als nützlich und praktisch erwiesen hat, und möchte dem FHEM-Anwender helfen, die Herausforderungen beim Einsatz bei FHEM durch konkrete Beispiele anhand meiner Anwendungsfälle zu bewältigen.
Automatisierte Liegenschaft
Bei der Liegenschaft handelt es sich um ein Einfamilienhaus mit vier Etagen (Keller, Erdgeschoss, Obergeschoss, Dachgeschoss), Garage und Garten.
Hausautomationsserver
Hardware
Anforderungen
Die Server-Hardware sollte zum einen ausreichend Rechenleistung für den Betrieb des FHEM-Frontends FHEMWEB bereitstellen, andererseits sparsam im Stromverbrauch sein, sowie autark.
Die Autarkie spricht dafür, einen dedizierten Rechner für FHEM zum Einsatz zu bringen, denn die Hausautomation sollte durchgehend laufen, unabhängig von den anderen Spielereien im Home Lab.
Geräteauswahl
Es lag zunächst nahe, einen Raspberry Pi zum Einsatz zu bringen. Während die Modelle bis zum Raspberry Pi 3 bei der Darstellung von SVG-Plots mit längeren Zeitreihen überfordert waren, liefern die Versionen 4 und 5 mit viel RAM genügend Leistung. Allerdings sind die Flaggschiffe mittlerweile recht teuer, wenn man alle erforderlichen Komponenten (Computer, SD-Karte für Boot-Partition, SSD für Root- und Daten-Partionen, Netzteil, Gehäuse) zusammennimmt. Da ich die I/O-Ports des Raspberry Pi für Basteleien nicht benötige, habe ich mich in der Welt der Mini-PCs umgesehen.
Meine Wahl fiel auf einen Minisforum UN150P. Das Gerät bietet für knapp über 200 € eine grandiose Ausstattung und Leistung (Testbericht). Im Dezember 2025 ist das Gerät nicht (mehr) verfügbar. Es gibt aber eine Reihe vergleichbar leistungsstarker Mini-PCs in dieser Preisklasse.
Aufstellort
Um mit den anzuschließenden Funk-Interfaces das Haus möglichst gut abzudecken, empfiehlt sich ein zentraler Aufstellort. Bei mir ist das unter dem Schreibtisch im Arbeitszimmer im Obergeschoss.
Eine Aufstellung im Serverschrank im Keller ist wegen der abseitigen Lage und der elektromagnetischen Abschirmung nicht sinnvoll.
Peripherie
Für die Erstinstallation habe ich Tastatur, Maus und HDMI-Monitor an den Mini-PC angeschlossen. Später läuft der Mini-PC ohne Peripherie ("Headless").
Alternativ kann man einen Remote-KVM-Adapter anschließen. Dieser überträgt die Anschlüsse inklusive Bild hardwareseitig an einen entfernten Rechner. Im Gegensatz zu Remotedesktopsoftware, die ein laufendes Betriebssystem auf dem ferngesteuerten Rechner erfordert, kann man mit dem Remote-KVM-Adapter bereits den Boot-Vorgang beobachten und Einstellungen im BIOS aus der Ferne machen.
Ich verwende dafür an einem anderen Rechner den GL.iNet Comet (GL-RM1) in der PoE-Variante. Für rund 100 € erhält man damit eine Funktionalität, für die man sonst ein sehr viel teureres Server-Mainboard benötigen würde.
Software
Überblick
Der Softwarestack auf dem Hautomationsserver besteht aus Proxmox Virtual Enviromnent und darauf ein Linux-Container mit Debian Linux 13 (Trixie) und FHEM als Hausautomationssoftware sowie Zigbee2MQTT für das Management der Zigbee-Geräte. Die Installation ist im folgenden skizziert.
Installation des Proxmox Virtual Environments
Installationsanleitung auf der Proxmox-Webseite
Installation des Linux-Containers
Mit ssh auf dem Proxmox-Host anmelden und folgende Befehle ausführen, um die Vorlage zu holen und Debian 13 (Trixie) zu installieren (oder das zum gegebenen Zeitpunkt aktuelle Debian):
pveam update
pveam available
pveam download local debian-13-standard_13.6-1_amd64.tar.zst
Installation von FHEM im Linux-Container
Der Anleitung https://debian.fhem.de/ folgen (The easy way: use apt).
Anwendungsfelder
Die gängigen Anwendungsfelder sind
- Beleuchtungssteuerung
- Raumklimaüberwachung und Heizungssteuerung
- Wetteraufzeichnung
In dieser Fallstudie beschreibe ich den Aufbau der Zigbee-Infrastruktur für Beleuchtung, Raumklimaüberwachung und Heizungssteuerung. Zum Zeitpunkt der Erstellung dieses Artikels sind 75 Zigbee-Geräte in Betrieb (Leuchtmittel, Steckdosen, Fernbedienungen, Bodenfeuchtesensoren, Bewegungsmelder, Heizkörperthermostate, Temperatur-Luftfeuchte-Sensoren, Fensterkontakte).
Hausautomationssysteme
Zigbee
Hardware
Zigbee braucht eine Zentraleinheit, die Koordinator genannt wird. Es kommt dafür ein ConBee II von Phoscon zum Einsatz, der direkt am USB-Port des Hausautomationsservers angeschlossen ist. Das Gerät hatte ich mir vor einigen Jahren für Testzwecke zugelegt. Heute würde ich zu einem Flagschiff-Produkt von SMLIGHT greifen, das unabhängig vom Hausautomationsserver ans LAN angeschlossen und via PoE mit Strom versorgt wird.
Der ConBee II erscheint auf dem Host (auf der Konsole mit lsusb anzeigen):
Bus XXX Device XXX: ID 1cf1:0030 Dresden Elektronik ZigBee gateway [ConBee II]
Das Device dazu ist:
/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DExxxxxxx-if00
Unter Proxmox fügt man zum Container unter Resources mit Add ein Device Passtrough hinzu mit dem o.a. Device Path, UID in CT: 0, GID in CT: 20, Access Mode in CT: 0660, Read only: aus. UID 0 ist root und GID 20 ist dialout. Das Gerät erscheint dann im Container genau mit demselben Device Path und Besitzer root:dialout.
Software
Für die Steuerung des Zigbee-Netzwerks kommt zigbee2mqtt (kurz: z2m) zum Einsatz, was eine absolut spitzenmäßige Unterstützung für alle möglichen Fabrikate bietet. Die Software wird im Container installiert. Dazu folgt man der Anleitung für zigbee2mqtt. Die Weboberfläche von zigbee2mqtt ist dann unter http://has.example.org:8080 zu erreichen.
Zigbee-Geräte
Um Zigbee-Geräte mit dem Koordinator zu paaren, also sie anzulernen, aktiviert man das Anlernen in der Weboberfläche von zigbee2mqtt wie in dessen Anleitung beschrieben.
Leuchtmittel
Um Zigbee-Leuchtmittel zu paaren, hat sich eine "Paarungsstation" bewährt. Dabei handelt es sich um eine E27-Baufassung, die mit einem Schukostecker in eine schaltbare Steckdose eingesteckt wird.

Dies ermöglicht es bequem vom Schreibtisch aus die Zigbee-Leuchtmittel mit dem Zigbee-Coordinator zu paaren.
Die bekannten Paarungssequenzen für Leuchtmittel sind:
- IKEA-Tradfri: 6 Mal im Sekundentakt aus- und anschalten
- EGLO-Z (AwoX): 30 s aus, 1 s ein, 6 s aus, 1 s ein, 6 s aus, 1 s ein, 6 s aus, 12 s ein, 6 s aus, 12 s ein, 6 s aus, einschalten (siehe Wie kann ich eine Leuchte auf Werkseinstellung zurücksetzen. (RESET))
Die Sequenz von EGLO-Z kann man am besten wie folgt realisieren: Man lässt die Lampe mindestens 30 Sekunden aus. Dann startet man die Stoppuhr vom Smartphone und legt den Schalter jeweils um, wenn die folgenden Sekunden verstrichen sind: 0 (Stoppuhr starten und anschalten) 7 8 14 15 21 33 39 51 57 (Licht ist an und Lampe paarungsbereit). Es kommt übrigens nicht darauf an, die Zeit exakt zu treffen; es funktioniert auch schon, wenn man die Sequenz zeitlich so gut abarbeitet, wie man eben kann.
Nomenklatur

Zigbee-Geräte
Zigbee2MQTT legt die Geräte mit ihrer IEEE-Adresse als Namen an.

Wenn man eine Fülle von Zigbee-Geräten gleichen Typs hat, sieht man diesen leider die IEEE-Adresse nicht an, und es kommt sehr leicht zu Verwechselungen. Ich lerne daher zunächst alle neuen Geräte auf dem "Labortisch" eins nach dem anderen an, und beschrifte sie dann mit der IEEE-Adresse, bevor sie an den Installationsort gebracht werden. Hierzu hat sich ein Etikettendrucker bewährt. Ich verwende einen Brother PT-P710BT mit blauen 6 mm breiten Selbstklebebändern (Ersatztypen von Drittanbietern sind bei gleicher Qualität deutlich billiger als die Originalbänder von Brother).
Die generischen Namen sollte man auch so belassen, damit bei einem Wechsel des Standorts des Geräts keine aufwändigen Namensänderungen in Zigbee2MQTT und FHEM (Gerät, Logs, Plots, ...) notwendig sind.
in FHEM verwende ich den Autocreate-Mechanismus, um die in Zigbee2MQTT angelernten Geräte automatisch anzulegen. Das autocreate-Gerät wird wie folgt angelegt:
defmod autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log
attr autocreate ignoreTypes CUL_.*|FHT_.*|.*mqtt_explorer.*
attr autocreate room System
Die Geräte werden dann automatisch mit demselben Namen auch in FHEM angelegt, wobei das zigbee_ vorangestellt wird. Ebenso werden die zugehörigen Protokolldateien (FHEM-Logs) angelegt (jahresweise Protokolle). Beim Einsatz eines Empfängers für das FS20-Protokoll kommt es alle paar Monate zur Anlage von nichtexistenten Geräten, wenn sich der Empfänger "verhört" hat - durch das Attribut ignoreTypes unterbinde ich dies ebenso wie die Anlage des MQTT-Explorers als Gerät, den ich für das Belauschen der MQTT-Kommunikation nutze.
In FHEM setzt man dann einen sprechenden Namen als Alias. Den Alias sollte man auch in der Zigbee2MQTT-Weboberfläche im Feld Beschreibung des Geräts angeben, um die Geräte hüben wie drüben identifizieren zu können.
Strukturierung in FHEM

In FHEM ordne ich alle Geräte in Räumen in drei Strukturen ein:
- Gewerke: Gliederung nach Anwendungszweck, z. B. Beleuchtung, Thermostat oder Rauchmelder. Den Begriff "Gewerke" habe ich Homematic übernommen in Ermangelung einer besseren prägnanten Bezeichnung.
- Räume: Gliederung nach Installationsort, z. B. WC oder Schlafzimmer.
- Systeme: Gliederung nach Hausautomationssystem, z. B. Zigbee, Shelly oder LaCrosse, sowie FHEM-spezifische Untergliederungen für Logs und Plots.
Die Menüstruktur erzeugt man in FHEM, indem man die Untergliederungen mit -> bildet:
alias zigbee_0x001788010ffd105f room Gewerke->Beleuchtung,Räume->1->3 Küche,Systeme->Zigbee
So kann man jedes Gerät leicht über das Gewerk, den Installationsort und das zugrunde liegende Hausautomationssystem in der Navigationsleiste von FHEMWEB auffinden.