Eine der meistgewünschten Fähigkeiten eines Smart Homes/Gebäudes ist die Möglichkeit eine Vielzahl von Systemen und Geräten in eine Gesamtlösung zu integrieren. Diese Au- fgabe wird hervorragend mit den Integrationsmöglichkeiten des DOMIQ/Base Moduls abgebildet.
Das DOMIQ System bietet aktive und passive Integration. Die aktive Integration wird auf Basis von Erweiterungsmodulen (Serial, Expander, Light) implementiert oder durch So- ftware auf einem Base Modul realisiert. Das Hauptprinzip dieses Typs der Integration ist, dass der Datenaustausch vom DOMIQ System initiiert und kontrolliert wird. Ein Beispiel hierfür ist die Integration eines Satel Einbrucherkennungssystems, bei der ein Base Mo- dul in Verbindung mit einem DOMIQ/Serial-2SI Modul zyklisch die Variablenwerte des Alarmpanels abfragt. Das DOMIQ System verhält sich bei diesem Typ der Integration grundsätzlich wie ein Master.
Bei der passiven Integration initiiert eine externe Software die Kommunikation mit einer DOMIQ/Base und das Base Modul verarbeitet die empfangenen Daten mit Hilfe von pro- grammierten Regeln, stößt selbst aber keinen Datenaustausch an. Das Base Modul ver- hält sich hierbei wie ein Slave. Diese Art der Integration bietet fast unbegrenzte Möglichkeiten, alle Arten von Netzwerkgeräte, die im gleichen LAN wie das Base Modul sind einzubinden.
1. Protokolle and Funktionalitäten
1.1. Aufbau der Verbindung
Die passive Integration basiert auf dem TCP/IP Protokoll. Das Base Modul empfängt auf dem Port 4224. Da die Kommunikation nicht verschlüsselt ist sollte dieser Port nicht weitergeleitet werden um über das Internet zugänglich zu sein. Um sich zu verbinden, muss ein Master die Verbindung mit der IP-Adresse des Base Moduls auf den Port 4224 aufbauen. Zum Test von einem PC aus kann netcat (nc <IP> 4224)
oder Telnet (tel- net <IP> 4224)
verwendet werden.
1.2. Funktionalitäten
Durch den Verbindungsaufbau mit einem Base Modul kann ein Master Gerät die folgen-
den Funktionen umsetzen:
- Daten von einem Base Modul einsammeln
- Die Zustände aller Variablen und Geräte steuern, die im Base Modul vorhanden sind.
- Daten an das Base Modul übertragen.
Der folgende Teil dieses Tutorials beschreibt jede dieser Funktionalitäten
1.2.1. Daten von einem Base Modul einsammeln
Nachdem die Verbindung mit einem Base Modul aufgebaut wurde, erhält das Master Ge- rät Benachrichtigungen (Notifications) über Zustandswechsel von Bezeichnern (Variablen), die im Base Modul verfügbar sind. Benachrichtigungen werden automatisch vom Base versandt, sobald sich ein Status (Wert) ändert. Ein Master Gerät kann mit Hilfe dieser Be- nachrichtigungen in Echtzeit die Zustände aller Bezeichner aufnehmen und visualisieren (z.B. den Status des LCN Systems, MODBUS Register, Alarmsysteme, etc.). Ein Beispiel für dieses Datensammeln kann eine Anwendung sein, die Temperatur – oder Energiever- brauchsdaten in einem Gebäude zur anschliessen Analyse abgreift.
Das Base Modul kann die Zustände aller Bezeichner zusammen als ein Paket ausgeben. Um dies anzustoßen, muss ein Master Gerät ein Fragezeichen, gefolgt von einem Wagen- rücklauf („Carriage Return”) – und Zeilenumbruch („Newline”)- Zeichen senden: ?\r\n.
Beim Test von einem PC aus, tippen Sie bitte ? (in einem Terminal- oder Kommandofen- ster) und drücken dann Return, um das Kommando abzusenden.
Nach dem Erhalt dieser Anfrage wird das Base Module die Zustände aller vefügbaren Va- riablenbezeichner im folgenden Format ausgeben:
name=value (jeder Eintrag in einer eigenen Zeile).
Man kann auch den Zustand eines einzelnen Bezeichners abfragen. Hierzu muss das Ma-
ster Gerät einen Abfragestring mit folgendem Format senden:
identifier=?\r\n,
zum Beispeil: LCN.output.0.10.1=?\r\n
Beim Testen von einem PC aus mittels Kommandozeilenfenster müssen die Zeichen \r\n weggelassen werden und das Kommando statt dessen mit der Return Taste abgeschickt werden.
1.2.2. Steuerung
Bei Verwendung der passiven Integration kann ein Master Gerät die Zustände aller Bez- eichner, die im Base Modul verfügbar sind, steuern. Damit kann es alle Geräte und Varia- blen steuern, die auch das Base Modul steuern kann. In diesem Fall muss das Base Modul Kommandos im folgenden Format empfangen:
identifier=value\r\n, zum Beispiel LCN.output.0.10.1=100\r\n – dieser Be- fehl setzt den Ausgang 1 des LCN Moduls 10 auf 100%. Eine Liste aller zur Verfügung stehender Bezeichner ist in der Konfigurationsanleitung des DOMIQ/Base Moduls zu finden.
Dieses Funktionalität ermöglicht den Einsatz des Base Moduls als Gateway zwischen je- dem Gebäudeautomationssystem als Master und Subsystemen des DOMIQ/Base Moduls.
1.2.3. Daten an das Base übertragen
Die passive Integration erlaubt zudem, Daten von einem Master Gerät an das Base Modul zu übertragen. Diese Funktionalität macht es möglich, jedes Gerät, das sich über den Port 4224 verbinden kann, zu integrieren, indem es Datenpakete wie in den vorangegangenen Kapiteln sendet. Beispiele dieser Art der Integration wurden bereits im Tutorial zur Anbin- dung von Mobotix Kameras und Mobotix Türkamerasystemen vorgestellt. In diesen Tu- torials wurde beschrieben, wie Türkamerasysteme Ereignisse, z.B. das Betätigen des Klingeltasters oder Bewegungsmeldungen etc. übertragen können.
Durch das Übertragen von Daten zum Base Modul können integriert werden:
- Mikrocomputer – zum Beispiel: Arduino, Raspberry PI, BeagleBone etc. Das An- wendungsfeld von Mikrocomputern ist weit. Im Zusammenhang mit Smart Homes soll hier die Möglichkeit genannt werden, günstige und weit verbreitete Digital- und Analogsensoren einzubinden. Dies können z.B. Sensoren für Temperatur, Feuchte, Kohlendioxid, Luftgüte etc. sein
- Video Türanlagen
- SPSen
- Andere Software zur Hausautomation, z.B. openHAB.
Alle Daten, die die ein Base Module empfängt, werden als Befehle interpretiert, weshalb sie mit einem Präfix C. versehen werden. Wenn also ein Master Gerät ein Datenpakt im folgenden Format sendet: identifier=value\r\n,
so interpretiert das Base Modul dieses als C.identifier=value\r\n.
Empfangene Daten können dann ein Ereignis (Event) auslösen, das eine Folge von programmierten Befehlen ausführt.
BeispielAls Beispiel zeigen wir, wie ein Datenpaket von der Mobotix Video-Türanlage gesendet wird welches das Drücken des Klingeltasters meldet. Als Reaktion auf den Empfang dieses Datenpakets wird eine Benachrichtigung (Push-Notification) an die Remote App geschickt. In diesem Beispiel gehen wir davon aus, dass Mobotix den folgenden Textstring absetzt, wenn die Klingeltaste gedrückt wird: MOBOTIX.event.t24=CameraBellButton\r\n
Um auf dieses Datenpaket zu reagieren, definieren wir das folgende Event:
- Kanal: C.MOBOTIX.event.t24
- Daten: CameraBellButton
- Im Bereich Aktionen, klicken Sie auf Befehl hinzufügen… und geben Sie im nicht neu öffnenden Fenster ein:
- Name: C.REMOTE.notify
- Wert: Door bell.
Entsprechend können Sie andere Events erstellen und alle Daten verarbeiten, die die Base über den Port 4224 empfängt.