Jump to content

Node-Red Tinkerforge Palette


Recommended Posts

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

Link zu diesem Kommentar
Share on other sites

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 

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

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.

 

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

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 

Link zu diesem Kommentar
Share on other sites

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

 

 

Link zu diesem Kommentar
Share on other sites

 

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

Link zu diesem Kommentar
Share on other sites

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 von duaw
Link zu diesem Kommentar
Share on other sites

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             =

 

Link zu diesem Kommentar
Share on other sites

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

 

Link zu diesem Kommentar
Share on other sites

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.

 

 

 

Link zu diesem Kommentar
Share on other sites

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

 

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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

 

 

Link zu diesem Kommentar
Share on other sites

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:

  1. Sicherstellen dass der Brick Daemon läuft:
    1. systemctl status brickd ausführen, dann muss Active: active (running) kommen
    2. Mit dem Brick Viewer verbinden und prüfen, ob das Outdoor Weather Bricklet auftaucht. (Schreib dir mal gleich die UID auf)
  2. Die MQTT-Bindings hast du ja schon installiert.
    1. Im Anhang ist ein init-file, das funktionieren sollte. Leg dir das mal in dein Home-Verzeichnis.
    2. Du musst noch die UID ändern von Fax auf die von deinem Bricklet (vier Mal).
    3. 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 ...

       

  3. 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:
    1. 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
    2. 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

Link zu diesem Kommentar
Share on other sites

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 ?

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...