hovoi Geschrieben August 3, 2021 at 15:26 Geschrieben August 3, 2021 at 15:26 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 Zitieren
photron Geschrieben August 3, 2021 at 16:58 Geschrieben August 3, 2021 at 16:58 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. Zitieren
hovoi Geschrieben August 3, 2021 at 17:06 Autor Geschrieben August 3, 2021 at 17:06 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. Zitieren
hovoi Geschrieben August 7, 2021 at 09:27 Autor Geschrieben August 7, 2021 at 09:27 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. Zitieren
hovoi Geschrieben August 10, 2021 at 19:26 Autor Geschrieben August 10, 2021 at 19:26 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!! Zitieren
rtrbt Geschrieben August 12, 2021 at 07:08 Geschrieben August 12, 2021 at 07:08 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. Zitieren
hovoi Geschrieben August 14, 2021 at 13:39 Autor Geschrieben August 14, 2021 at 13:39 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.. Zitieren
hovoi Geschrieben August 15, 2021 at 19:14 Autor Geschrieben August 15, 2021 at 19:14 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. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.