ich versuche bei einem Shelly in Openhab anzuzeigen, ob ein stable Firmware-Update zur Verfügung steht. Bei einem HT Shelly geht das sehr gut, weil dieser announce dies zur Verfügung stellt ("new_fw": false). Ein Shelly 1PM macht das nicht, dort steht im status/sys "available_updates": { ...}
Jetzt möchte ich das gerne in Openhab darstellen, dass wenn ein Update zur Verfügung steht, er mir wie bei den HT-Shelly anzeigt "ON", und wenn keines zur Verfügung steht "OFF".
Ich habe folgendes versucht:
HT Shelly (das funktioniert):
Code: Alles auswählen
UID: mqtt:topic:mosquitto:ht_aussen
label: Shelly HT Aussen
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
location: Balkon
channels:
- id: fw_update
channelTypeUID: mqtt:switch
label: Firmware Update
configuration:
stateTopic: shellies/shellyht-aussen/announce
transformationPattern: JSONPATH:$.new_fw
off: "false"
on: "true"
Wie mache ich das bei einem Shelly 1PM?
Code: Alles auswählen
UID: mqtt:topic:mosquitto:steckdose_balkon_seite
label: Steckdose Balkon seite
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
location: Balkon
channels:
- id: fw_update
channelTypeUID: mqtt:string
label: Firmware Update
configuration:
stateTopic: shellyplus1pm-aussensteckdose/status/sys
transformationPattern: JSONPATH:$.available_updates.stable.version
Dies liefert das MQTT (den Code habe ich von der Shelly-Dokumentation, sieht bei mir aber genau gleich aus):
Code: Alles auswählen
"sys": {
"mac": "A8032ABE54DC",
"restart_required": false,
"time": "16:41",
"unixtime": 1675262494,
"uptime": 571,
"ram_size": 234820,
"ram_free": 162244,
"fs_size": 458752,
"fs_free": 110592,
"cfg_rev": 7,
"kvs_rev": 1,
"schedule_rev": 0,
"webhook_rev": 0,
"available_updates": {
"beta": {
"version": "0.13.0-beta1"
},
"stable": {
"version": "0.12.0"
}
}
},