Jump to content

Recommended Posts

Posted

Hallo zusammen,

ich habe ein Problem mit meinen Bricklets und der MQTT Kommunikation. Kurz zu meinem Aufbau:

Ich habe eine Ubuntu VM die als MQTT Broker fungiert. Auf der VM ist der Brick Daemon installiert. Weiterhin habe ich einen ESP32 Brick mit einem Air Quality und einem Ambient Light 3.0 Bricklet. Der ESP32 Brick ist per WLAN im Netzwerk und per USB am PC angeschlossen.

Ich starte das tinkerforge_mqtt Script mit folgendem Befehl:

tinkerforge_mqtt --broker-username <user> --broker-password <password>

In einem anderen Terminal führe ich folgenden Befehl aus:

mosquitto_pub -h localhost -t tinkerforge/request/air_quality_bricklet/Xyd/get_temperature -m "" -u <user> -p <password>

Die UID hab ich über das Webinterface ausgelesen. Leider bekomme ich in der Response Nachricht immer folgende Meldung:

<ERROR> MQTT bindings: Did not receive response for function 255 in time (call of get_temperature of air_quality_bricklet Xyd)

Ich hatte auch versucht mit --ipcon-timeout 5000 die Zeit zu erhöhen aber kein Erfolg.

 

Kann mir jemand Tipps geben an was es noch liegen könnte?

 

Vielen Dank

Grüße

  • 3 months later...
Posted

Kann mir hier jemand weiterhelfen?

Im Ereignis-Log des ESP32 Brick auf dem Webinterface habe ich folgende Einträge:

2024-01-29 08:58:08,668  MQTT: Received message on unknown topic 'request/air_quality_bricklet/Xyd/get_temperature' (data_len=0)
2024-01-29 08:58:11,173  MQTT: Received message on unknown topic 'response/air_quality_bricklet/Xyd/get_temperature' (data_len=138)

Aber die Meldung bleibt die gleiche.

Posted

Da dein erster Post schon von letztem Jahr ist, bin ich mir gerade nicht ganz sicher, in welchem Zustand sich dein Setup gerade befindet. Wenn du diese Fehlermeldungen im Ereignis-Log des ESP32 Brick hast, dann hast du das MQTT-Modul mit in die Firmware kompiliert?

Das korrekte Setup sollte so aussehen:

  • Auf dem ESP32 Brick läuft die Standardfirmware.
  • Auf der VM mit dem MQTT-Broker läuft kein Brick Daemon.
  • Dem tinkerforge_mqtt Script musst du außer den Zugangsdaten für den MQTT-Server noch mittels --ipcon-host die Adresse des Gerätes mit den Bricklets angeben. In deinem Fall ist das die Adresse vom ESP32 Brick.

Aktuell verbindet sich das tinkerforge_mqtt Script mit dem Brick Daemon der VM, aber an der VM sind gar keine Bricks oder Bricklets angeschlossen. Dementsprechend wird da nichts gefunden. Wenn du versuchst, MQTT-Nachrichten direkt an den ESP32 Brick zu schicken, versteht der die nicht, weil er keine automatische Übersetzung für die angeschlossen Bricklets durchführen kann.

  • Like 1
Posted

Hi Matze,

danke für deine Antwort. Mein Fehler war, dass ich bei --ipcon-host den Rechner angegeben habe, auf dem der Brick Daemon läuft, da das so in der Beschreibung der MQTT-Bindings steht.

Mit der IP des ESP32 Brick funktioniert es jetzt. Vielen Dank für die Hilfe.

Posted

Ja, das Beispiel geht davon aus, dass du die Bricklets über einen Master Brick an den PC anschließt, auf dem tinkerforge_mqtt läuft. Die Verwendung eines ESP32 Bricks wird da in der Tat nicht berücksichtigt.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...