Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Geschrieben

Hallo,

ich bin dabei mir eine kleine Wetterstation zu bauen. Dazu habe ich einen zentralen Raspberry wo Node Red für die Hausautomatisierung läuft und einen Pi-Zero mit dem Zero-Brick.

Ich wollte den Datenaustausch mittels MQTT realisieren, aber irgendwie komme ich nicht weiter. 

Alle Programme habe ich installiert. Nun war ich der Meinung als ersten Test mit dem Befehl in der Zentrale: mosquitto_sub -t tinkerforge/response/hat_zero_brick/Qcf/get_usb_voltage

und dem Befehl auf dem Pi-Zero: mosquitto_pub -t tinkerforge/request/hat_zero_brick/Qcf/get_usb_voltage wird mir die USB-Spannung ausgegeben.

Was mache ich hier falsch bzw. wo muß ich noch nachkonfigurierten. Hatte schon im Forum gesucht, aber leider nichts gefunden.

hovoi

 

Geschrieben

Du hast bei mosquitto_sub und mosquitto_pub keinen Host angegeben. Hast du das hier nur der Kürze halber weggelassen, oder hast du da wirklich nur das Topic per -t angegeben. Das kann so nicht funktionieren, wenn du das auf zwei verschiedenen Raspberry Pis ausführst, denn ohne Angabe des Hosts verbinden sich beide Befehle zum jeweils lokalen MQTT Broker. Damit alle Beteiligten die jeweiligen Nachrichten auch sehen können müssen mosquitto_sub, mosquitto_pub und die MQTT Bindings sich zum gleichen MQTT Broker verbinden. Läuft der MQTT Broker auf dem zentralen Raspberry oder dem Pi Zero?

Du musst auf dem Raspberry Pi Zero zumindest den Brick Daemon installiert haben, weil dort der HAT Zero Brick angeschlossen ist. Zusätzlich brauchst du noch die MQTT Bindings und einen MQTT Broker. Beides kann auf dem Pi Zero laufen, muss aber nicht. Wenn beides auf dem Pi Zero läuft, dann musst du nichts konfigurieren, weil das die Standardeinstellung ist. Du musst dann allerdings beim mosquitto_sub Befehl auf dem zentralen Raspberry als Host den Pi Zero angeben.

Wenn aber die MQTT Bindings nicht auf dem Pi Zero laufen, dann musst du in den MQTT Bindings einstellen wo der Brick Daemon läuft.

Dort wo die MQTT Bindings installiert sind (ich nehme an du hast diese per Debian Package als systemd Service installiert) die Datei /etc/tinkerforge_mqtt.cmdline bearbeiten, dort die --ipcon-host Zeile einkommentieren und localhost durch den Hostname oder die IP Adresse des Pi Zeros ersetzen. Danach per "sudo sytemctl restart tinkerforge_mqtt" die MQTT Bindings neustarten.

Wenn der MQTT Broker nicht auf dem gleichen Rechner läuft wie die MQTT Bindings, dann musst du in /etc/tinkerforge_mqtt.cmdline auch noch einstellen wo der Broker läuft. Dazu die --broker-host Zeile einkommentieren und localhost durch den Hostname oder die IP Adresse des Rechner ersetzten auf dem der MQTT Broker läuft.

Alternativ versuch erstmal einfacher anzufangen. Brick Daemon, MQTT Bindings und MQTT Brocker auf dem Pi Zero laufen lassen. Da musst du nichts umstellen. Dann den mosquitto_sub und mosquitto_pub Befehl auf dem Pi Zero ausführen. Erst wenn das funktioniert das ganze auf zwei Raspberry Pis verteilen.

Geschrieben
  • Autor

Danke für die schnelle Antwort. Habe es vielleicht gleich zu kompliziert angefangen. Werde es jetzt erst mal auf einen Pi testen und dann verteilen.

Melde mich wieder wenn es läuft.

Geschrieben
  • Autor

Hallo Photron,

habe jetzt auf einen Pi alles zum laufen gebracht. Auf die Angabe der IP-Adresse hätte man auch selbst kommen können, aber so ist das eben manchmal...

Vielen Dank nochmal.

Geschrieben
  • Autor

Hallo Photron,

ich komme mit den Callbacks einfach nicht weiter. Was ist an meinen Befehlen falsch? 

mosquitto_pub -h myIP -t tinkerforge/register/hat_zero_brick/Qcf/usb_voltage -m 'true'
mosquitto_pub -h myIP -t tinkerforge/callback/hat_zero_brick/Qcf/set_usb_voltage_callback_configuration -m ' "period":1000'
mosquitto_sub -h myIP -t tinkerforge/callback/hat_zero_brick/Qcf/get_usb_voltage

Danke schon mal vorab für die Hilfe!!

Geschrieben
On 8/10/2021 at 9:26 PM, hovoi said:

tinkerforge/callback/hat_zero_brick/Qcf/set_usb_voltage_callback_configuration

Das muss ein /request/ sein statt /callback/. Prinzipiell sind die /register/ und /request/-Topics die, auf die du publisht und /response/ und /callback/ die, auf die die Bindings publishen, also du subscribst.

Geschrieben
  • Autor

Vielen Dank für die schnelle Antwort. Klappt in diesem Forum super. 👌

Getestet habe ich es noch nicht. Ich habe jetzt den Wettersensor an den richtigen Platz montiert und nun keinen Kontakt mehr. Entfernung zwischen Sensor und Bricklet ca. 20m und keine Hindernisse dazwischen. Ist großer Mist. Ach so Batterien sind getauscht und Antenne ist fest dran.. 

Geschrieben
  • Autor

Hallo,

ich habe das Problem mit dem fehlenden Empfang gelöst. Das Empfängerbricklet war bei mir auf Leiterplattenmaterial als Montageplatte aufgebaut. Leider hat die Kupferschicht auf der Leiterplatte das Signal so gedämpft, das kein Empfang mehr möglich war. Ich habe es jetzt mit einen längeren Kabel ca. 10cm von meinen Testaufbau entfernt und damit einen stabilen Empfang erreicht.

So jetzt geht es weiter mit der Software.

Join the conversation

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

Gast
Reply to this topic...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.