Geflasht oder ungeflasht ...
Moderator: seppy
udo1toni
Beiträge: 14780 Registriert: 11. Apr 2018 18:05
Answers: 230
Wohnort: Darmstadt
Beitrag
von udo1toni » 15. Sep 2024 16:18
Die eckigen Klammern um das transformationPattern sind falsch. Korrekt:
Code: Alles auswählen
- id: fw_update
channelTypeUID: mqtt:string
label: Firmware Update
configuration:
stateTopic: shellyplusht_wohnzimmer/status/sys
transformationPattern: "REGEX:(.*stable.*)∩JSONPATH:$.available_updates.stable.version"
Mit dem gezeigten JSON sollte dann allerdings ein leerer String zurück kommen, da dort das Wort stable gar nicht vorhanden ist.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet
EmptySoft
Beiträge: 223 Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:
Beitrag
von EmptySoft » 16. Sep 2024 13:24
Moadin hat geschrieben: ↑ 15. Sep 2024 14:30
In Openhab habe ich folgendes eingetragen als channel:
Code: Alles auswählen
- id: fw_update
channelTypeUID: mqtt:string
label: Firmware Update
configuration:
stateTopic: shellyplusht_wohnzimmer/status/sys
transformationPattern: "[REGEX:(.*stable.*)∩JSONPATH:$.available_updates.stable.version]"
Benötigt man das REGEX wirklich? sollte nicht
Code: Alles auswählen
transformationPattern="JSONPATH:$.available_updates.stable.version"
reichen?
BYe
Harald
udo1toni
Beiträge: 14780 Registriert: 11. Apr 2018 18:05
Answers: 230
Wohnort: Darmstadt
Beitrag
von udo1toni » 16. Sep 2024 16:37
Nein, in diesem Fall nicht. Das Problem ist hier, dass der Zweig nicht unbedingt im JSON vorhanden ist. Ohne REGEX kommt dann eine nullPointerException. Mit REGEX bekommt JSONPATH als Éingangswert aber einen leeren String (weil das Wort stable nicht vorhanden ist und damit REGEX nicht matcht). JSONPATH liefert dann ebenfalls einen leeren String zurück und es gibt keine Exception.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet