Das Herzstück meiner Hausautomatisierung ist eine FHEM Installation auf einem RaspberryPi.
Für meine Haussteuerung habe ich im laufe der Zeit einige Codeschnippsel und Module geschrieben. Hier sind die interessantesten Module beschrieben.
Modul 44_Rollo
Mein aktuelles 'Projekt' ist die einfache Einbindung und Visualisierung meiner Rollos in FHEM. Das Modul wurde von mir geschrieben und wird inzwischen zusammen mit 'RettungsTim' weiterentwickelt.
Standard Anzeige eines Rollos in verschiedenen Phasen.- Rollo ist halb offen/zu (Position 50)
- Rollo ist geschlossen (Position 100)
- Rollo fährt gerade nach unten
- Standard-Befehle zum anfahren verschiedener Positionen
- DropDown um eine anzufahrende Position direkt auswählen zu können (Position 0-100)
Modul 44_Rollo_Automatisierung
Erweiterung des Rollo-Moduls um Automatisierungsfunktionen. Automatisieren lässt sich aber natürlich alles mit dem Modul. Für jede Zeit zu der ein Rollo auf/zu fahren soll, wird ein eigenes Automatisierungs-Modul angelegt. Dort werden dann die Zeit, die zu fahrenden Rollos / zu schaltenden Lichter eingetragen, evtl. weitere Bedingungen die wahr sein müssen. Es können täglich auszuführende Geräte angelegt werden, aber auch Geräte die nur an bestimmten Wochentagen ausgeführt werden. z.B. habe ich zwei verschiedene Geräte für die Nacht angelegt, einmal mit der Bedingung <= 25°C und einmal mit der Bedingung wenn > 25°C, da dann einige Rollo nur zu 90% zu fahren sollen. Standard Anzeige mehrerer Automatik-Module. Dieses Modul wird normalerweise nicht direkt in der Oberfläche angezeigt sondern ist teil einer "Zwischenschicht" mit deren Hilfe man sich die Funktionalität und die Anzeige einfach zusammenstellen kann.
Modul 44_Taster
Dieses Modul hilft dabei einem Taster mehrere Funktionen zuzuweisen. Es kann zwischen folgenden Tastendrücken unterscheiden:
Einfacher Tastendruck
Doppelter Tastendruck
Langer Tastendruck
Die Zeiten zwischen zwei Tastendrücken als auch die Zeit für die Interpretation als langer Tastendruck kann individuell eingestellt werden.
Standard Anzeige. Dieses Modul wird typischerweise nicht in der Oberflächenvisualisierung benutzt, sondern dient eher als Hintergrundmodul.
Zum besseren debuggen wurde folgender Farbcode in die Anzeige implementiert:
- Grün: der letzte klick war ein einfacher Klick
- Blau: der letzte klick war ein langer Tastendruck
- Orange: der letzte klick war ein doppelter Tastendruck
- Rot: der Taster wird gerade gedrückt gehalten
Modul 44_S5 + 44_S5_Digital
Dieses Modul dient der Ankopplung einer Siemens S5 an eine FHEM Installation. Selber benutze ich das Modul nicht mehr, da ich meine S5 nicht mehr benutze.
Das Modul 44_S5 steht dabei für die Prozessoreinheit, das Modul 44_S5_Digital für die einzelnen digitalen Ein- und Ausgänge.Oberflächengestaltung
Mit der Oberflächengestaltung habe ich mich bis heute recht schwer getan. FHEM ist ein System mit dem man sehr individuell seine Steuerung einrichten kann.
Eine Hübsche Visualisierung ist aber der einfachen und individuellen Konfiguration direkt auf der Weboberfläche nachgestellt. Inzwischen gibt es mehrere Module
zur Visualisierung und Steuerung, von denen ich bereits einige ausprobiert habe. Leider habe ich nicht mehr von allen Oberflächen Screenshots, so dass eine Beschreibung reichen muss.
Mein Ziel war es dabei immer zwei Situationen zu bedienen:
1. Für ein Wanddisplay das im Wohnzimmer oder Flur als zentrale Anlaufstelle angebracht werden sollte.
2. Für mein Handy um von unterwegs oder auch von jeder Position im Haus schnell mal Schaltvorgänge auslösen zu können.
3D Visualisierung
Ein 3D-Modell des eigenen Hauses, bei dem man per Klick einzelne Ausgänge schalten, sowie deren Status im Modell wiedererkennen kann. Dieses Modell ist von der reinen Optik her die schönste Oberfläche die ich mir denken könnte. Ich habe es innerhalb des Models geschafft, z.B. das Licht visuell darzustellen (oben Rechts im Raum ist das Licht gerade aus, im restlichen Haus ist es An. Von der Bedienung und Wartung her, ist es jedoch relativ unflexibel und auch nicht ganz so einfach in der Bedienung wie man auf den ersten Blick vermuten könnte.
Tablet UI
Eine sehr schöne Oberfläche die versucht als Ersatz für die Standard-Oberfläche zu dienen.
Ich benutze diese Visualisierung für meine zentrale Haussteuerungsvisualisierung, die aber noch im Entwicklungsstadium ist. Ich habe dafür bereits ein älteres Samsung Tablet gekauft,
auf dem diese Seite ständig aufgerufen ist. Dieses Tablet soll dann direkt an der Wand angebracht werden, das Kabel für die Stromversorung sollte in der Wand verlegt werden.
Um Flexibel zu bleiben sollte dafür eine Tablethalterung an der Wand angebracht werden, so kann man es auch mal mitnehmen oder für Entwicklungszwecke auf den Tisch legen.
Die Hardware ist also schon fast komplett vorhanden und die Idee zur Umsetzung ist auch schon sehr weit vorgeschritten. Einzig die Zeit und ein paar Kleinigkeiten fehlen noch.
Auch die endgültige Oberflächengestaltung ist noch nicht zu 100% entschieden.
Die "Standard"-Oberfläche
Auch wenn ich die Standard-Oberfläche immer als "zu hässlich" empfand und deshalb die zwei oberen Visualisierungen ausprobiert habe, habe ich im laufe der Zeit doch die Vorteile der Standard Oberfläche zu schätzen gelernt. Insbesondere die sofortige visuelle Darstellung neuer Umsetzungen ist ein riesiger Vorteil. Auch verfügt die Oberfläche über ein Responsive Design das auf dem Handy sehr praktisch ist. Im Rechten Bild sieht man nun die Webseite mit der Handy-Darstellung. Die Verlinkung der Gerätenamen auf die Detailansicht habe ich hier deaktiviert, da ich auf dem Handy zu oft versehentlich in die Detailansicht gekommen bin. Die Steuerung habe ich pro Stockwerk + 2 Sonderräume (Multimedia+Automatisierung) aufgeteilt die per Dropdown auswählbar sind, wobei das Erdgeschoss als Standardansicht immer gewählt ist, die einzelnen Räume wiederrum sind pro Block aufgeteilt. Diese Aufteilung hat sich für mich am Handy als am praktischsten herausgestellt, da man wenige klicks benötigt und die Räume per Wischgeste sehr schnell in den sichtbaren Bereich holen kann.
Unten meine Ansicht die ich aktuell zum Entwickeln und testen benutze.