Jump to content

MQTT Probleme Outdoor Weather Bricklet - iobroker


Recommended Posts

Posted

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

 

Posted

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.

Posted

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
Posted

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},
    }
}

 

Posted

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)

Posted

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

 

Posted

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

Posted

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...