Paheber Geschrieben August 5, 2020 at 15:03 Geschrieben August 5, 2020 at 15:03 Hallo Community, Ich habe Node-Red entdeckt und wollte meine Outdoor Weather Station einpflegen. In Node-Red gibt es eine Tinkerforge Palette "node-red-contrib-tinkerforg". Alle Bricklets sind dort hinterlegt. Gibt es hier jemand der das schonmal eingebunden hat ? Bei mir stürzt node red ab sobald ich localhost in der konfiguration eingegeben habe und dann auf deploy klick. Vielen dank für eure Bemühungen im vorraus! Philipp Zitieren
rtrbt Geschrieben August 6, 2020 at 07:50 Geschrieben August 6, 2020 at 07:50 Moin, Das Outdoor Weather Bricklet wird soweit ich das sehe von dem Paket nicht unterstützt, zumindest laut diesem Issue. Du kannst aber alternativ die MQTT-Bindings benutzen und darüber die Daten in Node-RED bekommen. Gruß, Erik Zitieren
duaw Geschrieben August 6, 2020 at 11:35 Geschrieben August 6, 2020 at 11:35 Hallo, der Maintainer maintaint wohl nur das, was er selbst hat. Ich verwende das MQTT-Binding. Das läuft gut und ist bestens supported! Gruß, Uwe Zitieren
Paheber Geschrieben August 6, 2020 at 12:05 Autor Geschrieben August 6, 2020 at 12:05 vor 28 Minuten schrieb duaw: Hallo, der Maintainer maintaint wohl nur das, was er selbst hat. Ich verwende das MQTT-Binding. Das läuft gut und ist bestens supported! Gruß, Uwe Hallo Uwe, kennst du eine Anleitung für Anfänger das Mqtt-Binding einzurichten ? vielen Dank für euere schnellen Antworten Grüße Philipp Zitieren
duaw Geschrieben August 6, 2020 at 12:28 Geschrieben August 6, 2020 at 12:28 Hallo, Philipp, ich bin wie hier beschrieben vorgegangen: https://www.tinkerforge.com/de/doc/Software/API_Bindings_MQTT.html# Unter Debian Linux (auch Raspi) sudo apt install tinkerforge-mqtt macht alles. Die Doku ist etwas gewöhnungsbedürftig. Am besten, du spielst mit den Kommandozeilentools oder z.B. MQTT.fx etwas rum. Gruß, Uwe Zitieren
Paheber Geschrieben August 6, 2020 at 15:14 Autor Geschrieben August 6, 2020 at 15:14 vor 2 Stunden schrieb duaw: Hallo, Philipp, ich bin wie hier beschrieben vorgegangen: https://www.tinkerforge.com/de/doc/Software/API_Bindings_MQTT.html# Unter Debian Linux (auch Raspi) sudo apt install tinkerforge-mqtt macht alles. Die Doku ist etwas gewöhnungsbedürftig. Am besten, du spielst mit den Kommandozeilentools oder z.B. MQTT.fx etwas rum. Gruß, Uwe Hallo Uwe, Sorry ich bin echt anfänger, ich habe mich an diesem Video Orientiert, leider funktioniert das so bei mir nicht und ich weiß nicht warum. Zitieren
duaw Geschrieben August 6, 2020 at 15:44 Geschrieben August 6, 2020 at 15:44 Hallo, Philipp, das im Video sieht alles ganz vernünftig aus. Ich bin den Weg mit der Anleitung von TF gegangen. Die ist doch ganz gut! Leider habe ich keine ausführlichere step-by-step-Anleitung ... VOR dem automatischen Ausführen als Service oder über crontab solltest Du manuell checken, ob die Einzelteile funktionieren. Und dabei "unten" anfangen. Wie ist Dein Aufbau? Welche HW verwendest Du? Welches OS? Aktuelle SW? Wo läuft der MQTT-Broker? Läuft der? Kannst Du mit MQTT.fx überhaupt Nachrichten publishen/subscriben ? Wo ist welches Bricklet wie angeschlossen? Siehst Du das im BrickViewer? Hast Du python wie erforderlich ? Wo läuft das Bindung tinkerforge_mqtt? Wie rufst Du das auf (nimm man --debug mit in den Aufruf 😉) Kannst Du das Binding in einer Shell (Konsole) aufrufen? Was funktioniert und was funktioniert nicht? Die Anleitung von TF ist doch ganz gut! Leider habe ich keine ausführlichere step-by-step-Anleitung ... Gruß, Uwe Zitieren
Paheber Geschrieben August 6, 2020 at 21:21 Autor Geschrieben August 6, 2020 at 21:21 vor 5 Stunden schrieb duaw: Hallo, Philipp, das im Video sieht alles ganz vernünftig aus. Ich bin den Weg mit der Anleitung von TF gegangen. Die ist doch ganz gut! Leider habe ich keine ausführlichere step-by-step-Anleitung ... VOR dem automatischen Ausführen als Service oder über crontab solltest Du manuell checken, ob die Einzelteile funktionieren. Und dabei "unten" anfangen. Wie ist Dein Aufbau? Welche HW verwendest Du? Welches OS? Aktuelle SW? Wo läuft der MQTT-Broker? Läuft der? Kannst Du mit MQTT.fx überhaupt Nachrichten publishen/subscriben ? Wo ist welches Bricklet wie angeschlossen? Siehst Du das im BrickViewer? Hast Du python wie erforderlich ? Wo läuft das Bindung tinkerforge_mqtt? Wie rufst Du das auf (nimm man --debug mit in den Aufruf 😉) Kannst Du das Binding in einer Shell (Konsole) aufrufen? Was funktioniert und was funktioniert nicht? Die Anleitung von TF ist doch ganz gut! Leider habe ich keine ausführlichere step-by-step-Anleitung ... Gruß, Uwe Hallo Uwe, vielen Dank für die Tipps, ich Versuch mich mal nochmal daran alles Step by step durchzuarbeiten und gegen zu prüfen 👍🏽 Grüße Philipp Zitieren
Paheber Geschrieben August 7, 2020 at 14:12 Autor Geschrieben August 7, 2020 at 14:12 Hallo Zusammen, Hallo Uwe, Ich habe jetz nochmals rumprobiert und alles neu aufgesetz setp-by-step aber es funzt nicht. Deshalb hier einmal mein Aufbau Raspberry Pi 3B+ Outdoor Weather Station Outdoor Station Empänger --- Master Brick --- Raspberry Auf dem Raspberry sind installiert und laufen der Deamon und der Brickviewer ich bekomme auch alle werte in den Brickviewer dann habe ich den mqtt binding installiert über sudo ...install..._mqtt läuft auch Version 2.0.11 Masquitto ist auch installiert und lässt sich über mqtt.fx auslesen und abfragen danach habe ich in den pfad usr/local/bin die mqtt datei der tinkerforge mqtt bindings zip :"tinkerforge_mqtt" kopiert und danach in den selben ordner eine textdatei namens outdoor_weather_config diese ist gefüllt mit: # Change XYZ to the UID of your Outdoor Weather Bricklet setup: # Enable station data callbacks publish '{"enable_callback": true}' to tinkerforge/request/outdoor_weather_bricklet/K5A/set_station_callback_configuration # Enable sensor data callbacks publish '{"enable_callback": true}' to tinkerforge/request/outdoor_weather_bricklet/K5A/set_sensor_callback_configuration # Handle incoming station data callbacks subscribe to tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data publish '{"register": true}' to tinkerforge/register/outdoor_weather_bricklet/K5A/station_data # Register station_data callback # Handle incoming sensor data callbacks subscribe to tinkerforge/callback/outdoor_weather_bricklet/K5A/sensor_data publish '{"register": true}' to tinkerforge/register/outdoor_weather_bricklet/K5A/sensor_data # Register sensor_data callback K5A ist meine UID in crontab -e steht: ***** /usr/bin/python3 /usr/local/bin/tinkerforge_mqtt --debug --broker-host 192.168.8.147 --init-file /usr/local/bin/outdoor_weather_config.txt >> ~/cron.log 2>&1 mein mqtt brocker hat kein passwort wie schon gesagt publischen über z.B diesen befehl : mosquitto_pub -d -t /home/data -m "Hello World" funzt ohne probleme. Bin ich richtig der Annahme das ich wenn ich diesen Kanal subscribe in mqtt.fx : tinkerforge/register/outdoor_weather_bricklet/K5A/station_data ich irgendwelche daten bekommen solllte ? Beim mqtt.fx scan findet er auch nix auser mein /home/data test Wäre mega wenn jemand mir hier helfen könnte Grüße Philipp Zitieren
duaw Geschrieben August 7, 2020 at 16:53 Geschrieben August 7, 2020 at 16:53 Hallo, Philipp, subscribe doch mal tinkerforge/# in MQTT.fx Was passiert, wenn via MQTT.fx die Nachricht tinkerforge/request/outdoor_weather_bricklet/K5A/get_station_data publishst? Es sollte in MQTT.fx die Response ankommen. Passiert das? Gruß, Uwe Zitieren
Paheber Geschrieben August 8, 2020 at 10:55 Autor Geschrieben August 8, 2020 at 10:55 vor 18 Stunden schrieb duaw: Hallo, Philipp, subscribe doch mal tinkerforge/# in MQTT.fx Was passiert, wenn via MQTT.fx die Nachricht tinkerforge/request/outdoor_weather_bricklet/K5A/get_station_data publishst? Es sollte in MQTT.fx die Response ankommen. Passiert das? Gruß, Uwe Hallo Uwe, Dann kommt {"_ERROR": "Could not parse payload for get_station_data call of outdoor_weather_bricklet K5A as JSON: No JSON object could be decoded"} gruß Philipp Zitieren
duaw Geschrieben August 10, 2020 at 07:38 Geschrieben August 10, 2020 at 07:38 (bearbeitet) Hallo, Philipp, leider habe ich das outdoor_weather_bricklet nicht. Um auszuschließen, dass das ein Bug im Bindung (in getstation_data) ist, sollte get_identity funktionieren. Das können ja alle Bricklets. Hier mein Setup: Mac (mit brickd und Brickv) und Raspi mit IP 192.168.1.200.Natürlich kann ich den Raspi vom Mac aus im Netz erreichen. Unter MQTT.fx auf dem Mac habe ich ein Connection Profile zum Broker 192.168.1.200 erstellt. Ich habe testweise ein humidity_v2_bricklet mit UID Dkd am Raspi am HAT Zero und einen Master mit temperature_bricklet mit UID zkv am USB des Raspi. Auf dem Raspi läuft der MQTT-Broker (Test: vom Mac aus kann ich mich mit MQTT.fx mit diesem verbinden, ich subscribe "#" und publishe "Blabla", dann wird "Blabla" am Mac wieder empfangen) der brickd (Test: vom Mac aus kann ich mich mit dem BrickV mit 192.168.1.200:4223 verbinden. Ich sehe am Mac das HAT Zero und den Master mit allen Bricklets) der tinkerforge_mqtt-Service (installiert mit sudo apt install tinkerforge-mqtt) Mein Test des Service, Schritt für Schritt: Start MQTT.fx auf dem Mac Connect vom Mac mit Broker auf Raspi (192.168.1.200) . Ich ordne Subscribe/Publish von MQTT.fx an, damit ich schöne beides im Blick habe. subscribe # (alles) publishe vom Mac tinkerforge/request/humidity_v2_bricklet/Dkd/get_identity erhalte die Antwort {"connected_uid": "QeK", "uid": "Dkd", "device_identifier": "humidity_v2_bricklet", "hardware_version": [1, 0, 0], "position": "b", "firmware_version": [2, 0, 6], "_display_name": "Humidity Bricklet 2.0"} publishe vom Mac tinkerforge/request/temperature_bricklet/zkv/get_identity erhalte die Antwort {"connected_uid": "62eUJm", "uid": "zkv", "device_identifier": "temperature_bricklet", "hardware_version": [1, 1, 0], "position": "c", "firmware_version": [2, 0, 4], "_display_name": "Temperature Bricklet"} Wenn Du ein anderes Bricklet hast, dann teste das auch mal. Wenn der Fehler bleibt, dann ... 🤨 Gruß, Uwe PS Ich hoffe, dass klappt. Bin erst am Freitag wieder da. bearbeitet August 10, 2020 at 07:38 von duaw Zitieren
Paheber Geschrieben August 10, 2020 at 08:29 Autor Geschrieben August 10, 2020 at 08:29 Hallo Uwe danke für die ausführlicher Erklärung und Anleitung ich probiere es gegen 15 Uhr wenn ich wieder im Büro bin Grüße Philipp Zitieren
Paheber Geschrieben August 10, 2020 at 13:43 Autor Geschrieben August 10, 2020 at 13:43 vor 6 Stunden schrieb duaw: der brickd (Test: vom Mac aus kann ich mich mit dem BrickV mit 192.168.1.200:4223 verbinden. Ich sehe am Mac das HAT Zero und den Master mit allen Bricklets Hallo Uwe, Also das kann ich schonmal nicht, bislang klappt der test auch nicht Zitieren
Paheber Geschrieben August 10, 2020 at 13:46 Autor Geschrieben August 10, 2020 at 13:46 Ich gaube es liegt am deamon : ich gebe das ein: brickd --check-config Config file '/home/pi/.brickd/brickd.conf' not found, using default values Using the following config values: listen.address = 0.0.0.0 listen.plain_port = 4223 listen.websocket_port = 0 listen.mesh_gateway_port = 4240 listen.dual_stack = off authentication.secret = log.level = info log.debug_filter = bricklet.portA.sleep_between_reads = 200 bricklet.portB.sleep_between_reads = 200 bricklet.portC.sleep_between_reads = 200 bricklet.portD.sleep_between_reads = 200 bricklet.portE.sleep_between_reads = 200 bricklet.portF.sleep_between_reads = 200 bricklet.portG.sleep_between_reads = 200 bricklet.portH.sleep_between_reads = 200 bricklet.portI.sleep_between_reads = 200 bricklet.portJ.sleep_between_reads = 200 bricklet.portHAT.sleep_between_reads = 2000 bricklet.group0.spidev = bricklet.group1.spidev = bricklet.group0.cs0.driver = <unknown> bricklet.group0.cs1.driver = <unknown> bricklet.group0.cs2.driver = <unknown> bricklet.group0.cs3.driver = <unknown> bricklet.group0.cs4.driver = <unknown> bricklet.group0.cs5.driver = <unknown> bricklet.group0.cs6.driver = <unknown> bricklet.group0.cs7.driver = <unknown> bricklet.group0.cs8.driver = <unknown> bricklet.group0.cs9.driver = <unknown> bricklet.group1.cs0.driver = <unknown> bricklet.group1.cs1.driver = <unknown> bricklet.group1.cs2.driver = <unknown> bricklet.group1.cs3.driver = <unknown> bricklet.group1.cs4.driver = <unknown> bricklet.group1.cs5.driver = <unknown> bricklet.group1.cs6.driver = <unknown> bricklet.group1.cs7.driver = <unknown> bricklet.group1.cs8.driver = <unknown> bricklet.group1.cs9.driver = <unknown> bricklet.group0.cs0.num = -1 bricklet.group0.cs1.num = -1 bricklet.group0.cs2.num = -1 bricklet.group0.cs3.num = -1 bricklet.group0.cs4.num = -1 bricklet.group0.cs5.num = -1 bricklet.group0.cs6.num = -1 bricklet.group0.cs7.num = -1 bricklet.group0.cs8.num = -1 bricklet.group0.cs9.num = -1 bricklet.group1.cs0.num = -1 bricklet.group1.cs1.num = -1 bricklet.group1.cs2.num = -1 bricklet.group1.cs3.num = -1 bricklet.group1.cs4.num = -1 bricklet.group1.cs5.num = -1 bricklet.group1.cs6.num = -1 bricklet.group1.cs7.num = -1 bricklet.group1.cs8.num = -1 bricklet.group1.cs9.num = -1 bricklet.group0.cs0.name = bricklet.group0.cs1.name = bricklet.group0.cs2.name = bricklet.group0.cs3.name = bricklet.group0.cs4.name = bricklet.group0.cs5.name = bricklet.group0.cs6.name = bricklet.group0.cs7.name = bricklet.group0.cs8.name = bricklet.group0.cs9.name = bricklet.group1.cs0.name = bricklet.group1.cs1.name = bricklet.group1.cs2.name = bricklet.group1.cs3.name = bricklet.group1.cs4.name = bricklet.group1.cs5.name = bricklet.group1.cs6.name = bricklet.group1.cs7.name = bricklet.group1.cs8.name = bricklet.group1.cs9.name = Zitieren
Paheber Geschrieben August 10, 2020 at 13:49 Autor Geschrieben August 10, 2020 at 13:49 Wenn ich nämlich nur das eingebe: brickd 2020-08-10 15:48:43.175960 <I> <main_linux.c:334> Brick Daemon 2.4.1 started (pid: 2286, daemonized: 0) libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/005: Permission denied libusb: error [_get_usbfs_fd] libusb requires write access to USB device nodes. 2020-08-10 15:48:43.207192 <W> <usb_stack.c:376> Could not open USB device (bus: 1, device: 5), ignoring USB device: LIBUSB_ERROR_ACCESS (-3) 2020-08-10 15:48:43.207280 <E> <usb_stack.c:387> Could not find USB device (bus: 1, device: 5) 2020-08-10 15:48:43.207485 <W> <usb.c:184> Ignoring USB device (bus: 1, device: 5) due to an error 2020-08-10 15:48:43.207690 <E> <socket.c:243> Could not bind IPv4 server socket to '0.0.0.0' resolved from '0.0.0.0' on port 4223: EADDRINUSE (98) 2020-08-10 15:48:43.207805 <E> <network.c:242> Could not open any socket to listen to 2020-08-10 15:48:43.208376 <I> <main_linux.c:538> Brick Daemon 2.4.1 stopped kommt das dabei raus Zitieren
duaw Geschrieben August 10, 2020 at 14:03 Geschrieben August 10, 2020 at 14:03 Alles befolgt unter https://www.tinkerforge.com/de/doc/Software/APT_Repository.html#apt-repository ? brickd läuft ? systemctl status brickd liefert bei mir ● brickd.service - Brick Daemon Loaded: loaded (/lib/systemd/system/brickd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-08-10 08:27:30 CEST; 7h ago Process: 460 ExecStart=/usr/bin/brickd --daemon (code=exited, status=0/SUCCESS) Main PID: 471 (brickd) Tasks: 7 (limit: 2068) CGroup: /system.slice/brickd.service └─471 /usr/bin/brickd --daemon Ach ja: Raspi aktuell ? sudo apt update // sudo apt upgrade durchgeführt? Gruß, Uwe ... jetzt weg. Zitieren
Paheber Geschrieben August 10, 2020 at 15:48 Autor Geschrieben August 10, 2020 at 15:48 vor 1 Stunde schrieb duaw: Alles befolgt unter https://www.tinkerforge.com/de/doc/Software/APT_Repository.html#apt-repository ? brickd läuft ? systemctl status brickd liefert bei mir ● brickd.service - Brick Daemon Loaded: loaded (/lib/systemd/system/brickd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-08-10 08:27:30 CEST; 7h ago Process: 460 ExecStart=/usr/bin/brickd --daemon (code=exited, status=0/SUCCESS) Main PID: 471 (brickd) Tasks: 7 (limit: 2068) CGroup: /system.slice/brickd.service └─471 /usr/bin/brickd --daemon Ach ja: Raspi aktuell ? sudo apt update // sudo apt upgrade durchgeführt? Gruß, Uwe ... jetzt weg. Hallo Uwe ja das sieht bei mir auch so aus, beim publishen über get_identity kommt das : {"_ERROR": "Unknown callback get_identity for device K5A of type outdoor_weather_bricklet"} beim publishen über station_data kommt das: {"_ERROR": "Could not parse payload for station_data callback registration of <class '__main__.OutdoorWeatherBricklet'> outdoor_weather_bricklet as JSON encoding a boolean: No JSON object could be decoded"} BIs Freitag, ich probiere mal noch ein bisschen und scrolle mich durchs WWW Zitieren
rtrbt Geschrieben August 11, 2020 at 07:40 Geschrieben August 11, 2020 at 07:40 Moin, Ich gehe mal die ganzen Posts durch On 8/7/2020 at 4:12 PM, Paheber said: dann habe ich den mqtt binding installiert über sudo ...install..._mqtt läuft auch Version 2.0.11 danach habe ich in den pfad usr/local/bin die mqtt datei der tinkerforge mqtt bindings zip :"tinkerforge_mqtt" kopiert Es reicht wenn du eine Variante davon machst, also entweder das Paket installieren oder die tinkerforge_mqtt händisch kopieren. On 8/7/2020 at 4:12 PM, Paheber said: und danach in den selben ordner eine textdatei namens outdoor_weather_config diese ist gefüllt mit: [...] ***** /usr/bin/python3 /usr/local/bin/tinkerforge_mqtt --debug --broker-host 192.168.8.147 --init-file /usr/local/bin/outdoor_weather_config.txt >> ~/cron.log 2>&1 Das ist etwas fies, die Beispiele, die wir auf der Seite angeben sind nicht das Format, das du als init-file benutzen kannst. Die musst du eher als Anleitung verstehen, was zu tun ist, die Beispiele geben ja auch z.b. an auf welche Topics du subscriben musst, das ergäbe in einem init-file aber keinen Sinn. On 8/7/2020 at 6:53 PM, duaw said: Was passiert, wenn via MQTT.fx die Nachricht tinkerforge/request/outdoor_weather_bricklet/K5A/get_station_data publishst? On 8/8/2020 at 12:55 PM, Paheber said: Dann kommt {"_ERROR": "Could not parse payload for get_station_data call of outdoor_weather_bricklet K5A as JSON: No JSON object could be decoded"} Das ist interessant, ich würde erwarten, dass MQTT.fx wenn du keinen Payload angibst auch einen leeren String schickt, anscheinend kam da aber etwas anderes. Passiert das auch, wenn du als Payload {} verschickst? 17 hours ago, Paheber said: Wenn ich nämlich nur das eingebe: brickd 2020-08-10 15:48:43.175960 <I> <main_linux.c:334> Brick Daemon 2.4.1 started (pid: 2286, daemonized: 0) libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/005: Permission denied Da fehlen die Root-Rechte, das sollte mit sudo brickd nicht passieren. Wenn systemctl status brickd aber Active: active (running) liefert, brauchst du das nicht, der Brick Daemon läuft dann schon als Service. 15 hours ago, Paheber said: beim publishen über get_identity kommt das : {"_ERROR": "Unknown callback get_identity for device K5A of type outdoor_weather_bricklet"} Hast du da im Topic /register/ anstelle von /request/ benutzt? 15 hours ago, Paheber said: beim publishen über station_data kommt das: {"_ERROR": "Could not parse payload for station_data callback registration of <class '__main__.OutdoorWeatherBricklet'> outdoor_weather_bricklet as JSON encoding a boolean: No JSON object could be decoded"} Das sieht wieder nach kaputtem Payload aus. Ich teste bei mir mal mit MQTT.fx, eventuell liegt da das Problem. Zitieren
Paheber Geschrieben August 11, 2020 at 13:17 Autor Geschrieben August 11, 2020 at 13:17 Hallo RTRBT, Ist es vielleicht schlau nochmal von vorne mit der Installation zu beginnen ? So Wie ich als anfänger das jetzt alles verstehe müsste das ja so ablaufen 1. APT Repository einrichten wget https://download.tinkerforge.com/apt/$(lsb_release -is | tr [A-Z] [a-z])/archive.key -q -O - | sudo apt-key add - sudo sh -c "echo 'deb https://download.tinkerforge.com/apt/$(lsb_release -is | tr [A-Z] [a-z]) $(lsb_release -cs) main' > /etc/apt/sources.list.d/tinkerforge.list" sudo apt update 2. Brick Daemon und Viewer installieren sudo apt install brickd sudo apt install brickv Dann kann ich durch öffnen des brickv schonmal sehen ob die station daten funkt und alles läuft. 3. MQTT binding installieren sudo apt install tinkerforge-mqtt soo, wo speichere ich jetzt die callback bsp. datei (bislang liegt sie bei mir in usr/local/bin/ und heißt outdoor_weather_station ? wo sage ich dem BrickD das er seine werte dort speichern soll ? Sorry ich hab echt noch kaum erfahrung in Mqtt und würde mich mega freuen wenn sie mir helfen könnten. Gruß Philipp Zitieren
rtrbt Geschrieben August 11, 2020 at 14:36 Geschrieben August 11, 2020 at 14:36 1 hour ago, Paheber said: Ist es vielleicht schlau nochmal von vorne mit der Installation zu beginnen ? Nein, das bringt dich vermutlich auch nicht weiter. Mach mal folgendes: Sicherstellen dass der Brick Daemon läuft: systemctl status brickd ausführen, dann muss Active: active (running) kommen Mit dem Brick Viewer verbinden und prüfen, ob das Outdoor Weather Bricklet auftaucht. (Schreib dir mal gleich die UID auf) Die MQTT-Bindings hast du ja schon installiert. Im Anhang ist ein init-file, das funktionieren sollte. Leg dir das mal in dein Home-Verzeichnis. Du musst noch die UID ändern von Fax auf die von deinem Bricklet (vier Mal). Die Bindings kannst du dann mit tinkerforge_mqtt --init-file ~/mqtt_outdoor_weather_init.txt --debug starten. Dabei darauf achten, dass folgende Zeilen ausgegeben werden: <DEBUG> MQTT bindings: Connected to mqtt broker. <DEBUG> MQTT bindings: Connected to brickd at ... In Node-RED kannst du dann mit dem Flow den ich angehängten habe die Daten auslesen. Du musst aber folgende Dinge im Flow ändern: Die Broker-IP anpassen, das geht durch Doppelklick auf den MQTT-Knoten (mit tinkerforge/callback/...), dann bei Server auf den Editieren-Button mit dem Stift und die IP ändern Im Topic des MQTT-Knotens selbst musst du auch Fax durch deine UID ersetzen Wenn dabei irgendetwas schief geht, schicke mal die Ausgabe von dem tinkerforge_mqtt-Befehl aus 2.3. mqtt_outdoor_weather_init.txt flows.json Zitieren
Paheber Geschrieben August 11, 2020 at 14:55 Autor Geschrieben August 11, 2020 at 14:55 Hallo RTRBT Er publischt glaube ich jetzt richtig : sudo tinkerforge_mqtt --init-file ~/mqtt_outdoor_weather_init.txt --debug 2020-08-11 16:47:30,147 <DEBUG> MQTT bindings: Configuring connection to MQTT broker at localhost:1883 2020-08-11 16:47:30,147 <DEBUG> MQTT bindings: Connected to MQTT broker at localhost:1883 2020-08-11 16:47:30,151 <DEBUG> paho.mqtt.client: Sending CONNECT (u0, p0, wr0, wq0, wf1, c1, k60) client_id= 2020-08-11 16:47:30,152 <DEBUG> paho.mqtt.client: Received CONNACK (0, 0) 2020-08-11 16:47:30,153 <DEBUG> MQTT bindings: Connected to mqtt broker. 2020-08-11 16:47:30,154 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m1) [('tinkerforge/request/#', 0)] 2020-08-11 16:47:30,154 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m2) [('tinkerforge/register/#', 0)] 2020-08-11 16:47:30,155 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m3), 'tinkerforge/callback/bindings/restart', ... (4 bytes) 2020-08-11 16:47:30,156 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m4) [('tinkerforge/callback/bindings/restart', 0)] 2020-08-11 16:47:30,157 <DEBUG> MQTT bindings: 2020-08-11 16:47:30,159 <DEBUG> MQTT bindings: Registered callback station_data for device K5A of type outdoor_weather_bricklet. Will publish messages to tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data. 2020-08-11 16:47:30,160 <DEBUG> MQTT bindings: 2020-08-11 16:47:30,161 <DEBUG> MQTT bindings: Registered callback sensor_data for device K5A of type outdoor_weather_bricklet. Will publish messages to tinkerforge/callback/outdoor_weather_bricklet/K5A/sensor_data. 2020-08-11 16:47:30,161 <DEBUG> MQTT bindings: Connecting to brickd at localhost:4223 2020-08-11 16:47:30,163 <DEBUG> paho.mqtt.client: Received SUBACK 2020-08-11 16:47:30,164 <DEBUG> paho.mqtt.client: Received SUBACK 2020-08-11 16:47:30,165 <DEBUG> paho.mqtt.client: Received SUBACK 2020-08-11 16:47:30,168 <DEBUG> MQTT bindings: Connected to Brick Daemon: Connection established after request from user. 2020-08-11 16:47:30,168 <DEBUG> MQTT bindings: Connected to brickd at localhost:4223 2020-08-11 16:47:30,169 <DEBUG> MQTT bindings: 2020-08-11 16:47:30,170 <DEBUG> MQTT bindings: Calling function set_station_callback_configuration for device K5A of type outdoor_weather_bricklet. 2020-08-11 16:47:30,178 <DEBUG> MQTT bindings: Calling function set_station_callback_configuration for device K5A of type outdoor_weather_bricklet succedded. 2020-08-11 16:47:30,178 <DEBUG> MQTT bindings: 2020-08-11 16:47:30,180 <DEBUG> MQTT bindings: Calling function set_sensor_callback_configuration for device K5A of type outdoor_weather_bricklet. 2020-08-11 16:47:30,181 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m5), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (146 bytes) 2020-08-11 16:47:30,198 <DEBUG> MQTT bindings: Calling function set_sensor_callback_configuration for device K5A of type outdoor_weather_bricklet succedded. 2020-08-11 16:47:51,308 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m6), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (146 bytes) 2020-08-11 16:48:30,363 <DEBUG> paho.mqtt.client: Sending PINGREQ 2020-08-11 16:48:30,365 <DEBUG> paho.mqtt.client: Received PINGRESP 2020-08-11 16:48:39,467 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m7), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (148 bytes) 2020-08-11 16:49:27,305 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m8), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (146 bytes) 2020-08-11 16:49:31,312 <DEBUG> paho.mqtt.client: Sending PINGREQ 2020-08-11 16:49:31,314 <DEBUG> paho.mqtt.client: Received PINGRESP 2020-08-11 16:50:15,559 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m9), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (146 bytes) 2020-08-11 16:50:31,583 <DEBUG> paho.mqtt.client: Sending PINGREQ 2020-08-11 16:50:31,585 <DEBUG> paho.mqtt.client: Received PINGRESP 2020-08-11 16:51:03,301 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m10), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (148 bytes) 2020-08-11 16:51:32,343 <DEBUG> paho.mqtt.client: Sending PINGREQ 2020-08-11 16:51:32,344 <DEBUG> paho.mqtt.client: Received PINGRESP 2020-08-11 16:52:32,425 <DEBUG> paho.mqtt.client: Sending PINGREQ 2020-08-11 16:52:32,426 <DEBUG> paho.mqtt.client: Received PINGRESP 2020-08-11 16:52:39,644 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m11), 'tinkerforge/callback/outdoor_weather_bricklet/K5A/station_data', ... (147 bytes) ^C2020-08-11 16:53:23,076 <DEBUG> MQTT bindings: Disconnecting from brickd and mqtt broker. 2020-08-11 16:53:23,228 <DEBUG> MQTT bindings: Disconnected from Brick Daemon: Disconnect was requested by user. 2020-08-11 16:53:23,230 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m12), 'tinkerforge/callback/bindings/shutdown', ... (4 bytes) nur empfange ich nichts am broker wo muss ich denn noch die broker ip eintragen ? Zitieren
Paheber Geschrieben August 11, 2020 at 15:05 Autor Geschrieben August 11, 2020 at 15:05 Hab gerade eben einen reboot durchgeführt und habe auf mqtt.fx # davor subscribet und jetzt kam auf tinkerforge/callback/bindings/shutdown "null" an Zitieren
Paheber Geschrieben August 11, 2020 at 19:07 Autor Geschrieben August 11, 2020 at 19:07 Hallo, Es hat doch geklappt er sendet ohne probleme alle daten vielen herzlichen dank!!!!! Nur noch eine frage: wie sorge ich dafür das bei einem restart automatisch wieder angefangen wird daten zu senden grüße philipp Zitieren
rtrbt Geschrieben August 12, 2020 at 09:05 Geschrieben August 12, 2020 at 09:05 13 hours ago, Paheber said: Es hat doch geklappt er sendet ohne probleme alle daten vielen herzlichen dank!!!!! Das klingt gut. 13 hours ago, Paheber said: Nur noch eine frage: wie sorge ich dafür das bei einem restart automatisch wieder angefangen wird daten zu senden Damit meinst du einen Restart des Raspberry Pis? Es sollte in /etc/ die Datei tinkerforge_mqtt.cmdline geben. Darin ist Zeile 98 ein auskommentierter init-file-Parameter. Wenn du also #--init-file INIT_FILE durch --init-file /home/dein_username/dein_initfile.txt ersetzt, sollten die Bindings das init-file beim Start lesen. Prinzipiell funktioniert die .cmdline-Datei genauso wie die Kommandozeilenparameter, das heißt wenn du noch andere Parameter hast, die du beim händischen Starten mitgibst, kannst du sie auch da eintragen. 17 hours ago, Paheber said: Hab gerade eben einen reboot durchgeführt und habe auf mqtt.fx # davor subscribet und jetzt kam auf tinkerforge/callback/bindings/shutdown "null" an Das soll dir nur mitteilen, dass sich die Bindings beenden. Beim Start der Bindings kommt eine äquivalente Nachricht, nur auf dem /restart anstelle von dem /shutdown Topic. 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.