Graphmodul li - LightPi
Das Graphmodul li - LightPi bildet alles rund um den LightPi im Graphen ab. Mit dem LightPi können Gebäudeautomatisierungen durchgeführt werden.
Der LightPi
Der LightPi ist eine Appliance mit 16 12V Gleichstrom Eingängen und 16 230V Wechselstrom Ausgängen die über einen verbauten Raspberry Pi ausgelesen bzw. geschaltet werden können. Der LightPi kann so zur Gebäudeautomatisierungen eingesetzt werden. Dieser Artikel beschreibt die Software, welche auf dem Raspberry Pi und im Graphen läuft um den LightPi an den Graphen anzuschließen.
Der LightPi-Slave
Der LightPi-Slave ist die Software-Komponente die auf dem im LightPi verbauten Raspberry Pi ausgeführt wird. Sie verbindet sich mit dem LightPi-Master und teilt diesem in regelmässigen Abständen den Schaltzustand der Ausgänge mit. Wird eine Änderung eines Schaltzustandes an einem Eingang entdeckt, so wird dieses Ereignis ebenfalls dem LightPi-Master mitgeteilt. Des weiteren reagiert der LightPi-Slave auf Befehle des LightPi-Masters und schaltet daraufhin die Ausgänge. Der LightPi-Slave schaltet die Ausgänge nur auf Befehl des LightPi-Masters! Der LightPi-Slave ist in Python3 geschrieben und verwendet die Bibliothek pigpio zum Auslesen und Schalten der Ein- und Ausgänge. Er verbindet sich automatisch mit dem konfigurierten LightPi-Master. Reisst die Verbindung ab, so wird automatisch versucht, diese wiederherzustellen. Die Datenpakete zwischen LightPi-Slave und LightPi-Master sind mit msgpack kodiert. Die Kommunikation erfolgt nicht verschlüsselt und auch nicht authentifiziert über TCP/IP. Eine sichere Netzwerkinfrastruktur ist also notwendig!
Der LightPi-Master
Der LightPi-Master ist die Software-Komponente die auf dem Gebäudeserver läuft. Er öffnet einen TCP-Port und wartet auf eingehende Verbindungen von LightPi-Slaves. Er verarbeitet die Zustands- und Ereignis-Nachrichten der LightPi-Slaves und reagiert auf diese mit Befehlen an die LightPi-Slaves. Er verwaltet ein Menge von Statemachines die den gewünschten Schaltzustand der Ausgänge definieren. Der LightPi-Master ist in PHP geschrieben.