Jump to content

Meßwertreihenfolge des Outdoor Weather Bricklet mit MQTT Binding variiert


Jambalaya

Recommended Posts

Hallo,

ich besitze eine WS-6147 Außen-Wetterstation und mehrere TH-6148 Sensoren, dazu ein Outdoor Weather Bricklet und ein Master Brick 2.1. Angeschlossen ist das ganze an einem Raspberry PI mit MQTT Binding. Das funktioniert soweit. Was mich allerdings stört ist, daß die Reihgenfolge der Meßwerte variiert also z.B. mal so ist:

{"identifier": 45, "battery_low": false, "rain": 0, "wind_speed": 0, "humidity": 50, "wind_direction": "s", "temperature": 203, "gust_speed": 0}

{"identifier": 27, "temperature": 194, "humidity": 53}

und wenn ich den Befehl:

python3 /home/pi/tf/tinkerforge_mqtt --broker-host localhost --init-file /home/pi/tf/outdoor_weather_config.txt

abbreche und neu starte dann z.B.:

{"humidity": 49, "identifier": 45, "battery_low": false, "wind_speed": 0, "wind_direction": "s", "temperature": 206, "rain": 0, "gust_speed": 0}

{"humidity": 52, "temperature": 206, "identifier": 59}

Daher meine Frage: Wie kann ich erreichen, daß die Werte immer in der gleichen Reihenfolge kommen und wie kann ich diese festlegen?

Die outdoor_weather_config.txt hat folgenden Inhalt:

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

Link to comment
Share on other sites

Hallo!

Wie verarbeitest Du die Nachrichten denn? Auch in C, Java, ... könntest Du doch flexibel die Position der Größe suchen, die dich interessiert. 

Ich nehme NodeRED / Javascript. Da spielt die konkrete Reihenfolge eine absolut untergeordnete Rolle. MQTT und Reaktion auf eingehende Nachrichten ist ... einfach Klasse!

Gruß, Uwe

Link to comment
Share on other sites

vor 23 Stunden schrieb duaw:

Hallo!

Wie verarbeitest Du die Nachrichten denn? Auch in C, Java, ... könntest Du doch flexibel die Position der Größe suchen, die dich interessiert. 

Ich nehme NodeRED / Javascript. Da spielt die konkrete Reihenfolge eine absolut untergeordnete Rolle. MQTT und Reaktion auf eingehende Nachrichten ist ... einfach Klasse!

Gruß, Uwe

Hallo Uwe,

ich verarbeite die Nachrichten mittels mosquitto_sub in einem Shellscript und da wäre es natürlich einfacher wenn diese immer die selbe Struktur hätten. Aber egal, ich parse jetzt die Nachrichten und da spielt es keine Rolle mehr in welcher Reihenfolge die enthaltenen Daten gesendet werden. Die Sensoren sollen eine alte ELV Wetterstation ablösen und da setze ich, um den Umstellungsaufwand gering zu halten, auf deren Datenformat auf auch wenn das ingesamt gesehen vielleicht etwas unsinnig erscheint.

 

Link to comment
Share on other sites

Moin,

Über die Reihenfolge hast du, wenn du Callbacks benutzt, keine Kontrolle, da die Bricklets asynchron zueinander laufen. Du kannst aber über das Topic gehen: Die Callbacks tauchen ja auf tinkerforge/callback/outdoor_weather_bricklet/SvZ/station_data bzw. tinkerforge/callback/outdoor_weather_bricklet/SvZ/sensor_data auf. D.h. du könntest mit jeweils einem Shellscript eins der Topics subscriben.

Link to comment
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.

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