Um die MQTT-Schnittstelle auszuprobieren braucht es nur ein paar einfache Schritte:
Als erstes wird ein MQTT Broker, wie Mosquitto, benötigt. Dieser Broker muss MQTT über Websockets bereit stellen. Ob der Broker auf dem TWS in einem Docker-Container läuft, oder wo anders im Netz läuft, ist egal.
Wichtig ist aber, dass wenn die CometVisu über HTTPS läuft (also über den Proxy), so muss die WebSocket-Schnittstelle des Brokers auch über Secure WebSockets (also "wss:" statt "ws:") erreichbar sein. Mit der neuesten TWS Software (3.0 Release Candidate 1.1) kann hier der TWS-Proxy auch für WebSocket verwendet werden.
In der CometVisu muss nun nur in der Config-Datei im <pages>-Element mit dem Attribut backend="mqtt" der MQTT-Modus ausgewählt werden. Über das Attribut backend-url wird die URI der Websocket-Schnittstelle angegeben. Mit den optionalen Attributen username und password können, so notwendig, auch noch die Credentials übergeben werden.
Beispielsweise könnte das <pages>-Element so aussehen:
Code: Alles auswählen
<pages backend="mqtt" backend-url="wss://timberwolf123.local:443/proxy/mqtt/ws" username="testUser" password="testPasswort" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lib_version="9" design="pure" xsi:noNamespaceSchemaLocation="../visu_config.xsd">
Bei Werten in JSON-Strukturen gibt es hier nun ein neues Feature bei den Transforms: diese können für solche speziellen Fälle erweitert werden. So fügt beispielsweise dieser Code
Code: Alles auswählen
<switch>
<label>switch JSON</label>
<address transform="MQTT:json:c.d" retain="true">mqtt/switch_js</address>
</switch>
Das bedeutet, dass ein JSON in verschiedenen Widget durchaus mit seinen verschiedenen einzelnen Teilen verwendet werden kann.
Aber, was aktuell nicht geht, ist so ein JSON mit mehreren Werten gleichzeitig zu erzeugen.