Leider hast Du das JSON Objekt nur unvollständig gepostet.
Je nach Art der Daten gibt es mehrere Wege, wie Du die Daten verarbeiten kannst. Grundsätzlich kannst Du einen String Channel definieren und diesem mit mehreren Items verlinken. Innerhalb der Links kannst Du dann als Profile JSONPATH auswählen und den passenden Path als Parameter eintragen.
Vorteil: Du brauchst nur einen Channel.
Nachteile: Du kannst nur nackte Werte übernehmen, UoM steht nicht zur Verfügung. Wird das JSON Dynamisch erstellt (wobei abgefragte Werte nur in einem Teil der Payloads überhaupt vorkommen) bekommst Du Warnmeldungen im Log.
Der "bessere" Weg führt über einzelne Channel pro Datenpunkt. Nehmen wir an, Du hast eine Temperatur und eine Luftfeuchte als Datenpunkt, dann legst Du (gerne parallel zum bereits vorhandenen String Channel) zwei Number Channel an.
Als stateTopic gibst Du das identische Topic vom String Channel an.
Den Parameter
unit (den gibt es bei Number Channels) setzt Du für die Luftfeuchte auf
% und für die Temperatur (mutmaßlich) auf
°C (gegeben, dass die Temperatur als Wert, z.B.
23.4 angeliefert wird).
Unter Incoming Value Transformations (Show Advanced anhaken) trägst Du nun
JSONPATH:$.pfad.zu.dem.wert ein.
Zum Beispiel Dein Schnipsel (so ergänzt, dass es ein gültiges JSON Objekt ist):
Code: Alles auswählen
{
"end_device_ids": {
"device_id": "eui-7066e1fffe001018",
"application_ids": {
"application_id": "pvloris01"
},
"dev_eui":"7066E1FFFE001018"
}
}
Du möchtest die Application ID haben:
JSONPATH:$.end_device_ids.application_ids.application_id (was dann
pvloris01 als Ausgabe liefert)
Ich nutze VS Code mit installiertem Plugin
JSON Path Status Bar, zum einen kann VS Code gültiges JSON automatisch lesefreundlich formatieren (siehe Beispiel), zum anderen reicht dann ein Klick auf den konkreten Wert, um in der Fußzeile von VS Code den JSON Pfad angezeigt zu bekommen, den man anschließend per Klick auf den Pfad auch direkt in die Zwischenablage übernehmen kann.
Die beiden Items definierst Du dann als Number:Temperature und Number:Dimensionless. Bist Du mit OH4 unterwegs, setzt Du in den beiden Items das Feld
unit passend (d.h. eine für den QuantityType passende Einheit, welche konkret ist aber egal, z.B. könntest Du
K für Kelvin eintragen

dann wird der Wert intern in Kelvin gespeichert. Die Anzeige des Wertes stellst Du über die Metadaten des Items ein (State Description -> pattern), dort kannst Du dann z.B.
%.0f°F eintragen, wenn Du den Wert in Grad Fahrenheit ausgegeben bekommen möchtest, oder Du trägst dort
%.0f d°C ein, weil Du die Temperatur in deziGrad Celsius haben möchtest

Oder Du schreibst einfach
%.1f °C um GRad Celsius (mit einer Nachkommastelle) angezeigt zu bekommen...
Unter OH3 gibt es das Feld unit nicht (im Number:QuantityType Item), der im Item gehaltene Wert wird ausschließlich über das Pattern gesteuert (was dazu führt, dass Du Wertesprünge hast, wenn Du das Pattern anpasst - das kann man dann z.B. in Charts sehen)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet