ich bräuchte mal Eure Hilfe bei folgender Herausforderung:
Ausgangsituation:
- ich habe einen Sensor, der seine Daten per LORA WAN an meinen MQTT-Broker schickt
- dieser Sensor liefert zu verschiedenen Zeiten einen Payload, der sich je nach MessageType durch den jeweiligen fPort unterscheidet
z.B. Messdaten mit fPort 16, Statusmeldungen mit fPort 48 usw.
- je nach Message Type haben diese payloads auch eine andere Datenstruktur
- ich habe zwei Things angelegt, die die unterschiedliche Struktur abbilden, diese werden auch sauber bestückt
Problem:
- da ich nur mit dem einfachen JSONPATH analysiere, mehr bringe ich derzeit als bekennender Software-Legastheniker noch nicht hin, und das topic ja identisch ist, läuft bei einem event immer die eine oder die andere Auswertung auf Fehler.
Gibt es eine Möglichkeit ohne größeren Aufwand auch eine einfach JSON Path Abfrage so zu gestalten, dass sie mir die beiden Message Types auseinander hält?
die relevanten Code Schnipsel wie folgt(fPort und object befinden sich auf derselben Strukturebene) :
der Payload für die StatusMessage
Code: Alles auswählen
"fCnt":51,"fPort":48,"data":"MAAAAgEJNgBIAGMBaAYAKA6q","object":{"Bat":99,"Level":40,"Period":6,"Temp":14}}
Code: Alles auswählen
"fCnt":52,"fPort":16,"data":"EAAAAAAoDqoAJxghAIgXogCIF6I=","object":{"L1":40,"L2":39,"L3":136,"L4":136,"Temp1":14,"Temp2":24,"Temp3":23,"Temp4":23}}'
aus der Messung (fPort16):
Code: Alles auswählen
JSONPATH:$.object.Temp1
aus dem Status (fPort 48):
Code: Alles auswählen
JSONPATH:$.object.Level
danke und Gruß
Detlef