MQTT Client

Mit dieser Schnittstelle können Daten von einem MQTT Broker Server empfangen und Daten gesendet werden.

 

Im Feld „MQTT Broker“ muss die IP Adresse oder DNS Name des MQTT Broker Server eingetragen werden.

Die Adresse muss mit „tcp://“ oder für SSL mit „ssl://“ beginnen.  Der Port wird am Ende  :80 angegeben.

Für Websockets kann ws:// oder SSL wss:// verwendet werden.

Falls ein Benutzer erforderlich ist, kann dieser optional im Benutzer und Passwort Feld angegeben werden.

Die Datenpunkte werden unter „Einstellungen“ – „Datenpunkte“ eingerichtet:

 

Status Abfrage:

Status:

 

Im Status Feld „Status JSON/XML“ wird der Pfad des Wertes angegeben, falls die Subscribe Antwort im Json oder Xml Format ist.

Der Parameter „value“ gibt die Position im XML oder im JSON an.

Arrays werden in Klammern geschrieben inklusive index: (Der Index beginnt mit 0 für den ersten Eintrag)

 

Bei einem Datensatz als Antwort vom Broker:

JSON Beispiel 1:

{

data:[  

 { temp:23.5} ,  

 { temp:26.6}

       ]

}

 

value=data[0].temp   == 23.5

value=data[1].temp   == 26.6

 

JSON Beispiel 2:

{

 data:{

         temp: 23.6,

         state: false,

         error: „no Error“

 }

}

 

value=data.temp   == 23.5

value=data.state   == false

value=data.error   == „no Error“

 

 

Bei einem An/Aus Datenpunkt können die Parameter „on=“ und „off=“ verwendet werden.

Sendet der Server z.B. den Wert „open“ und „closed“ so können diese gewandelt werden:

 

JSON Beispiel:

{

 contact:{

         state:“closed“

 }

}

 

value=contact.state;on=closed;off=closed

 

In diesem Beispiel wäre der Datenpunkt auf true bzw. aktiv/eingeschaltet.

Wird das Feld nicht verwendet, dann wird die gesamte Rückmeldung als Status verwendet.

 

Command Payload im Status (Wert zyklisch anfordern):

 

In diesem Feld kann eine Nachricht und eine Url eingetragen werden. Der Server sendet zyklisch mit dem Wert des Abfrageintervall die Nachricht an die Url mit der Publish Methode.

Hierüber können Status angefordert werden. Beispiel:

url=/router/get;message=temperature

Die Parameter müssen durch ein Semikolon getrennt werden.

 

Adresse:

Im Adressfeld wird die URL für das Topic eingetragen.

Beim Start werden alle Status mit dieser Adresse mit der Funktion Subscribe abonniert. Der Server reagiert auf diese Adresse und leitet den Wert an den Datenpunkt Status.


Befehle:

Für Befehle sind die Parameter „Command Payload“ sowie die „Adresse“ erforderlich.

 

Befehle Payload:

Das Feld „Command Payload“ wird bei einem Befehl an den Broker mit der Funktion Publish als Message gesendet.

 

Hier kann ein JSON Text oder XML oder reiner Text eingetragen werden.

Folgende Platzhalter können verwendet werden:

 

„%s;on=true;off=false“  Das %s wird in diesem Beispiel durch true oder false ersetzt (%s funktioniert nur mit allen 3 Angaben: %s ,on= und off=)

%i  Wird durch einen Integer (Ganzahl) Wert ersetzt. z.B. Bei Dimm- oder Prozentwerte. 100%

%d Wird durch Float Werte ersetzt. z.B. bei Temperaturen. 22.56°C

 

Ohne Platzhalter wird der Wert des Feldes an den Broker gesendet.

 

Go to Top