Was ist der HomePi?

Der HomePi ist ein langfristiges Projekt von mir, in dem eine kostengünstige Heimautomatisierung auf Basis eines Raspberry Pi und der Software ioBroker umgesetzt wird.

Es wird bewusst auf den Einsatz von fertigen, meist teuren, Lösungen verzichtet, da es hierbei nicht vorrangig um den schnellen Aufbau einer Heimautomatisierung, sondern vielmehr um Individualität und Spaß an der Eigenentwicklung geht.

Dieser Beitrag bildet den ersten Teil einer Serie zum Thema HomePi und soll einen ersten Überblick über das Projekt bieten. Weitere Beiträge, die die einzelnen Komponenten genauer beschrieben, werden demnächst folgen.


Historie

Die ersten Teile des HomePi stammen bereits aus dem Jahr 2015. Damals bestand das System noch aus lediglich einem Raspberry Pi 2 und einer Erweiterungsplatine, über die drei elektrische Rollläden gesteuert wurden. Als Software kam hier Pimatic zum Einsatz.

2016 kamen dann einige Erweiterungen in Form einer IO-Platine, 433 MHz Funk und 1-Wire Temperatursensoren hinzu. Darüber erfolgt unter anderem die Steuerung der elektrischen Terrassenmarkise und die Aufzeichnung der Außentemperatur.

2017 habe ich dann einen kleinen Funksensor für Temperatur und Luftfeuchtigkeit gebaut und in das Gesamtsystem mit eingebunden.

2018 kam das automatische Bewässerungssystem für unser kleines Gewächshaus hinzu, welches ebenfalls über den 433 MHz Funk angebunden ist.

In 2019 erfolgte eine teilweise Modernisierung der vorhandenen Platinen und eine Erweiterung um einen CAN-Bus. Dieser CAN-Bus ist für die Vernetzung weitere dezentraler Komponenten im gesamten Haus gedacht.
Zusätzlich erfolgte die Anbindung eines weiteren Raspberry Pi mit dem offiziellen 7” Touchdisplay. Dieses Display ist in eine Wand eingelassen und soll eine einfache und zentrale Steuerung der gesamten Heimautomatisierung bieten.
Zusammen mit dem Umbau der Hardware erfolgte auch eine Umstellung der Software von Pimatic auf ioBroker.

2020 gab es dann nochmals eine kleine Erweiterung der Zentrale um einen, aktiv durch ioBroker geregelten, Lüfter zur Kühlung des Raspberry Pi, da dieser vor allem im Hochsommer etwas ins Schwitzen kam. Weiterhin wurde die Spannungsversorgung nochmals überarbeitet und unter anderem um eine Leistungsmessung erweitert.
Zusätzlich kam eine über den CAN-Bus angebundene Steuerung für die Gartenbewässerung hinzu.


Die Zentrale

Die eingebaute Zentrale des HomePi (September 2019)

Hardware

Die Zentrale bildet ein Raspberry Pi 4B 4Gb in einem Standard 19” Baugruppenträger mit 3 HE und 84 TE.

Der Baugruppenträger ist mit eigens designten Einschubplatinen bestückt. Diese einzelnen Einschubplatinen sind über eine Backplane miteinander verbunden. Somit ergibt sich ein modulares System, das jederzeit ohne großen Aufwand durch neue Platinen erweiterbar ist. Ebenso können einzelne Komponenten ohne größeren Aufwand durch beispielsweise aktuellere Versionen ausgetauscht werden.

Zur Speicherung von Daten und Dateien ist eine USB-Festplatte an den Raspberry Pi angeschlossen.

Software

Auf dem Raspberry Pi kommt als Grundsystem ein normales Raspbian zum Einsatz. Dieses ist dahingehend angepasst, dass das gesamte System auf der USB-Festplatte liegt und nicht wie üblich auf der SD-Karte. Damit sind auch intensivere Schreibvorgänge kein Problem mehr und die SD-Karte wird geschont.

Für die eigentliche Heimautomatisierung kommt seit September 2019 die Software ioBroker zum Einsatz. Damit ist es möglich verschiedenste Systemkomponenten anzusteuern und zu verwalten.

Aufgrund des sehr modularen Systems von ioBroker kann durch entsprechende Adapter nahezu jede Funktionalität je nach Bedarf hinzugefügt werden. Ich selbst habe beispielsweise den Adapter ioBroker.radiohead erstellt, um die entsprechenden Funktionen meinem ioBroker hinzuzufügen. Weitere Adapter werden folgen.

Weitere Möglichkeiten

Zusätzlich zu der Hauptaufgabe der Heimautomatisierung übernimmt mein HomePi noch die folgenden Funktionen:

  • Dateiserver, der mittels Samba Freigaben für Netzlaufwerke erstellt.
  • TV-Server mittels Tvheadend, der über eine DVB-S USB-TV-Karte Fernsehsendungen aufzeichnen und über das lokale Netzwerk streamen kann.
  • DLNA-Mediaserver zum Streamen von Musik und Videos.
  • OpenVPN-Gateway zur Verbindung des lokalen Netzwerkes mit einem VPN-Netz.

Anbindung von dezentralen Knoten

Die Anbindung von dezentralen Knoten, also Geräten, die sich nicht direkt in der Zentrale befinden, erfolgt über mehrere Wege. Die von mir aktuell eingesetzten Techniken möchte ich im Folgenden kurz vorstellen.

Ethernet / WLAN

Die wohl einfachste Art der Anbindung ist per Ethernet beziehungsweise WLAN. Hierbei besteht eine direkte TCP/IP-Verbindung zwischen dem zentralen Raspberry Pi und dem jeweiligen Knoten.

Die zu übertragenden Daten werden beispielsweise über das Nachrichtenprotokoll MQTT gesendet. Ebenso ist ein direkter Zugriff über eine REST-API möglich.

CAN-Bus

Als Bussystem für die Vernetzung von einfachen dezentralen Knoten mit der Zentrale habe ich mich für den CAN-Bus entschieden. Die Vorteile bei diesem System sind, dass es auch mit Mikrocontrollern recht einfach umzusetzen ist, mit einem vordefinierten Protokoll arbeitet und auch problemlos für größere Leitungslängen geeignet ist.

Über den CAN-Bus können mit einem relativ geringen Verkabelungsaufwand jede Menge an Sensoren und Aktoren an den HomePi angebunden werden. Es ist lediglich nur ein Kabel notwendig, welches von Knoten zu Knoten verlegt wird. Über dieses eine Kabel erfolgt die Spannungsversorgung (+24 V) der einzelnen Knoten und die Bus-Kommunikation.

Einzelne Nachrichten auf dem CAN-Bus werden durch die sogenannten Objekt-Identifier gekennzeichnet. Die einzelnen Busteilnehmer können eigenständig Nachrichten senden (Multi-Master) und entscheiden wiederum auch selbstständig, auf welche Nachrichten sie “hören” möchten.

Anbindung über PCF8574 Porterweiterungs-ICs

PCF8574

Ein oder mehrere Port-Expander vom Typ PCF8574 sind über den I²C-Bus mit dem zentralen Raspberry Pi verbunden. Jeder dieser Port-Expander verfügt über acht einzeln steuerbare Pins, die jeweils als Eingang oder Ausgang verwendet werden können.

Ich habe hierfür eine eigene Einschubplatine entwickelt, die insgesamt 16 Eingänge und 16 Ausgänge mit Hilfe von vier PCF8574 ICs bereitstellt. Jeder Ein- beziehungsweise Ausgang ist dabei über einen Optokoppler vom jeweiligen PCF8574 IC getrennt, sodass selbst im Falle einer externen Fehlbeschaltung keine internen Komponenten gestört werden können.

433 MHz Funk mit RadioHead

Zur Anbindung des 433 MHz Funks über das RadioHead-Protokoll ist ein Arduino Nano mit den entsprechenden Funkmodulen verbunden und mit dem Serial-Gateway Sketch programmiert. Der Arduino ist über USB mit dem zentralen Raspberry Pi verbunden. Er leitet alle empfangenen Datenpakete an das Pi weiter beziehungsweise sendet die vom Pi erhaltenen Pakete.

Als Antennen kommen zwei selbst gebaute 433 MHz Dipol-Antennen zum Einsatz. Diese ermöglichen eine deutlich größere Funkreichweite, als beispielsweise die oftmals empfohlenen 17 cm Drahtantennen.

Direkte Anbindung an die GPIOs

Eine direkte Nutzung der GPIOs des Raspberry Pi zur Steuerung von externen Komponenten (außerhalb der Zentrale) ist zwar möglich, jedoch würde ich dies nicht empfehlen. Dies schränkt die modulare Erweiterbarkeit des HomePi-Systems ein, da die verwendeten GPIOs dann nicht mehr für interne Funktionen von zukünftigen Erweiterungsplatinen zur Verfügung stehen.

Bei der Verwendung der GPIOs zur Steuerung von dezentralen Knoten sollten auf jeden Fall auf einen entsprechenden Schutz der GPIOs geachtet werden. Ohne Schutzmaßnahmen kann der Raspberry Pi leicht beschädigt werden, insbesondere wenn längere Leitungen verlegt werden.

Eine mögliche Schutzmaßnahme ist beispielsweise der Einsatz von Optokopplern.


Eingebundene Geräte und Funktionen

Im Folgenden möchte ich noch einen kurzen Überblick über die bei mir in das HomePi-System eingebundenen Geräte und Funktionen geben.

7” Touch-Display

Für eine komfortable Steuerung des gesamten HomePi-Systems habe ich an einer zentralen Stelle des Hauses in eine Wand einen Raspberry Pi mit dem offiziellen 7” Touchdisplay eingelassen. Somit ist auch ohne Computer oder Smartphone jederzeit eine Bedienung des Systems möglich.

Die Kommunikation mit der Zentrale erfolgt über Ethernet. Die Stromversorgung und eine zusätzliche Datenanbindung erfolgen von der Zentrale aus über das Kabel des CAN-Bus.

Elektrische Rollläden / Markise

Die elektrischen Rollläden im Haus sind über eine eigens dafür entworfene Platine an den HomePi angebunden. Der HomePi steuert über ein direktes Kabel die Relais bei den Fenstern an. Eine zusätzliche Steuerung über Taster neben dem Fenster ist möglich.

Die Markise der Terrasse ist über eine IO-Einschubplatine ähnlich wie die Rollläden angeschlossen. Hierbei ist eine Steuerung per Smartphone oder Funkfernbedienung möglich.

MAX! Heizungssteuerung

Die intelligente MAX! Heizungssteuerung von eQ-3 ist in Form der Hauslösung über das MAX! Cube LAN Gateway per Ethernet mit dem HomePi verbunden. Über der Adapter Max! Cube erfolgt die Einbindung in ioBroker.

Damit lassen sich alle Heizkörper, Fensterkontakte und Thermostate komfortabel zentral steuern beziehungsweise überwachen.

1-Wire Temperatursensoren

Aktuell betreibe ich zwei 1-Wire Temperatursensoren vom Typ DS18B20 an der Zentrale des HomePi.

Einer dieser beiden Sensoren ist direkt im Rack des HomePi untergebracht. Der andere ist über rund 30 m Cat5 F/UTP-Kabel verbunden und misst die Außentemperatur.

Hand-Funksender

Zur einfachen Bedienung der Terrassenmarkise habe ich einen kleinen 433 MHz Hand-Funksender gebaut. Dieser verfügt über drei Knöpfe zur Steuerung und sendet bei Knopfdruck ein Signal an den ioBroker, der dann wiederum die Markise ansteuert.

Funk-Wetterstation

Natürlich ist auch meine kleine selbst gebaute Funk-Wetterstation mit in das System integriert.

Diese misst und sendet im Minutentakt die aktuelle Temperatur und Luftfeuchtigkeit.

Automatisches Bewässerungssystem

Seit 2018 erfreuen sich die Tomaten im Gewächshaus unseres Gartens der regelmäßigen Wasserversorgung durch mein automatisches Bewässerungssystem.

Das System sendet regelmäßig seine aktuellen Messdaten und Statusinformationen an die Zentrale des HomePi. Zudem wird durch den HomePi jeden Abend einmal eine “Zwangsbewässerung” initiiert und anschließend die automatische Bewässerung bis zum Vormittag des nächsten Tages pausiert.

ESP-07 / ESP8266

Per WLAN angebunden habe ich ein ESP-07 Modul, welches über den ESP8266 Chip verfügt. Die Datenübertragung erfolgt über das MQTT-Protokoll.

Der ESP ist im (Kleintier-) Stall untergebracht und misst in regelmäßigen Abständen die Innen- und Außentemperatur. Wenn die Innentemperatur einen Wert von 3 °C unterschreitet, dann wird automatisch eine kleine Elektroheizung eingeschaltet, damit es den lieben Tieren im Winter nicht zu kalt wird.

Weiterhin können über den HomePi eine Wärmelampe und eine LED-Beleuchtung geschaltet werden. Letztere wird automatisch durch den ioBroker jeden Abend bei Sonnenuntergang automatisch ein- und zu einer festgelegten Uhrzeit wieder ausgeschaltet.

Sonstige Funktionen

Zu den sonstigen Funktionen gehören unter anderem eine Systemüberwachung des zentralen Raspberry Pi, die Überwachung bestimmter Netzwerkgeräte (z.B. WLAN-Repeater) und die Bereitstellung eines Telegram-Bots, welcher mich bei bestimmten Ereignissen automatisch mit einer kurzen Nachricht informiert.

Allgemein lässt sich jede Funktion, die ioBroker von Hause aus, oder über einen Adapter unterstützt, einbinden.