Zum Inhalt springen

MQTT-Verbindungen

MQTT ist im Programm enthalten. Sie brauchen dafür kein Plugin.

Feld Bedeutung
Broker-Adresse mqtt:// unverschlüsselt, mqtts:// verschlüsselt. Port angeben, wenn er nicht 1883 ist. Beispiel: mqtt://10.0.0.5:1883
Benutzer leer lassen, wenn der Broker keine Anmeldung verlangt
Passwort wird verschlüsselt gespeichert
Client-Kennung leer lassen für eine abgeleitete Kennung

Zur Client-Kennung: zwei Verbindungen dürfen nie dieselbe benutzen. Der Broker wirft sonst abwechselnd eine von beiden hinaus, und das sieht aus wie ein instabiles Netz.

TrakState hält keine dauerhaften Abonnements auf dem Broker. Nach einem Neustart wird aus der Konfiguration neu abonniert; die Wahrheit steht bei uns, nicht in einer Warteschlange des Brokers. Ein Wiederverbindungsversuch läuft alle fünf Sekunden.

Feld Bedeutung
Topic + steht für genau eine Ebene, # für den Rest. Beispiel: line1/+/cycle
Nutzlast Der ganze Inhalt ist der Wert oder JSON, Wert an einem Pfad
JSON-Pfad nur bei JSON. Ebenen mit Schrägstrich trennen, zum Beispiel data/temperature

Ein Tag heißt zum Beispiel Press1.PartCount und hört auf ein Topic. Fehlt der JSON-Pfad in einer eintreffenden Nachricht, wird das Tag als schlecht gemeldet. Der letzte Wert wird nicht weitergezeigt — eine alte Zahl, die aussieht wie eine aktuelle, ist schlimmer als eine sichtbare Lücke.

Beim Speichern werden die Felder des Tags mit dem verglichen, was der Konnektor erwartet: ein leeres Topic, ein Feld, das der Konnektor nicht kennt, oder ein Wert, den er nicht annimmt, erscheint unter den Feldern als Warnung. Gespeichert wird das Tag trotzdem — eine Warnung heißt, dass es sehr wahrscheinlich keinen Wert bekommt, bis das Feld korrigiert ist. Dasselbe gilt für ein Tag, dessen Konnektor nicht mehr installiert ist: es lässt sich weiter speichern, nur seine Felder können nicht geprüft werden.

MQTT kann schreiben. Ein Tag mit der Richtung Schreibt zur Maschine oder Beides, zum Beispiel Press1.Setpoint_bar, veröffentlicht seinen Wert auf dem Topic.

Zwei Regeln dazu:

  • Das Topic muss eindeutig sein. Auf ein Topic mit + oder # lässt sich nicht veröffentlichen.
  • Es gibt eine Quittung. Veröffentlicht wird mit QoS 1, und der Schreibvorgang gilt erst als erfolgreich, wenn der Broker bestätigt hat. Ist die Verbindung nicht aufgebaut oder bleibt die Bestätigung länger als fünf Sekunden aus, meldet TrakState einen Fehler statt eines Erfolgs. Ein Sollwert, der lautlos verschwindet, ist in einer Anlage kein Anzeigefehler.

Vor dem Absenden fragt die Oberfläche noch einmal nach und nennt dabei Wert, Tag, Verbindung und Topic.

Fällt eine Verbindung aus, werden nur die Tags dieser Verbindung als schlecht markiert. Eine Halle, die steht, macht die Zahlen der anderen Halle nicht verdächtig.