NEWS
Lichterkette in Node-Red + Alexa
-
@mickym sei mir nicht böse...die deconz dinger sind mir echt zu kompliziert.
Guck mal ...das alt bekannte:
Alexa Ausgabe nach Kette gelb
{"powerState":"ON","brightness":100,"colorTemperatureInKelvin":2200,"lightMode":"hsb","color":{"hue":60,"saturation":1,"brightness":1},"source":"alexa","directive":"SetColor","name":"Kette","type":"COLOR_CHANGING_LIGHT_BULB","color_rgb":[255,255,0],"color_hex":"#FFFF00","color_cmyk":[0,0,100,0],"color_lab":[97,-22,94],"color_xyz":[77,93,14],"color_xy":[0.44416280138233527,0.5165661629456695],"rawDirective":{"directive":{"header":{"namespace":"Alexa.ColorController","name":"SetColor","correlationToken":"CJzZXNzaW9uSWQiOiJkMDAwMWViNi1iNGM3LTQ4ZTEtYWNhMi05NzExNDY4Yjk4NmIifQ=="},"endpoint":{"endpointId":"vshd-e8a33a65b5e5a4da"},"payload":{"color":{"hue":60,"saturation":1,"brightness":1}}}}}
nach Kette grün
{"powerState":"ON","brightness":100,"colorTemperatureInKelvin":2200,"lightMode":"hsb","color":{"hue":120,"saturation":1,"brightness":1},"source":"alexa","directive":"SetColor","name":"Kette","type":"COLOR_CHANGING_LIGHT_BULB","color_rgb":[0,255,0],"color_hex":"#00FF00","color_cmyk":[100,0,100,0],"color_lab":[88,-86,83],"color_xyz":[36,72,12],"color_xy":[0.17241614314906034,0.7467966085220437],"rawDirective":{"directive":{"header":{"namespace":"Alexa.ColorController","name":"SetColor","correlationToken":"jUwOTBkNWM1LTk5ZmYtNGIzMS1iMjJiLTliMzc2NjVkNjgzMiIsInVOi8vZC1hY3JzLWV1LXAtN2MyLTU0MWFlZjg1LmV1LXdlc3QtMS5hbWF6b24uY29tOjk0NDQiLCJzZXNzaW9uSWQiOiJmN2I0ZmU4Mi02YTVjLTRjNDMtYTQ4YS01YzUyMjgwMmY4YzYifQ=="},"endpoint":{"endpointId":"vshd-e8a33a65b5e5a4da"},"payload":{"color":{"hue":120,"saturation":1,"brightness":1}}}}}
nur was kommt in die msg payloads?
Ist mir irgendwie sympathischer -
@marko1974 Na dann musst Du doch nur mit verschiedenen iobroker.Out Nodes die Dinger schalten. Mach mal für jeden Datenpunkt im iob eine iobroker-Out Node. Die gewünschte Eigenschaft kopierst Du den Pfad aus dem Objekt und setzt die payload auf diese Eigenschaft. Du musst aber doch wissen, welche Datenpunkte im iob du ansprechen musst und mit welchen Werten.
Probiere es halt erst mal im Admin aus.
Wenn Du den color_hex Wert brauchst, dann kopiere Dir den Pfad und setze die payload auf diese Eigenschaft.
-
@mickym hab jetzt payload.brightness, payload.color_hex und payload.powerState genommen
-
@marko1974 Na und die musst halt in die entsprechenden Datenpunkte im iob füttern
-
Da ist nun wohl was falsch
-
@marko1974 Ich hab Dir doch das gepostet - schau Dir den screenshot der ChangeNode genau an. Du musst das msg Objekt referenzieren.
und keinen String da rein schreiben.
-
@mickym ich hab das mit dem msg aus flüchtigkeit übersehen.....
jetzt hab ich das so...und die Kommendos von alexa gehen auch an den iobroker out.....aber es passiert nichts ...kette bleibt wie sie ist
-
@marko1974 Hast Du die auch als command geschickt die Werte? Hast Du einfach im Admin geschaut, ob die gleichen Werte funktionieren, wenn Du sie direkt eingibst`?
-
@mickym also OFF funktioniert nicht....das muss true oder false sein.
Wenn das funktioniert kann ich den rest testen -
@marko1974 Dann musst Du halt mit einer Change Node OFF in false / Boolean und ON in true /Boolean ändern.
-
@mickym
So? -
@marko1974 Nein im ersten suchst Du einen String und keine msg. Unten hast du es ja richtig - also eins von beiden muss ja falsch sein - willst Du mich auf die Probe stellen?
-
@mickym schon gemerkt
An / Aus funktioniert.Nun xy...da wird ein 10 stelliger Wert hinter dem Komma gesendet. Der müsste auf 3 Stellen hinter dem Komma verkürzt werden.
Level ist falsch....die heissen aber beide Level.brightness....einer in % und einer als number - 265
-
@marko1974 sagte in Lichterkette in Node-Red + Alexa:
Level ist falsch....die heissen aber beide Level.brightness....einer in % und einer als number - 265
Wie gesagt - dass musst Du ausprobieren, was funktioniert - ich hab den Adapter nicht. Bist Du sicher mit 265 oder ist das nicht 255. Ggf. musst Du halt mit einer range Node skalieren oder Du nimmst % mit 0-100.
Das Runden geht mit JSONATA und der round Funktion in einer ChangeNode.
-
@mickym Ich hab jetzt einfach nur den iob-out auf das andere objekt geändert....das funktioniert!
Bleibt nur noch dieses "runden" ....das finde ich nicht. -
@mickym Wie gesagt in der Change Node - JSONATA nehmen und die $round Funktion. JSONATA ist das mit dem J:
Dann den Editor aufmachen und dann siehst Du schon die Funktionsbeschreibung von $round
-
Ungültiger JSONata Ausdruck: Argument 1 of function "round" does not match function signature
[0.17241614314906034,0.7467966085220437]
-
@marko1974 Ist das eine Zahl, - Du siehst doch, das 1. Argument in der Funktion mag er nicht.
-
@mickym na es sind 2 Zahlen als Array, die auf 4 stellen gekürzt werden sollen
-
@marko1974 sagte in Lichterkette in Node-Red + Alexa:
@mickym na es sind 2 Zahlen als Array
Na dann musst Du beide Zahlen in einem Array runden.
[$round(payload[0],3),$round(payload[1],3)]