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 ein wenig verzweifelt,

ich habe ein Problem mit der MQTT Verbindung zwischen dem Outdoor Weather Bricklet und meinem iobroker.

Mein Ziel ist die Daten der Außen-Wetterstation WS-6147 per MQTT zu meinem MQTT-Broker im iobroker zu schicken.

Ich habe die Außen-Wetterstation WS-6147, das Outdoor Weather Bricklet und ein HAT Brick. Verbunden ist das HAT Brick mit einem Raspberry PI 4. Auf dem Raspberry läuft iobroker mit dem MQTT Adapter als Broker.

 

Ich empfange die Daten der Wetterstation und kann sie per Brick Viewer auf meinem Raspberry einsehen. Soweit funktioniert es. Ich kann auch einen Sonoff Basic der mit Tasmota läuft per MQTT mit meinem Broker verbinden. Soweit läuft auch der MQTT-Broker.

 

Ich habe mich an dieses Tutorial gehalten und alle Schritte soweit ausgeführt und immer wieder kontrolliert.

https://www.youtube.com/watch?v=TQlqzDLswJE

 

Weiter habe ich in die Tinkerforge Anleitung bis zum Satz ausgeführt. 

"Dann muss das tinkerforge_mqtt-Script so ausgeführt werden, dass es sich mit dem Brick Daemon, sowie dem MQTT-Broker verbinden kann."

https://www.tinkerforge.com/de/doc/Software/API_Bindings_MQTT.html#api-bindings-mqtt-install

 

Am Ende kommt aber keine Verbindung per MQTT zustande. 

 

Nach langer Erklärung die Frage ;)

 

Wie muss ich das Skript richtig ausführen?

 

Mit freundlichen Grüßen

 

Helge

 

Geschrieben
  • Autor

Screenshot.thumb.png.2187a79d364b0d4571d082d5bd4f63ba.png

Geschrieben
  • Autor

broker-username und password habe ich richtig eingegeben

Geschrieben

Nicht "crontab -e", sondern den Inhalt der Datei ~/cron.log auf dem Raspberry Pi.

Das Video Tutorial dem du gefolgt bist fügt den Befehlt zum Start der MQTT Bindings in crontab ein.

Die Meldungen die tinkerforge_mqtt ausgibt werden dann durch den verwendeten Befehl nach ~/cron.log umgeleitet. Die Meldungen würde ich gerne sehen, um zu verstehen was da potentiel nicht richtig funktoniert.

Du kannst dir die ~/cron.log Datei am einfachsten mit "cat ~/cron.log" auf dem Raspberry Pi ausgeben lassen.

Geschrieben
  • Autor

358680678_Screenshot(12).thumb.png.ff89083d7adb3d47611b9d5e4d6dcf13.png

Geschrieben
  • Autor

Mit dem Befehl "cat ~/cron.log" hatte ich keinen Erfolg. Ich habe den zweiten Befehl unter diesem Link gefunden. Ich weiß nicht ob der zweite Befehl für dich richtig ist/war. ;)

Danke für deine Hilfe.

https://linuxhint.com/check-cron-logs-linux/

Geschrieben

Das es ~/cron.log nicht gibt ist schon mal in sich ein Hinweis.

Was kommt denn bei raus, wenn du den Befehl mal von Hand ausführst, anstatt ihn mit cron ausführen zu lassen (natürlich mit den XXX durch die richtigen Werte ersetzt)?

/usr/bin/python3 /usr/local/bin/tinkerforge_mqtt --debug --broker-host XXX --broker-username XXX --broker-password XXX --init-file /usr/local/bin/outdoor_weather_config.txt
Geschrieben
  • Autor

Could not read init file: Expecting value: line 1 column 1 (char 0)

Geschrieben
  • Autor

2101963467_Bildschirmfotovom2022-01-2718-29-34.thumb.png.4efef55fa047cbd0b5a3fbc1fb101f50.png

Geschrieben

Die Beispiele auf den einzelnen Seiten der MQTT-Dokumentation sind nicht in der Syntax für das init file, sondern eher Anweisungen an den Leser. Für ein init file müsste das aussehen wie hier beschrieben: https://www.tinkerforge.com/de/doc/Software/API_Bindings_MQTT.html#laden-initialer-nachrichten-aus-einer-datei

Also in deinem Fall:

{
    "pre_connect": {
        "tinkerforge/register/outdoor_weather_bricklet/SEz/station_data": {"register": true},
        "tinkerforge/register/outdoor_weather_bricklet/SEz/sensor_data": {"register": true},
    },
    "post_connect": {
        "tinkerforge/request/outdoor_weather_bricklet/SEz/set_station_callback_configuration": {"enable_callback": true},
        "tinkerforge/request/outdoor_weather_bricklet/SEz/set_sensor_callback_configuration": {"enable_callback": true},
    }
}

 

Geschrieben
  • Autor

Danke für eure Rückmeldung. Ich habe es soweit angepasst und bekomme jetzt einen anderen Fehler wenn ich es ausführe. 

Could not read init file: Expecting property name enclosed in double quotes: line 9 column 5 (char 218)

Geschrieben

Ah sorry, JSON kann kein Komma hinter dem jeweils letzen Eintrag. So sollte es laufen:

{
    "pre_connect": {
        "tinkerforge/register/outdoor_weather_bricklet/SEz/station_data": {"register": true},
        "tinkerforge/register/outdoor_weather_bricklet/SEz/sensor_data": {"register": true}
    },
    "post_connect": {
        "tinkerforge/request/outdoor_weather_bricklet/SEz/set_station_callback_configuration": {"enable_callback": true},
        "tinkerforge/request/outdoor_weather_bricklet/SEz/set_sensor_callback_configuration": {"enable_callback": true}
    }
}

 

Geschrieben
  • Autor

Es läuft jetzt. ;) Es besteht eine Verbindung zum iobroker. Ab hier probiere ich selber weiter zu kommen. 

Ihr habt einen verzweifelten Anfänger glücklich gemacht. xD

Dankeschön!

 

Gruß

Helge

Geschrieben

Gut zu hören. Wir müssen in der Doku deutlicher machen, dass die init-files und die Beispiele nicht das selbe sind. (oder eventuell auch init-files als Beispiele generieren.)

Grüße,
Erik

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.