LoRaWAN Sensor - JSON Format
Verfasst: 27. Dez 2024 23:05
Hallo an die Runde,
ich habe mir kürzlich einen LoRaWAN Multisensor geholt, mit dem ich Zustandsbedingungen (Temperatur, Luftfeuchtigkeit, Bewegung (0 oder 1), Batteriespannung des Sensors) im Keller überwachen möchte (kein WLAN). Über The Things Network bekomme ich via MQTT Schnittstelle bereits ein JSON geliefert. Mit dem JSONPATH Profile und dem JSONPath Ausdruck erhalte ich grundsätzlich die gewünschten Werte
Frage 1:
Wenn z.B. der Bewegungssensor von 0 auf 1 schaltet (Bewegung erkannt), wird vom Sensor ein JSON ohne aller weiteren gewünschten Werte übermittelt. Es wird also nur jener Wert im JSON gesendet, der sich ändert. Dies führt dazu, dass alle anderen Items nicht transformiert werden können, da ja im JSON z.B. kein Temperatur Wert steckt => Im Item habe ich nun wieder den gesamten JSON Ausdruck. Gewünscht ist einfach der zuletzt übermittelte Temperaturwert. Wenn im JSON kein Temperatur-Wert steckt, soll sich das Item nicht ändern. Kann man das irgendwie im Channel einstellen oder benötige ich z.B. eine Rule, um mein gewünschtes Vorhaben umzusetzen? Frage 2:
Alle Items habe ich als String eingebunden. Ich würde jedoch gerne alle Messwerte persistieren, was ja mit String logischerweise nicht funktioniert. Muss ich nun die Items z.B. mittels Rule auf einen numerischen Wert umwandeln, der persistiert werden kann?
Danke für Euren Input zu meiner Herausforderung
Grüße
neuling10
ich habe mir kürzlich einen LoRaWAN Multisensor geholt, mit dem ich Zustandsbedingungen (Temperatur, Luftfeuchtigkeit, Bewegung (0 oder 1), Batteriespannung des Sensors) im Keller überwachen möchte (kein WLAN). Über The Things Network bekomme ich via MQTT Schnittstelle bereits ein JSON geliefert. Mit dem JSONPATH Profile und dem JSONPath Ausdruck erhalte ich grundsätzlich die gewünschten Werte

Frage 1:
Wenn z.B. der Bewegungssensor von 0 auf 1 schaltet (Bewegung erkannt), wird vom Sensor ein JSON ohne aller weiteren gewünschten Werte übermittelt. Es wird also nur jener Wert im JSON gesendet, der sich ändert. Dies führt dazu, dass alle anderen Items nicht transformiert werden können, da ja im JSON z.B. kein Temperatur Wert steckt => Im Item habe ich nun wieder den gesamten JSON Ausdruck. Gewünscht ist einfach der zuletzt übermittelte Temperaturwert. Wenn im JSON kein Temperatur-Wert steckt, soll sich das Item nicht ändern. Kann man das irgendwie im Channel einstellen oder benötige ich z.B. eine Rule, um mein gewünschtes Vorhaben umzusetzen? Frage 2:
Alle Items habe ich als String eingebunden. Ich würde jedoch gerne alle Messwerte persistieren, was ja mit String logischerweise nicht funktioniert. Muss ich nun die Items z.B. mittels Rule auf einen numerischen Wert umwandeln, der persistiert werden kann?
Danke für Euren Input zu meiner Herausforderung

Grüße
neuling10