Unter Hausautomation versteht man die automatisierte Steuerung von Hausfunktionen ohne Benutzereingriff. Vorgaben des Anwenders (Sollwerte) werden mit gemessenen Sensorwerten verglichen und zur Steuerung benutzt: Für eine Heizungsregelung beispielsweise müssen die aktuelle Raumtemperatur und die Solltemperatur bekannt sein, um das Ventil zu öffnen oder zu schließen.
Für den Bereich Hausautomation gibt es etliche Angebote von Firmen und Selbstbaulösungen (FHEM, OpenHAB). Für mich war das Erstellen einer selbst entwickelten Lösung interessanter, weil ich mich mit Arduino und Raspberry Pi beschäftigen wollte und auch sehr spezielle Lösungen für mein Haus brauchte. Viele meiner Kenntnisse habe ich aus Foren und von Internetseiten erhalten, deshalb will ich auch meine Entwicklungen der Allgemeinheit zur Verfügung stellen. Auf meiner Website sind detaillierte Anleitungen zur Hard- und Software für den Nachbau zu finden.
Überblick über das System
Das selbst entwickelte System wollte ich installieren können, ohne dass ich neue Leitungen verlegen oder Powerline-Adapter verwenden muss. Es bietet sich an, das in fast jedem Haushalt vorhandene WLAN zu verwenden oder die Sensordaten mit preiswerten Funkmodulen im ISM-Band zu übertragen (868 MHz). Das System sollte sich von Endgeräten wie Smartphones, Tablets und Notebooks innerhalb des Hauses und auch von außen über das Internet bedienen lassen (siehe linke Seite des Diagramms):

©Andreas Kriwanek
Rechts von der Internet-Wolke ist die Infrastruktur im Haus zu sehen. Der WLAN-DSL-Router bildet die Schnittstelle ins Internet. Im Haus-LAN wird ein Webserver (Internal Webserver) installiert, der die Mess- und Steuerdaten in einer SQL-Datenbank sammelt und auf Anforderung als HTML-Seiten mit Grafikauswertung auf den Endgeräten bereitstellt. Hier bietet sich ein Raspberry Pi an, der preisgünstig ist und nur wenig Energie (etwa 3W) verbraucht.
Ganz rechts im Bild sind die Sensoren und Aktuatoren zu sehen. Diese sind über WLAN (WeatherStation) mit dem Webserver oder ISM-Funk (EnergyCounter, RoomSensor) mit der BaseStation verbunden. Meine Sensoren und Aktoren basieren auf dem Arduino und werden in den nächsten Monaten um weitere Module erweitert.
Die BaseStation dient der Umsetzung der Sensor-Funksignale in HTML-GET-Aufrufe an den Webserver, um Daten vom Sensor in die Datenbank bzw. umgekehrt zu übertragen. Sie ist also eine LAN/Funk-Bridge.
Mess- und Steuerdaten können mit der CCU von HomeMatic per HTTP-Schnittstelle (XMLAPI) ausgetauscht werden. Dadurch kann die eigene Hausautomation um Sensoren und Aktoren der HomeMatic erweitert werden.
Gegenüber meinen ersten Versuchen mit einem externen Webserver bei einem professionellen Provider habe ich in dieser neuen Version Wert darauf gelegt, dass die Webseiten auf einem Raspberry Pi zu Hause ausgeführt werden können. Optional kann der interne Webserver die Messdaten an einen externen Webserver im Internet weitergeben. Sinn ist die redundante Datenhaltung. Der externe Webserver kann auch ein Raspberry Pi oder ein professionell gehosteter Webserver eines Providers sein. Der externe Webserver kann auf Grund seiner höheren Leistung für rechenintensive Auswertungen genutzt werden.
Alle Sensor-/Aktorenkomponenten sind Arduino-kompatibel, um die Vorteile der Programmierumgebung und die im Handel verfügbaren zahlreichen Shields, Sensoren und Aktuatoren nutzen zu können.
Der HomeAutomation Webserver
Der Webserver ist das zentrale Steuerungs- und Visualisierungszentrum, basierend auf einem Raspberry Pi mit Raspbian Wheezy. Die dynamischen Webseiten (PHP5) in Verbindung mit der SQL-Datenbank SQLite3 bilden eine Plattform, auf die man per Smartphone, Tablet oder PC zugreifen kann, ohne dass man Apps dafür benötigt. Zum Einsatz kommt der ressourcenschonende Webserver Lighttp, der deutlich leistungsstärker als der Alleskönner Apache ist.

©Andreas Kriwanek
Die HTML-Seiten sehen auf Smartphone, Tablet und PC identisch aus. Hier die Einstiegsseite:

©Andreas Kriwanek
Messwerte können im Browser grafisch dargestellt werden:

©Andreas Kriwanek
Detaillierte Anleitungen für Hard- und Software sind zu finden unter www.kriwanek.de/homeautomation/webserver-ha.html
Die BaseStation
Die BaseStation ist eine Funk-LAN-Bridge für Sensoren/Aktoren mit 868 MHz-Funkübertragung (z.B. EnergyCounter). Verwendet wird ein fertiges Arduino-Board NanodeRF mit Ethernet-Schnittstelle. Die Verwendung eines käuflichen Boards erleichtert den Nachbau und ist preiswerter als eine Eigenentwicklung. Der Arduino-Sketch ist selbst entwickelt.

©Andreas Kriwanek
Detaillierte Anleitungen für Hard- und Software sind zu finden unter www.kriwanek.de/homeautomation/basestation.html
Die WeatherStation
Die Firma ELV bietet preisgünstige Funk-Wettersensoren und einen passenden FS20-Empfänger für Mikrocontrolleransteuerung an. Auf Basis dieser günstigen Komponenten kann man eine komfortable Arduino-Wetterstation bauen, welche die Daten an den HomeAutomation Webserver sendet. Der Wettermast KS300 wurde um eine Regenmesserheizung erweitert, damit man auch im Winter Niederschläge erfassen kann. Die Daten werden mit einem TPLink-WiFi-Adapter zum Webserver gesendet.

©Andreas Kriwanek

©Andreas Kriwanek
Die Darstellung der Wetterwerte erfolgt über den Webserver:

©Andreas Kriwanek
Detaillierte Anleitungen für Hard- und Software sind zu finden unter www.kriwanek.de/homeautomation/projekt-wetterstation/arduino-mit-elv-sensoren.html
Der EnergyCounter
Der EnergyCounter ist als Doppelprozessorsystem auf einer eigens entwickelten Platine realisiert. Dies ist platzsparender und zuverlässiger als ein fliegender Aufbau aus Arduinos und Shields. Die Schaltung ist so ausgelegt, dass beide Prozessoren sich nach außen wie Arduinos verhalten, also über einen FTDI-Adapter und die Arduino-IDE programmiert werden können. Die Aufgabe der Prozessoren ist:
CPU1 : Schnelles Polling der 12 Impulseingänge auf Pegeländerungen und Hochzählen von Variablen bei neuen Impulsen. Bei Anforderungen über eine Request-Leitung werden die Messwerte seriell (115200 Baud) an CPU2 übertragen.
CPU2: Senden von Datenrequests an CPU1 jede Minute, annehmen und verarbeiten der von CPU1 zurückgelieferten Datenpakete. Aufbereiten der Messwerte und senden per Funk an die BaseStation.
Der EnergyCounter bietet zwei Messfunktionen:
– Impulszählung von bis zu 12 Energiezählern (Strom, Gas, Wasser)
– Ermittlung der gewonnenen Wärmemenge einer thermischen Solaranlage
Der EnergyCounter benötigt eine BaseStation für die Datenübertragung an den Webserver.

©Andreas Kriwanek
Detaillierte Anleitungen für Hard- und Software sind zu finden unter www.kriwanek.de/homeautomation/energycounter.html
Die Darstellung der erfassten Zählerwerte geschieht wieder über eine Webseite auf dem Webserver:

©Andreas Kriwanek
Die Anzeige der Messwerte für Solaranlage und Heizung erfolgt auf einer zweiten Webseite:

©Andreas Kriwanek
Detaillierte Anleitungen für Hard- und Software sind zu finden unter www.kriwanek.de/homeautomation/energycounter.html