Hi zusammen,
ich versuche mich darin, dass ich mich bei der Entwicklung des Shelly Adapters beteilige. Das Shelly Plus Addon hab ich bereits erfolgreich implementieren können, nun hänge ich jedoch an einer Erweiterung des Plug S Plus.
Hier möchte ich folgenden Issue angehen:
https://github.com/iobroker-community-adapters/ioBroker.shelly/issues/836
Im Prinzip bin ich mit dem ganzen Thema bereits zu 80% fertig. Ich kann alle Infos auslesen und auch einige Werte schreiben, solange die sich im JSON nicht unter "switch:0" befinden. Beim lesen musste ich hier auch schon den Doppelpunkt escapen, so dass ich an den Wert ran gekommen bin:
Nachfolgend mal die Ausgabe von "http://192.168.xxx.xxx/rpc/PLUGS_UI.GetConfig"
{"leds":{"mode":"off","colors":{"switch:0":{"on":{"rgb":[100.000,100.000,100.000],"brightness":48.000},"off":{"rgb":[1.176,100.000,12.157],"brightness":48.000}},"power":{"brightness":97.000}},"night_mode":{"enable":false,"brightness":50.000,"active_between":["00:15","01:00"]}},"controls":{"switch:0":{"in_mode":"momentary"}}}
Anbei mal ein Codeschnipsel mit meinen Problem. In Zeile 4 lese ich den Wert vom Shelly aus und dieser wird auch korrekt in den iobroker Objekten angelegt und aktualisiert. Nur Ändern kann ich den Wert nicht. Problem ist auch hier der Doppelpunkt bei "switch:0"
Kann mir hier jemand unter die Arme greifen und mir einen Tipp geben, was ich in Zeile 11 anpassen muss, damit ich die Werte auch schreiben kann?
'Leds.rgb_on_brightness': {
mqtt: {
http_publish: '/rpc/PLUGS_UI.GetConfig',
http_publish_funct: value => value ? JSON.parse(value).leds.colors['switch:0'].on.brightness : undefined,
mqtt_cmd: '<mqttprefix>/rpc',
mqtt_cmd_funct: (value, self) => {
return JSON.stringify({
id: self.getNextMsgId(),
src: 'iobroker',
method: 'PLUGS_UI.SetConfig',
params: { config: { leds:{colors:{power:{'switch:0':{on:{brightness:value} } } } } } },
});
},
},
common: {
name: 'On color: Brightness',
type: 'number',
role: 'value',
read: true,
write: true,
min: 0,
max: 100,
},
},
Häng hier bereits seit einigen Stunden fest und komme hier leider nicht weiter, daher der Versuch hier mal nach Hilfe zu Fragen!