Überblick
Das Smart Home ist um eine Art "Smart Home Zentrale" herum gebaut (dem smart-home-control Server), der auf einem Raspberry Pi läuft. Alle weiteren Geräte und Softwarekomponenten lassen sich aufteilen in Geräte, Gerätesteuerungen und Interfaces/Apps.
Geräte sind meistens kommerzielle Produkte, die im Smart Home verbaut sind. Manche sind speziell für Smart Homes gedacht (z.B. die smarten Steckdosen oder der SensFloor), andere eher Elektronik "Bastelprodukte" für den Raspberry Pi (z.B. die Kameras oder der Fenstersensor).
Die Gerätesteuerungen verbinden die häufig gerätespezifischen Interfaces mit der Smart Home Zentrale. Auf die Art kann es im Smart Home eine einheitliche API geben (fertige Smart Home Software bringt für sowas in der Regel eigene Bibliotheken an unterstützten Geräten mit). Vor allem bei den Kameras läuft die Gerätesteuerung aufgrund der Entfernung auf einem eigenen Raspberry Pi.
Interfaces oder Apps verbinden sich auf ähnliche Weise mit der Smart Home Zentrale, verwenden aber andere Funktionen der API. Sie können Daten in Echtzeit auslesen und Ereignisse auslösen, die dann an die Gerätesteuerungen geschickt werden. Für manche spezielle Funktionen (z.B. Push-Benachrichtigungen für die App) gibt es zusätzliche "Plugins" in der Smart Home Zentrale.
Architektur
Anders als typische Softwareprogramme besteht das Smart Home eher aus vielen einzelnen, verteilten Programmen/Komponenten. Das hat den Vorteil, dass es einen deutlich geringeren Unterschied macht, auf welchem Gerät die Programme laufen. Zum Beispiel ist das Mikron zwar gerade an den zentralen Raspberry Pi angeschlossen, und hat dort auch seine Gerätesteuerung laufen. Man könnte es aber genauso gut wo anders hinstellen und (bei nicht ausreichendem Kabel) an einen anderen Raspberry Pi dort anschließen. Außerdem ist es leichter sicherzustellen, dass das Smart Home robust gegenüber ausgefallenen Geräten ist.
Der Nachteil ist allerdings, dass die Organisation von Daten und Gerätestatus komlexer wird. Aus diesem Grund spielt die Socket.IO (SIO) API zwischen den Gerätesteuerungen bzw. Interfaces/Apps und der Smart Home Zentral eine wesentliche Rolle.
Details
Die meisten Gerätesteuerungen laufen als Systemd Service (eine Art Hintergrunddienst, der automatisch neustartet), daher die Namen mit .service
.
Dokumentation zu den einzelnen Komponenten: