NEWS
[gelöst] Fehler/Warnung bei CIE-Farbwert
-
Ein freundliches Hallo an Alle,
ich bin ganz neu in der Materie und habe mir für meine Nachtbeleuchtung folgendes Blockly-Script geschrieben:
Das Script läuft soweit, allerdings erscheint in den Protokollen folgende Warnung: "You are assigning a string to the state "deconz.0.Lights.1.xy" which expects a array. Please fix your code to use a array or change the state type to string. This warning might become an error in future versions."
Jetzt meine Frage: Wie kann ich das Textfeld in ein Array bzw. einen String ändern? Es handelt sich bei der Lampe um eine IKEA-Tradfri Farblampe, die als Farbwert die CIS-Tabelle benutzt. Der Datenpunkt liefert Farbwerte in Form von [x.y,x.y]
Danke für eure Hilfe!
-
@toms71 Probier bitte mal so:
-
@ahnungsbefreit Danke für die schnelle Antwort
Leider jetzt folgende Warnung: {"address":"/lights/1/state","description":"invalid value, , for parameter, xy","type":7}
-
@toms71 Zeig mal bitte den "raw"-Inhalt des Datenpunkts und zeig bitte noch einmal, wie das gesamte Script jetzt aussieht.
-
@ahnungsbefreitder Datenpunkt sieht folgendermaßen aus:
[0.54","0.45] (weiß sonst nicht, wie ich den "raw-Inhalt" hier her kopieren soll), sorry...)
und hier nochmal das Script, wie es jetzt aussieht:
Danke!
-
@toms71 said in Fehler/Warnung bei CIS-Farbwert:
weiß sonst nicht, wie ich den "raw-Inhalt" hier her kopieren soll),
Auf Objekte, den Datenpunkt auswählen, ganz rechts auf den Stift, dann den Inhalt von "Objektdaten" bitte in Code Tags (das </> oberhalb der Box, in der Du schreibst) posten.
-
@ahnungsbefreit Wow! Wieder was gelernt...
{ "type": "state", "common": { "name": "Color light 1 xy", "type": "array", "role": "color.CIE", "read": true, "write": true, "def": [ 0.1, 0.1 ] }, "native": {}, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1643703547080, "_id": "deconz.0.Lights.1.xy", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@toms71 ok, die Inhalte des Arrays müssen also wirklich Zahlen sein, keine Strings. Deshalb bitte mal so probieren:
-
@ahnungsbefreit Super, vielen Dank! Es läuft ohne Warnungen...
Ich gehe davon aus, dass folgende Meldung:
Read-only state "deconz.0.Sensors.4.presence" has been written without ack-flag with value "true"
davon kommt, dass ich den Bewegungsmelder in den Objekten "händisch" auf "true" gesetzt habe. Ich bin gerade nicht zu Hause, nur per vpn mit dem Server verbunden und kann nicht vor den Bewegungsmelder laufen.
Danke!
-
@toms71 Ja, genau. Dann markier bitte noch den Thread (durch Editieren der Überschrift in Deinem ersten Post ganz oben) als "[Gelöst]".
-
@ahnungsbefreit Hallo, aufgrund eines ähnlichen Falls habe ich mich hier eingelesen, habe deinen Lösungsvorschlag übernommen. Die Farbwerte ändern sich, leider bekomme ich noch Fehlermeldungen. Vielleicht kannst du einen Blick auf den Datenpunkt werfen. Ich freue mich auf deine Rückmeldung!
javascript.0
2023-07-14 14:31:04.440 warn You are assigning a array to the state "alias.0.Beleuchtung.PV-Ueberschuss.XY" which expects a string. Please fix your code to use a string or change the state type to array. This warning might become an error in future versions.{ "type": "state", "common": { "name": "PV Erzeugung xy", "type": "array", "role": "color.CIE", "read": true, "write": true, "def": "[0.1,0.1]" }, "native": {}, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1689228110451, "_id": "deconz.0.Lights.24.xy", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@flkontakt Wenn da wirklich ein String erwartet wird, sollte es so wie im Script ganz am Anfang dieses Threads funktionieren: