Hallo zusammen,
Ich habe an einem GPIO 2 DS18B20 hängen, die Funktion ist erst mal da ich bekomme im MQTT
20:30:43.869 MQT: Oxilife/tele/SENSOR = {"Time":"2022-02-15T20:30:43","DS18B20-1":{"Id":"01211201713A","Temperature":5.4},"DS18B20-2":{"Id":"012111E9465D","Temperature":3.9}
Was ich gelesen habe ?! ist die Zurordnung DS18B20-1 und -2 zu den Ids nicht zwingend fix ..
Wie bekomme ich nun die Temperatur zu Id1 und zu Id2 immer in je ein eindeutiges Thing bzw. Item. Eine Filterung mit [ stateTopic="Oxilife/tele/SENSOR", transformationPattern="JSONPATH:$.DS18B20-1.Temperature"] geht ja nur auf die -1 bzw. -2 aber nicht auf die ID ...
Wer kann mir hier helfen, habe auch bei Dr. Google nix gefunden ...
Danke und Grüße
mehrere DS18B20 an einem GPIO - Zurodnung
-
- Beiträge: 3
- Registriert: 18. Jul 2020 17:27
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: mehrere DS18B20 an einem GPIO - Zurodnung
Der Trick ist, einen Filter zu nutzen. Erst mal das JSON Objekt, etwas schöner formatiert:
Wir wollen die Temperatur, aber zugeordnet zu einer Id.
Das Statement sucht diejenigen Knoten, bei denen im Tag Id die jeweilige ID steht, nutzt diese Knoten und liefert jeweils die Werte der Temperatur Tags. Da die ID eindeutig ist, kommt nur jeweils ein Wert zurück.
Code: Alles auswählen
{
"Time": "2022-02-15T20:30:43",
"DS18B20-1": {
"Id": "01211201713A",
"Temperature": 5.4
},
"DS18B20-2": {
"Id": "012111E9465D",
"Temperature": 3.9
}
Code: Alles auswählen
JSONPATH:$.[?(@.Id=='01211201713A')].Temperature
Code: Alles auswählen
JSONPATH:$.[?(@.Id=='012111E9465D')].Temperature
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 3
- Registriert: 18. Jul 2020 17:27
Re: mehrere DS18B20 an einem GPIO - Zurodnung
Habe in einem anderen Beitrag wo du auch beigetragen hast gesehen dass beim JSONpaTH:$.. zwei Punkte hin müssen - dann funktioniert es
JSONPATH:$..[?(@.Id=='012111E9465D')].Temperature
Danke !
JSONPATH:$..[?(@.Id=='012111E9465D')].Temperature
Danke !
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: mehrere DS18B20 an einem GPIO - Zurodnung
eigentlich sollte der zweite Punkt nicht notwendig sein, aber sei's drum... eventuell irgendeine Änderung mit der aktuellen Version...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet