Wenn mich jemand fragt warum ich mich intensiver mit dem Thema SmartHome und Home Automation beschäftige kann man es mit wenigen Worten beschreiben.

Ziel ist es, mit einem beliebigen internetfähigen Endgerät auf eine Steuerung zuzugreifen, die Sensoren und Aktoren miteinander verbindet. Dabei sollen die Aktoren abhängig von den aufgenommenen Messwerten der Sensoren oder auch manuellen Interaktionen ihre Zustände ändern.

Das Ergebnis ist ein System, welches zur Hausautomation verwendet werden kann. Im einfachsten Fall ist damit gemeint, Relais ein- und auszuschalten und somit entsprechende Verbraucher.

Node-RED Flow

Mein bisheriger Ansatz mit einem in C geschriebenen Programm diese Steuerung zu machen ist sehr zeitintensiv und erfordert Detailkenntnisse zu einer Programmiersprache. Selbst Änderungen an dem Programm sind nicht ad hoc umsetzbar. Dieser Ansatz wäre auf einem Microcontroller vermutlich ideal, wenn es um eine statische Steuerung und Geschwindigkeit geht.

Die Leistungsfähigkeit eines Raspberry Pi bietet ganz andere Möglichkeiten. Die grundsätzliche Lösung hierfür heißt „Node-red“.

A visual tool for wiring the Internet of Things

Das Herzstück bildet eine Node-red Instanz. Es stellt die grafische Programmierumgebung dar und durch entsprechende Module kann die Anpassung an die Hardware und externe Systeme erfolgen. Der Zugang zu dieser Umgebung und Oberfläche erfolgt über einen Webbrowser. Die manuellen Interaktionen können über das User Interface Dashboard auf einer Responsive Design Webseite im Browser bedient werden. Es funktioniert also auch prinzipiell auf einem mobile device.

Dasboard im Browser

Damit hat man jetzt die Möglichkeit über das Internet im Browser die Zustände zu verändern. Für die Programmierung selbst sind keine Programmierkenntnisse in einer Programmiersprache notwendig.

MQTT „Message Queuing Telemetry Transport“

MQTT

Es steht aber nicht immer ausreichend Bandbreite zur Verfügung um eine Webapplikation zu bedienen. Das ist der Moment wo MQTT ins Spiel kommt. Dieses Protokoll ist besonders geeignet um Daten zwischen Maschinen auszutauschen. Es hat sehr wenig Overhead und überträgt die Daten per TCP. Es muss also nicht immer LTE oder highspeed-wlan sein.

Die APP auf dem Handy kommuniziert Mit dem MQTT Broker und erhält von dem Broker die Statusänderungen bzw überträgt vom Endgerät die Statusänderungen zu dem Broker.

MQTT IoT APP

Es entfällt der gesamte Programmieraufwand um Funktionalitäten und Usability in eine App zu bringen. Stattdessen werden in der MQTT App in einem Dashboard Panels mit dem Broker verbunden. Der Umfang dieser Panels ist vielfältig und lässt erst einmal keine Wünsche offen.

Auszug der verfügbaren panels

Letztendlich war dieser Ansatz bisher der effektivste und intuitivste. Allein durch die graphische Programmierung, die Abbildung des Flows, welche in geringer Zeit möglich war habe ich mehr erreicht als Tage und Nächte lange Programmierung auf dem System.

Zwischenzeitlich hatte ich auch ein weiteren Raspi 3b+ besorgt und auch diverse mechanische Bauelemente um diesen in einem vernünftigen Gehäuse zu verstauen. In weiteren Abschnitten dieses Vorhabens geht es darum nicht nur eine Relaiskarte an das Modul anzuschließen sondern auch diverse Sensoren und Aktoren, die wie ursprünglich geplant, über I2C angeschlossen werden.