Allgemeines/ Kommunikation

Zur Kommunikation zwischen app(s) und den Sensoren wird das Message Queuing Telemetry Transport Protokoll (MQTT) genutzt. Jeder Sensor verfügt in seinem eigenen Konfigurationsnetz über einen eigenen MQTT-Server.

Eine zentrale Bedeutung bei der MQTT-Kommunikation kommt der Vergabe der Topics zu. Topics sind hierarchische Adressen, welche Sender (Publisher) und Empfänger (Subscriber) gleichermaßen nutzen, um Daten auszutauschen.

Jedem Sensor wird in seinem Arbeitsnetzwerk, welches durch einen MQTT-Server bedient wird, ein Event-Topic zugewiesen z.B.  sentry/sensor_1. Im einfachsten Fall sollte dafür ein Netzpräfix und die ID des Sensors genutzt werden. Dieses Topic wird vom entsprechenden Gerät abonniert und zum Empfang von gerätespezifischen Daten genutzt. Dabei handelt es sich im Wesentlichen um Steuerbefehle. Jeder Steuerbefehl besteht aus einer Anforderung, dem Request (REQ), und einer entsprechenden Antwort, der Response (RSP). Im Request wird die für die Antwort zu nutzende Adresse (Topic) z.B. sentry/app1 im Datenelement e_from mitgeliefert. Für jede Steuerung muss sich die steuernde Instanz z.B. eine App am Sensor registrieren. Zu jedem Zeitpunkt darf nur eine App registriert sein. Eine Registrierung wird durch ein spezielles Steuerkommando (Unregister.REQ),  durch das Registrieren einer anderen App oder durch ein Timeout, bei fehlender Kommunikation, beendet. Während der Registrierungsphase werden auch alle, die Steuerung nicht betreffenden Informationen (INF), an die registrierte App gesendet.

Im normalen Arbeitszustand, ohne Registrierung, werden die anfallenden Informationen an das Signal-Topic gesendet. Dies wird gemeinsam mit dem Event-Topic für jeden Sensor in der Inbetriebnahme konfiguriert.

Das Signal-Topic kann von allen Applikationen abonniert werden, die diese Informationen zur Weiterverarbeitung oder zur Signalisierung benötigen.      

Sentry MQTT Kommunikationsdiagramm