NEWS
[gelöst] Falsche Werte bei Steuerung der Farbtemperatur
-
Hallo,
ich versuche ein Gerät mit Farbe und Farbtemperatur über den Cloud-Adapter via Alexa zu steuern (baue gerade einen eigenen Adapter).
Ich habe die folgenden Datenpunkte angelegt und im Cloud-Adapter bekannt gemacht (Auszug):
- state
```` "type": "state", "common": { "name": "Power State", "type": "boolean", "def": false, "read": true, "write": true, "role": "switch", "desc": "Switch on/off" } ````
-
brightness
"type": "state" "common": { "name": "Brightness level", "type": "number", "unit": "%", "def": 100, "min": 0, "max": 100, "read": true, "write": true, "role": "level.dimmer", "desc": "Brightness level in %" }
-
hue
"type": "state", "common": { "name": "Hue value", "type": "number", "def": 100, "min": 0, "max": 360, "read": true, "write": true, "role": "level.color.hue", "desc": "Hue value" }
-
saturation
"type": "state", "common": { "name": "Saturation value", "type": "number", "def": 100, "min": 0, "max": 100, "read": true, "write": true, "role": "level.color.saturation", "desc": "Saturation value" }
-
colorTemp
"type": "state", "common": { "name": "Color Temperature", "type": "number", "def": 0, "min": 4000, "max": 6500, "read": true, "write": true, "role": "level.color.temperature", "desc": "Color Temperature" }
Die Steuerung von An/Aus, Helligkeit und auch Farbe funktioniert einwandfrei.
Allerdings die Farbtemperatur nicht. Ich kann den Befehl via Alexa geben und der wird auch ausgeführt, allerdings ist der Wert, der da von Alexa über den Cloud-Adapter kommt merkwürdig.
Nach der Alexa-Dev-Doku (https://developer.amazon.com/de/docs/de … oller.html) entsprechen die Farbtemperaturen wie weiß, warmweiß etc. bestimmten Farbtemperaturen in Kelvin, wie man es eigentlich kennt.
So sollte Weiß den Wert 4000 und Warmweiß den Wert 2220 haben.
Wenn ich folgende Farbtemperaturen über Alexa setze, kommen die aber so im Datenpunkt an:
-
weiß: 250
-
warmweiß: 455
-
tageslichtweiß: 182
Wo kommen diese Werte her? Mein Device kann damit natürlich nix anfangen weil es nur Werte in Kelvin akzeptiert.
-
Die werte kommen von Alexa selber der ioBroker Cloud bouwt da nichts um oder Beinflusst den Wert in der Kommunikation
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Ja, das habe ich mir schon gedacht.
Aber ist das normal, dass die Werte so kommen? Denn in der Alexa-Doku steht das ja eindeutig anders.
Ich hab zwar kein Philips Hue, aber ich denke mal,die will die Farbtemperatur auch in Kelvin haben und könnte mit diesen Werten nichts anfangen.
Daher würde mich interessieren, wie da die Werte kommen. Dann müsste es da ja auch Probleme geben.
-
Hmm da kan ich dir leider nicht weiterhelfen.
Könnte eventuell damit zu tun haben wie die Werte als smartdevice in dem Cloud-Adapter konfiguriert sind ?
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Ja irgendwie sowas in der Richtung muss es sein.
Dort sieht es gerade so aus:
-
Offensichtlich macht der Cloud-Adapter in ioBroker doch mehr als gedacht. Wenn ich die Log-Ausgabe im Cloud-Adapter auf Debug stelle, sehe ich was ankommt:
2018-04-21 13:06:39.328 - [34mdebug[39m: cloud.0 1524308799326 ALEXA: {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"SetColorTemperatureRequest","payloadVersion":"2","messageId":"3d29e5d9-c817-4d58-9480-eb46f558fbc4"},"payload":{"accessToken":"xxxxxxxxxxxxxxxxxxxxxxxxxxxx","appliance":{"applianceId":"Test","additionalApplianceDetails":{"group":"true"}},"colorTemperature":{"value":4000}},"customContext":{"callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/ioBrokerHomeSkill","logStreamName":"2018/04/21/[$LATEST]e31edc32c79540fb93bc7e5cadc6bd19","functionName":"ioBrokerHomeSkill","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":"107da803-4554-11e8-86c8-3b2fc5ea4793","awsRequestId":"107da803-4554-11e8-86c8-3b2fc5ea4793","invokedFunctionArn":"arn:aws:lambda:eu-west-1:085607567588:function:ioBrokerHomeSkill"}}
Dort ist der korrekte Wert "colorTemperature":{"value":4000}} enthalten. Fragt sich sich jetzt nur warum das so verbogen wird.
-
Dass muss mit den Einstellungen der smartdevice zu tun haben, damit Mal rumgespielt ?
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Ich habs jetzt selbst gefunden, indem ich in den Cloud-Adpater-Code geschaut habe.
Was wichtiges fehlt im Datenpunkt "colorTemp": die Einheit.
Der Cloud-Adapter stellt die Farbtemperatur je nach Einheit anders ein. Da mein DP gar keine Einheit hat, wird dort "mired" verwendet. Ich musste den DP auf "K" (Kelvin) stellen und schon funktioniert es einwandfrei.
-
Genau sowas suche ich. Wo und wie muss ich das genau machen?
-
@zuldero du musst bei dem colortemperatur objekt im Raw-Mode den Wert "unit" mit dem Wert, den du gerne hättest einfügen, also z.B. eine Zeile "unit": "K" irgendwo um die Zeile "role": "level.color.temperature". Dabei auf die Kommas achten.