Seite 1 von 1

[V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Do Mai 11, 2023 5:12 pm
von Auweia
Hallo Chris,
mit dem neuen Tile Design soll ja die gleichzeitige Nutzung der Backends KNX und MQTT in der CV13 ermöglicht werden.
Das KNX Backend habe ich zum Laufen gebracht, jedoch bekomme ich einen Timeout oder Verbindungsfehler beim MQTT.
Folgende Definitionen in der config habe ich gemacht:
<cv-backend default="true" type="knxd" uri="/proxy/cv13/cgi-bin/l"/> --> läuft
keine der folgenden läuft:
<cv-backend name="mqtt" type="mqtt" uri="wss://172.16.25.70:8083/ws" />
<cv-backend name="mqtt" type="mqtt" uri="wss://172.17.0.1:8083/ws" />
<cv-backend name="mqtt" type="mqtt" uri="wss://172.17.0.1:8083" />
Broker Definition:
listener 8083
protocol websockets
allow_anonymous true
socket_domain ipv4
MQTT websocket mit Port 8083 ist konfiguriert und kann mit dem client MQTT-Explorer erreicht werden. Im MQTT log kommen keine Daten von der CV an.
CV13 ist im Docker mit cometvisu/cometvisu:testing installiert und alle Environments-Variablen sind nicht definiert.
Wie muss ich das MQTT Backend definieren ?
Viele Grüße
Albert

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Do Mai 11, 2023 7:32 pm
von blaubaerli
Hallo Albert,

schau mal hier viewtopic.php?f=81&t=3676&p=40725&hilit=Mqtt#p40725

In diesem Thread hatte ich das mal beschrieben. Ich hoffe, dass das mit der aktuellen Version vom Mosquitto auch noch genau so klappt.

Welche Version vom Mqtt-Broker hast du wo laufen?

Der Hintergrund ist, dass du den Broker mit zwei unterschiedlichen Listenern parallel laufen lassen musst.

Zudem ist für die Visu von Interesse, dass du dich mit der Persistierung im Broker befasst.

Beste Grüße
Jens

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Do Mai 11, 2023 8:59 pm
von blaubaerli
Hallo Albert,

ich vermute, dass dir ggf. noch die korrekten Einstellungen im Reverse-Proxy fehlen. Es gibt unten in den Einträgen einen entsprechenden Websocket-Passus.

Beste Grüße
Jens

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Fr Mai 12, 2023 12:02 pm
von Auweia
Hallo Jens,
Danke für die Hinweise. Ich habe nochmals die gesamte Konfiguration überprüft.
MQTT Docker-Version: eclipse-mosquitto.1.6.
ports 1883 und 8083 sind definiert und open, nur ipv4 wird unterstützt.
Mit MQTT.Explorer komme ich über die Websockets an den MQTT Broker ( "ws://ip-add:8083 " )
Im MQTT logfile werden die Websockets aktiviert mit der Version LWS: 4.2.1
In den reverse proxy Definitionen beim TWS wird nur http unterstützt, es können keine websocket Definitionen vorgenommen werden.
Bisher wird ja nur MQTT oder KNX (neben Openhab) als Backend in der CV unterstütz, was auch bei mir mit der Docker Version der CV12 und CV13-testing funktioniert .
Daher stimmt vermutlich die Konfiguration der CV13-Testing nicht. Bisher gab es ein hidden.php File, in der die MQTT Websockets definiert wurden. Da kann wahrscheinlich nur Chris helfen...
Viele Grüße
Albert

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Fr Mai 12, 2023 4:08 pm
von blaubaerli
Hallo Albert,

die Verbindung von der CV zum Broker muss über den Reverse Proxy mit den entsprechend aktivierten Websocket-Einstellungen für den entsprechenden Eintrag geleitet werden. Ich kann im Moment keine Screenshots beifügen, da ich nicht daheim bin.

Details kann ich morgen wieder beisteuern…

Beste Grüße
Jens

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Fr Mai 12, 2023 5:07 pm
von Chris M.
Ich hab's bisher auch nur mit der Konfig über die Docker Environment Parameter getestet. Bei meinem Test gilt:

Der Mosqito-Container hört auf die Ports:
Port configuration
0.0.0.0:1883 --> 1883/tcp
0.0.0.0:8083 --> 8083/tcp
0.0.0.0:9001 --> 9001/tcp

Im TWS ist für den Mosquito Container als Proxy angelegt:
Bild

Damit kann ich so über den MQTT Explorer zugreifen:
Bild

Und im Portainer für die CometVisu hab ich als Environment ("ENV") diesen Eintrag:


BACKEND_MQTT wss://USERNAME:PASSWORD@timberwolf76.local:443/proxy/mqttws/ws

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Fr Mai 12, 2023 10:12 pm
von Auweia
Hallo Chris,
vielen Dank für deine Screenshots. Das ist ja eine wirklich tricky Lösung: Per TLS raus bzw. an den TWS und dann per reverse proxy mit http an MQTT.
Ich habe das exakt so bei mir nachgestellt, auch einen user mit Passwort im MQTT angelegt, da ja TLS das nicht ohne irgendeine security zulässt - leider bisher ohne Erfolg.
Sind beide Ports 1883 und 8083 im MQTT mit protocol http konfiguriert? Und das sogar mit unterschiedlichen Port-Nummern ?
Ich habe Netzwerk bridging Modus im Docker definiert und ich vermute mal du hast auf MacVlan umgestellt. Ist das Voraussetzung?
Auf jeden Fall ist deine Lösung überraschend!
Schönen Abend
Albert

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: So Mai 14, 2023 11:52 pm
von Chris M.
Was ich genau gemacht habe weiß ich gar nicht mehr, ist schon etwas länger her. Aber an spezielle Tricks kann ich mich nicht erinnern.

Die Mosquito-Config Datei sieht für mich auch sehr simpel aus:

Code: Alles auswählen

/ # grep "^[^#]" /mosquitto/config/mosquitto.conf
port 1883
protocol mqtt
listener 8083
protocol websockets
allow_anonymous false
password_file /mosquitto/config/users.txt
Das ganze ist auch ein normales Bridge-Netzwerk:
Bild

Re: [V4 IP3] [CV13-Testing] Wie muss MQTT per Websocket konfiguriert werden?

Verfasst: Di Mai 16, 2023 4:36 pm
von Auweia
Hallo Chris,
vielen Dank für deine Hilfe, es klappt jetzt Daten aus KNX und MQTT in der CV anzuzeigen.
Bei mir muss es heißen:

<cv-backend name="mqtt" type="mqtt" uri="wss://timberwolf191.fritz.box:443/proxy/mqttws/ws/"/>

Warum ein zusätzlicher "/" am Ende ..mqttws/ws/ erforderlich ist, weiß ich nicht, aber es funktioniert!

Bitte auf gelöst setzen!

VG
Albert