Theorie

Besteht der Wunsch ein SmartHome Netzwerk aufzubauen, so gibt es prinzipiell mehrere Lösungsansätze. 

  • Zum einen gibt es die Möglichkeit, die Steuerung und Verwaltung von einem zentralenKonten (Server/Steuereinheit) durchführen zu lassen.
  • Zum anderen gibt es aber auch die Möglichkeit mehrere kleinere Konten (Nodes) für jeweils wenige dedizierte Steueraufgaben zu nutzen.
  • Mischbetrieb
Im folgenden möchte ich zum "Mischbetrieb" einige Gedanken vermitteln.
Die Vorteile des Mischbetriebs sind meiner Meinung nach folgende:
  • einfache Wartbarkeit der einzelnen Nodes
  • einfache Erweiterbarkeit unter Beibehaltung der bestehenden Funktionalitäten.
  • komplexe Steuerungsaufgaben werden zentral gelöst
  • lokale Aufgaben können durch die einzelne Einhait selbständig verwaltet werden (Ausfallsicherheit)

Praxis

Da ich mich seit langen mit Heimautomatisiserung beschäftige läuft auch schon seit ca. 2002 eine C-Control von Conrad als Steuereinheit in meinem Haus. Der Wunsch war nun weitere Steueraufgaben zu implementieren ohne die bestehenden Funktionen jedesmal erneut zu testen bzw. irgendwie in mitleidenschaft zu ziehen.
Außerdem sollte die Haussteuerung an die neuen gegebenheiten (Internet, APP, Mailservice, etc.) angepasst werden. Dies habe ich (zumindest teilweis, die komplette Umstellung ist in Arbeit) mit dem dezentralen Konzept verwirklicht. Dazu wurden und werden verschiedene Nodes mit dem Arduino und dem Ethernet bzw WLAN Shield aufgebaut. Um jedoch einen wartbaren Code zu erhalten, ist ein Anwendungsgrundgerüst entstanden, welches als Template für alle Nodes zum Einsatz kommt.

Jede Node ist dabei in der Lage ihre jeweilige Aufgabe autonom zu erfüllen, kann aber mittels UDP mit allen anderen Nodes kommunizieren. Dabei erfolgt der Datenaustausch kontinuierlich, also ohne das vorher ein bestimmter Request erforderich wäre. Jede Node stellt ihre Messwerte (Steuerparameter) allen anderen Nodes zur Verfügung. Konfigurativ wird eingestellt für welche Messwerte sich die einzelnen Nodes interessieren. Da jede Node den gesamten Datenstrom mitliest (UDP-Broadcast), kann sie die interessanten Messwerte herausfiltern und ihrerseits verarbeiten.
 
Seit einiger Zeit gibt es auch Protokolle am Markt, welche diese Aufgaben autonom (out of the box) erfüllen ...MTTQ, etc.

Implementierung einer Node

Eine Node besteht prinzipiell aus einem Arduino [UNO] mit Ethernet bzw WLAN Shield (wenn möglich sollte auf WLAN verzichtet werden, da zu fehleranfällig). Ausserdem wird durch eine 2 Farb LED (rot/grün) der Zustand der Node angezeigt. (Initialisierung, RUN, STOP, OFF, Aktivität, Offline). Aus Sicherheitsgründen startet sich die Node nach 24h neu (dauert ca. 6sec). Dabei passiert dieses Reset als Hardwarereset über PIN3, so dass auch die angeschlossenen Kopmponenten (Shields) ein Reset ausführen. Der interne Watchdog Timer des Arduino wurde ebenfalls auf 8 Sekunden eingestellt und aktiviert.

Jede Node verfügt außerdem über einen Telnet Zugriff und einen eingebauten mini WEB Server. Über diese Zugänge können Kommandos abgesetz, Werte eingesehen und ggf. auch Parameter neu gesetzt werden. Zu beachten ist an dieser Stelle das keinerlei Zugangskontrollen oder Authentifikationen stattfinden. Das Node Netzwerk sollte deshalb ausreichend von Aussen abgeschirmt werden (hinter Router/Firewall oä.). Es können maximal 30 Werte/Parameter pro Node verwaltet werden.