MQTT-Verbindungen
MQTT ist im Programm enthalten. Sie brauchen dafür kein Plugin.
Die Verbindung
Abschnitt betitelt „Die Verbindung“| 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.
Das Tag
Abschnitt betitelt „Das Tag“| 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.
Nach außen schreiben
Abschnitt betitelt „Nach außen schreiben“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.
Wenn der Broker weg ist
Abschnitt betitelt „Wenn der Broker weg ist“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.