NEWS
Dimmer Synchronisation gibt Fehler aus
-
Hallo zusammen,
ich habe ein Skript, dass die Helligkeit einer Yeelight an eine deconz Gruppe geben soll.
Das funktiontioniert auch soweit, nur im Log bekomme ich folgende Warnung:javascript.0 2020-10-08 13:42:46.259 warn (879) at processImmediate (internal/timers.js:456:21) javascript.0 2020-10-08 13:42:46.259 warn (879) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-10-08 13:42:46.259 warn (879) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-10-08 13:42:46.259 warn (879) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-10-08 13:42:46.259 warn (879) at Object.<anonymous> (script.js.common.Licht.KUE_sync:14:3) javascript.0 2020-10-08 13:42:46.258 warn (879) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20) javascript.0 2020-10-08 13:42:46.256 warn (879) You are assigning a string to the state "deconz.0.Groups.3.level" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an e
Skript sieht wie folgt aus:
on({id: 'yeelight-2.0.KUE_ceiling10-0x00000000065b8a48.control.active_bright', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("deconz.0.Groups.3.level"/*Küche level*/, getState("yeelight-2.0.KUE_ceiling10-0x00000000065b8a48.control.active_bright").val); });
Wie kann ich das am prakmatischsten lösen?
Dankbar für Hinweise,
Philipp -
Am einfachsten setzt du ein
dazu.Und wenn du es richtig machen willst stellst du noch sicher das der numerische Wert der dabei raus kommt auch zwischen 0 und 100 ist.
-
@Asgothian
genau das hatte ich gesucht. So einfach. Dank Dir!Die Wert-zwischen-0-und-100-Validierung ergibt Sinn. Allerdings weiß ich ad hoc noch nicht, wie ich das bauen soll. #erstesscript
-
@Phil-Ipp
Liegen denn die Werte die vom Yeelight kommen zwischen 0 und 100 oder gibt der andere Werte heraus ?Wenn die schon richtig liegen reicht es,
- eine Variable "Yeelight" zu definieren
- Dieser den numerischen (toNumber) wert des Objektes active_bright zuzuweisen
- dann ein Falls block: Falls "Yeelight" < 0 mache Setze "Yeelight" auf 0
- und noch einen Falls Block: Falls "Yeelight" > 100 mache Setze "Yeelight" auf 100
Wenn das nicht so ist, dann brauchst du den minimalen und maximalen Wert der bei Yeelight auftreten kann (hier mal yMin und yMax genannt)
Zwischen 2. und 3. kommt dann noch ein
Setze "Yeelight" auf ("Yeelight" - "yMin") / ("yMin-yMax") * 100Das wars
In Blockly musst du dir das aktuell selber bauen - ich bin unterwegs
A.
-
danke für die Denkanstöße, das probier ich gern selbst aus! Macht ja auch Spaß ein bisschen selbst zu denken, und nicht alles fertig abzuschreiben ,)
Melde mich dann lieber, falls es nicht klappt.Soweit ich das sehe, sind die Werte aber eh zwischen 0 und 100.
Ist gerade reines Interesse, weil Du es erwähnt hattest.