Logo Juerg Wenger

Hausautomation

Ein langfristiges Projekt sowie ein persönlicher Traum von mir ist das vollautomatisierte Haus. Bereits in den bisherigen Mietwohnungen habe ich gewisse "Automations-ähnliche" Funktionen umgesetzt, allerdings einfach mit reduzierten Möglichkeiten.
Erst mit dem Umbau unseres jetzigen Hauses konnte ich voll auf die Automation setzen und habe dementsprechend wenn immer möglich ein Kabel gezogen. So erhielt bsp. jeder Raum (ok die Dusche jetzt nicht) mindestens ein Netzwerkanschluss, jedes neu eingesetzte Fenster hat verdeckte Öffnungsmelder eingebaut, die neuen Storen sind konsequent elektrisch betrieben und alle bestehenden Lichtschalter wurden durch Taster ersetzt. Das setzte natürlich eine enorme Planung voraus, aber dank meiner Vorgeschichte als Elektromonteur war das machbar. Und auch heute noch, jedes neue Gerät oder Installation wird dahingehend ausgewählt, dass man es mit dem Computer verbinden und zumindest überwachen kann. Das gilt für den neuen TV, die Heizung oder die Solaranlage. Häufig ist zwar irgend eine Schnittstelle vorhanden, aber der Hersteller ist äusserst wortkarg wie sich sein Produkt zur aktiven Kommunikation überreden lässt. So ist nicht selten eine mehr oder weniger ausgedehnte Reverse-engineering-Session nötig um selber herauszufinden, wie die Kommunikation genau stattfindet. So geschehen bsp. beim Sony-TV, der CTA-Wärempumpe, dem VZUG-Steamer oder den Robomow-Rasenmähern. Es gibt aber auch vorbildliche Hersteller wie bsp. der österreichische Wechselrichterhersteller Fronius, welcher direkt eine Dokumentation der API zur Verfügung stellt und damit die Einbindung der Solaranlage (inkl. Wechselrichter, SmartMeter und Ohmpilot) mit geringem Aufwand ermöglicht.

Auf diesen Seiten werde ich also den Fortschritt der Automatisierung beschreiben. Diese Seite ist allerdings noch im Aufbau und entspricht nicht dem derzeitigen Automationslevel in unserem Haus.

Im Zuge des Umbaus habe ich Wert darauf gelegt, dass die elektrische Installation kompatibel mit IP-Symcon resp. HomeMatic-Wired ist. Das bedingt zum einen eine zentrale Anordnug der Aktoren und dementsprechend verlegte Strom- und Steuerleitungen, erlaubt dann aber eine flexible Zuordnung und "einfache" Umverdrahtung oder Erweiterung mit zusätzlichen Aktoren. Andererseits muss jeder Aktor im HomeMatic-System zuerst programmiert werden (schon nur jede einfache Schaltung einer Lampe). Um nicht 100% abhängig des Steuer-PC zu sein, erlauben lokale Taster natürlich auch eine Bedienung vor Ort (war eine Akzeptanz-Voraussetzung meiner Frau :-) )

Verbaut wurde schliesslich fast alles was es an HomeMatic-Equippment gibt. Wobei so wenig wie möglich Funk-Aktoren / Sensoren verwendet wurden. Ich habe dabei auf die HomeMatic-Wired Geräte mit dem RS485-Bus gesetzt.

Die Einbindung in IP-Symcon geschieht erstaunlich "einfach". Die Programmierung resp. Gestaltung der Touchscreen-Oberfläche ist dann schon ein wenig gewöhnungsbedürftig, aber sehr flexibel und lässt sich perfekt an die Wünsche der Benutzer anpassen. Gestartet habe ich mit der kleinsten Version von IP-Symcon, habe aber mittlerweilen die höchstmögliche Version mit unlimitierter Anzahl an Variablen im Einsatz. Die ganze Logik wird hier in meiner Lieblingsprogrammiersprache PHP vorgenommen.

Grundlegendes

Wie erwähnt ist die vorausgehende Planung das A und O. Als früherer Elektromonteur habe ich mir diesbezüglich natürlich einen Elektroplan gezeichnet und alle Taster/Steckdosen und sonstigen Stromverbraucher eingezeichnet. Danach erfolgte die Planung der nötigen Komponenten um die Komponenten wie gewünscht schalten zu können. Heraus gekommen sind sowohl eine zentrale Hohlwand mitten in der Wohnung und dann zwei abgesetzte Stellen, an welchen die aktiven Komponenten verbaut wurden.


Auf den Bildern zu sehen ist die Hohlwand mitten in der Wohnung. Darin eingebaut sind ein paar Licht- und Szenentaster, die Storentaster für das Wohn- und Esszimmer sowie für die Küche als auch der Touchscreen für die zentrale Steuerung oder Anzeige des Hauses. Der Bildschirm ist an einem RaspberryPi Modell 3 angeschlossen (der hat übrigens eine eigene USV "onboard") und zeigt "nur" eine Webseite der Hausautomationssoftware IP-Symcom. Diese Hohlwand kann man öffen (Bild rechts). Darin enthalten ist diverses an zentraler Technik. Unter anderem die CCU-Zentrale "Charly" (links neben der Tasttatur), als auch der DECT-Sender für die Telefonie als auch WLAN-AccessPoint und der Funksender für die RGB-Beleuchtung. Und da dies alles Strom benötigt auch eine ganze Reihe an Netzteilen und Netzwerkkabeln. Mitten im Getümmel ist auch das Sprachmodul für die Sprachausgaben der Hausautomation.
Und Nein, die rote Löschdecke hat nichts mit der Hausautomation zu tun, die ist nur dort, damit sie im Bedarfsfall schnell zur Hand ist, da diese Hohlwand ja wie erwähnt sehr zentral in der Wohnung ist...


Die CCU3 "Charly" ist quasi das Herzstück der Hausautomation und Bindeglied zwischen der Netzwerkwelt und HomeMatic. Dieses Gerät ist alleine auch schon fähig gewisse Steueraufgaben/scripte auszuführen und eigenständig Schalthandlungen vorzunehmen. Aber eigentlich dient es mir primär als Gateway zwischen der Welt von HomeMatic und IP-Symcon. Im Wesentlichen basiert die CCU3 auf einem Raspberry Pi Modell 3 und einer Zusatzplatine mit dem Funkmodul für die HomeMatic und HomeMatic IP Funkaktoren. Die HomeMatic-Wired und die Ankopplung an den RS422-Bus geschieht über einen separaten HomeMatic-Wired-Gateway.

Eine Zwischenverteilung im Estrich. Hier sind alle Komponenten des EG's verbaut. Alle Strom- und Steuerleitungen laufen hier zusammen. Die einzelnen Komponenten sind mit dem RS422-Bus miteinander und der CCU3 "Charly" verbunden.
Links sieht man das EDV-Rack mit den Netzwerkkomponenten für das EG. Die Verteiler in der Mitte sind sog. VS83-Verteiler und wurden eigentlich in der Telefonie-Verteilung verwendet. Da sämtliche Steuerleitungen der Hausautomation auf 24V DC laufen, sind diese Verteiler bestens dafür ausgelegt. Dabei ist die Aufteilung der zwei Säulen wie folgt. Links ist die Installationsseite (also das Haus) und rechts die Hausautomationsseite. Damit ist eine flexible Zuteilung der HomeMatic-Aktoren an die einzelnen Taster/LED's möglich. Der weise Kasten rechts ist der Selbe wie oben, nur geschlossen.
Selbstverständlich wird über die Verbindung exakt Buch geführt, ansonsten ist schnell einmal das "Ghetto" perfekt.


Dieses Bild entstand während einer Erweiterung. Der "kleine" Kasten links oben ist die Verteilung der Hausautomation mit all den Aktoren im Untergeschoss. Auch zu sehen ist die dazugehörige USV gleich darunter und die Elektroverteilung unseres Hauses. Ein bischen schwer zu sehen, aber schaut euch einmal die Anschlüsse der Sicherungsabgänge an. Auch ohne Wasserwaage ist zu sehen, dass diese perfekt auf einer Linie ausgerichtet sind :-) Unschwer zu erkennen ist auch, dass in der Elektroverteilung ein paar zusätzliche Komponenten (rechts aussen) eingebaut sind. So wird der Stromverbrauch jeder (!) Sicherungsgruppe separat erfasst und geloggt.

Ein Beispiel der vielen Taster bei uns im Haus. Teilweise ist sogar eine LED eingebaut um den Zustand visualisieren zu können. So ist es ohne weiteres möglich bsp. bei Drücken der Taste Fenster via dem oben erwähnten Sprachmodul eine Sprachausgabe zu triggern, welche akkustisch mitteilt, welche Fenster derzeit gerade geöffnet sind. Zusätzlich wird das Vorhandensein eines offenen Fensters auch mit dem Aufleuchten der zugehörigen LED signalisiert.
Gleiches ist auch mit dem Licht machbar. Sobald irgendwo im Haus eine schaltbare Steckdose oder eine Lampe eingeschaltet ist, leuchtet die LED beim Taster Licht. Ein Druck auf diese Taste bsp. beim Verlassen des Hauses ist praktisch, da dies alle Beleuchtungen ausschaltet.
 

IP-Symcon

IP-Symcon wird in Deutschland entwickelt. Es ist eine Software, welche entweder auf Windows, Linux oder auch virtuell laufen kann. Es gibt sogar dedizierte Hardware, welche auf einem ComputeModul von RaspberryPie basiert. Es handelt sich dabei eigentlich um ein Framework um Geräte von unterschiedlichen Herstellern mit unterschiedlichen Arten der Ansteuerung und Protokoll zusammen betreiben zu können. So kann bsp. die Wetterstation mit der seriellen Schnittstelle den Storenaktor im Schlafzimmer bedienen, welcher via HomeMatic RS422-Bus angesteuert wird. Oder die Rückstauklappe kann mit ihrem potentialfreien Kontakt ein Email auslösen oder wenn die Innentemperatur 2°C höher als die Aussentemperatur ist, wird akkustisch um Lüftung gebeten. Oder, oder, oder. Grundsätzlich ist nichts unmöglich. Einzige Voraussetzung ist, dass die Daten "irgendwie" IP-Symcon zur Verfügung gestellt werden können. Die Daten können auch auf einer Webseite von IP-Symcon abgeholt und zur Steuerung herangezogen werden (bsp. mache ich das so mit meinen eigenen Wetterdaten).
IP-Symcon kann von Hause aus selber nicht besonders viel. Die gesamte Logik muss also selber entwickelt werden. Einerseits sind dazu vorgefertigete und/oder von Usern zur Verfügung gestellte Module verfügbar oder man schreibt sich die Logik, wie in meinem Fall, komplett selber. Und selber schreiben bedeutet, dass dies in PHP geschehen muss.

Der Objektbaum ist in IP-Symcon zentral. Die Lizenz, welche man benötigt ist unter anderem direkt von der Anzahl der verwendeten Variablen abhängig. Damit sind nicht die Variablen in den PHP-Scripten gemeint, sondern die Variablen, welche man entweder selber anlegt um Werte visualisieren zu können oder solche, welche beim Importieren bsp. von HomeMatic-Komponenten vom System angelegt werden. Da können sehr schnell, sehr viele Variablen belegt sein. Ab 1000 Variablen ist die Unlimited-Version von IP-Symcon nötig. Wie man sieht bin ich derzeit bei 2348 verwendeten Variablen (Stand Mitte November 2020). Diese Zahl steigt bei mir fast wöchentlich ...
Den Objektbaum kann man aufklappen. Die "Ordner" (in IP-Symcon "Kategorie" genannt) können beliebig und nach dem eigenen Geschmack angelegt werden. Die ausgegrauten sind dabei vorgegeben.
Innerhalb dieser Kategorien sind dann die Variablen (violett) ersichtlich. Und basierend auf diesen Variablen geschieht die Logik in IP-Symcon. Man kann Trigger definieren, dass ein Script gestartet werden soll, wenn sich entweder die Variable ändert oder wenn ein bestimmter Wert über- bzw. unterschritten wird. Es ist aber auch möglich Scripte basierend auf Timer zu bestimmten Zeiten oder Intervallen zu starten. Ist die Variable bsp. von einer HomeMatic-Komponente (also bsp. der Eingang eines Moduls, welches einem Taster zugeordnet ist) dann kümmert sich IP-Symcon selber darum, dass die Variable aktualisiert wird, sollte der Taster gedrückt werden. Was dann aber geschieht (bsp. Licht im ganzen Haus ausschalten) muss dann aber als sog. Aktion in einem PHP-Script definiert werden.


So sieht dann bsp. ein ganz einfacher PHP-script in IP-Symcon aus. Natürlich hat IP-Symcon auch "eigene" Befehle, welche es so in PHP nicht gibt. Bsp. in Zeile 3 wird der Wert der Variable Nr. 14349 (Kindersicherung) mit dem proprietären Befehl "GetValue" abgefragt. Falls der Wert auf "true" ist, wird der Script auch gleich wieder beendet.

(Programmiertipp am Rande: Dazu NICHT die PHP-üblichen Befehle exit() oder die() verwenden. Das funktioniert zwar, ergibt in IP-Symcon aber eine Fehlermeldung und dadurch ein fehlerhafter Script)

Damit wird bsp. eine simple Kindersicherung realisiert und die Taste hat keine Funktion mehr. Da kann das Kind noch so auf die Taster eindrücken :-)
Ansonsten würde der Script ab Zeile 13 nacheinander HomeMatic-Aktoren ausschalten (eben der erwähnte "Ausschalt-Taster beim Eingang). Via dem Befehl "HM_WriteValueBoolean" sagt man IP-Symcon, dass es dem angegebenen HomeMatic-Aktor einen Befehl zum Schalten geben soll. Die eigentliche Kommunikation zwischen IP-Symcon und HomeMatic via der CCU3 "Charly" macht dann IP-Symcon selber und man muss sich nicht darum kümmern.
So baut man sich dann nach und nach die ganze Logik zusammen. Dabei kann es natürlich auch bedeutend komplizierter werden im Code, so geschehen bsp. wenn man sich die Eigenverbrauchsquote der Solaranlage anhand des Stromverbrauchs / Stromproduktion der Solaranlage ausrechnet...


Und schlussendlich können in IP-Symcon die Daten auch dargestellt werden. Dies geschieht über das sog. "Webfront". Es handelt sich dabei um eine Webseite, welche im lokalen Netz von jedem Browser aufgerufen werden kann. Der Touchscreen im Wohnzimmer zeigt bsp. diese Webseite im Kioskmodus (Vollbild) an. Selbstverständlich lässt sich diese Seite auch auf einem Tablet oder sogar Handybildschirm öffnen und bedienen. Über die obersten zwei Zeilen lässt sich navigieren und die verschiedenen Ansichten aufrufen. Es versteht sich von selbst, dass man man dies in IP-Symcon ganz nach dem eigenen Geschmack zusammenbasteln kann. Das ist am Anfang etwas gewöhnungsbedürftig und mit einigen Schwierigkeiten verbunden, aber sobald man den Dreh mit den "Split-" und "TabPanes" einmal raus hat, klappt es eigentlich ganz gut. Zudem verfügen die neuen IP-Symcon-Versionen über einen WYSIWYG-Editor (welchen ich persönlich aber noch komplett unbrauchbar finde und mich absolut nicht damit anfreunden kann. Ich habe mich offensichtlich sehr an das Komplizierte gewöhnt :-)).

Zum Schluss noch dies: IP-Symcon ist nicht gratis und auch nicht gerade günstig. Aber der Funktionsumfang und vor Allem der Support durch den Hersteller selber im Forum sucht sich seinesgleichen. Durch die verschiedenen Lizenzmodelle kann man sich die richtige Version aussuchen. Und der jährliche Betrag um die Software updaten zu können ist bei allen Versionen identisch und beträgt schon seit Jahren 49,99 €. Kauft man jeweils die sog. Subskription für mehrere Jahre gibt es Rabatt bzw. ein paar Monate Laufzeit dazu.


TV via Netzwerk fernsteuern

Ach wie toll wäre es doch, wenn man das Wohnzimmer betreten, eine einzige Taste drücken kann und die Storen fahren herunter, das Licht stellt sich angenehm ein ... und der Fernseher schaltet sich ein. Mit einer Hausautomation sollte doch genau das möglich sein ? Nun, ist es auch, aber nicht so einfach wie gedacht.
Die Storen steuern und das Licht einstellen, soweit überhaupt kein Problem. Aber den Sony TV steuern ?? Eine ausgiebige Recherche im Internet ergab recht schnell die dazu notwendigen IRCC-Steuercodes für meinen Sony KDL-47W805A. Das sind die Befehle, welche an den TV gesendet werden müssen um quasi die Tasten der Fernbedienung zu simulieren. Nach dem Zusammenbasteln eines kleinen Scriptes funktioniert das auch mehr oder weniger auf Anhieb:


Lautstärke regeln, Sender wechseln, Mute toggeln, TV ausschalten alles kein Problem mit diesen Codes. Aber ist der TV mehr als etwa 2 Minuten ausgeschaltet, lässt er sich mit dem IRCC-Code "AAAAAQAAAAEAAAAVAw==" nicht mehr einschalten. Das Einschalten funktioniert nur kurz nach dem Ausschalten. Grosse Verwunderung auf meiner Seite...

Auf Nachfrage bei Sony wurde mir zuerst mitgeteilt, dass man dieses Gerät nicht via Netzwerk steuern könne. Dies obschon ich in der Anfrage geschrieben habe, dass alle Funktionen klappen, nur eben das Einschalten nicht. Auf erneute Nachfrage, auch mit dem Hinweis, dass Sony ja selber eine APP für diese Geräte hat (und dort das Einschalten problemlos funktioniert) wollte man mir dann mit Hinweis, "dass man solche Informationen nicht veröffentliche", nicht weiterhelfen... :-( Muss also wohl Raketenwissenschaft dahinterstecken ...

Nun gut, unsereins hat noch etwas auf dem Kasten und macht sich kurzerhand daran den Netzwerkverkehr zwischen der APP auf dem Tablet und dem TV Gerät mit Wireshark aufzuzeichnen. Der Verkehr ist ja glücklicherweise nicht verschlüsselt. Und welches Geheimnis wurde gelüftet ??

Ta-taaa. Der Power-On-Befehl wird nicht via IRCC-Code gesendet, sondern es wird ein spezielles Datenpaket versendet, welches sechsmal in der Folge FF und anschliessend 16x die MAC-Adresse 3c:07:71:e4:49:0c enthält. Alles klar ? Komisches Paket ? Keineswegs !

Dem versierten Netzwerk-Techniker wird sofort klar, dass es sich hierbei um ein sog. Magic-Paket handelt, auch bekannt unter dem "uralten" (1995 von AMD in Zusammenarbeit mit Hewlett-Packard veröffentlichter Standard) Wake-On-LAN, also dem Einschaltbefehl via Netzwerk, welches entweder als Broadcast oder gezielt an die IP-Adresse eines einzelnen Netzwerkgeräts geschickt werden kann. Geheimnis gelüftet !

Das Zusammenstellen eines solchen Magic-Paket's via PHP-Script ist wahrlich keine Meisterleistung und voila... ich kann den Sony-TV nun auf Knopfdruck einschalten. Somit funktioniert auch das eingangs beschriebene Szenario und ich habe eine dedizierte Taste "TV schauen" im Wohnzimmer...