Subscription-Modell - MQTT

Publisher - Teilt Informationen mit Broker

Der Publisher teilt seine Informationen und Statusupdates mit dem Broker, damit dieser die Informationen dann weiter verteilen kann. Die Form dieser Informationen hängen von der Konfiguration des Publishers ab. Um dies herauszufinden kann ein Element Discovery gemacht werden.

Subscriber - Bezieht Informationen vom Broker

Jedes Gerät kann zum Subscriber werden, sofern es sich zum Broker verbinden kann.

Der Subscriber kann sich ein Topic aussuchen, welches er abonnieren will. Dies kann zu einem spezifischen Element, dem gesamten System oder über alle pubizierten Informationen sein. Die Nachrichten zum abonnierten Topic werden dann immer an den Subscriber weitergeschickt, sobald diese ankommen.

Um die Subscription beim Broker hinzuzufügen, muss eine Anfrage geschickt werden. Und je nach dem welches Topic interessant ist, sieht diese Nachricht unterschiedlich aus:

Zusätzlich sollte auch die Topic-Strukturverinnerlicht werden.

Topic für Alle Informationen

Um alle Informationen zu erhalten, kann man einfach „#“ als Topic angeben.

#

Oder man gibt den Controller an und danach das „#“.

12XY-X34Z-XY12-3XZ4/#

Falls ein Topic Präfix definiert wurde, kann auch dieser mit gefolgtem „#“ angegeben werden, um alle Informationen aller Controller unter dem Präfix zu erhalten.

myBuilding-01/#

Topic für ein System

Wenn man ein spezifisches System abonnieren möchte, muss dieses im Topic angegeben werden. Hier im Beispiel werden alle Licht-Elemente abgerufen.

12XY-X34Z-XY12-3XZ4/lights/#

Eine Liste der verschiedenen System-Topics finden Sie hier: Tabelle der SYSTEM-Namen

Topic für ein spezifisches Element

Um die Informationen eines spezifischen Elements abzurufen, müssen im topic der Controller als auch das System angegeben werden, und als letztes das Element, das abgerufen werden soll.

12XY-X34Z-XY12-3XZ4/lights/item0 

Es wird kein „#“ benötigt, da das „item“ der letzte Teil in der Kette ist. Hierunter gibt es keine Unterteilungen mehr.

Falls das „#“ doch hinzugefügt wird, werden zusätzlich auch die /info Nachrichten des Elements empfangen.

12XY-X34Z-XY12-3XZ4/lights/item0/#