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 zu diesem Kommentar
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 zu diesem Kommentar
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 zu diesem Kommentar
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 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...