NEWS
Node-Red mit Alexa - Dimmer
-
Also wenn ich dich recht verstehe, soll zb. die Alexa Ausgabe so konvertiert werden. oder wie?
sollte rot sein.
{"hue":0,"saturation":1,"brightness":1,"hsv":[0,100,100]}so aussehen:
ist immer noch rot, nur rgb
{"hue":0,"saturation":1,"brightness":1,"rgb":[255,0,0]}oder verstehe ich das falsch?
-
Alexa wirft bei "Alexa Schalte Test auf ROT" dies aus:
"hue":0,"saturation":1,"brightness":1dies schiebe ich in den Blocky und mache ein Array daraus damit dies kommt:
"hsv":[0,100,100]Der Converter macht aber nun ein RGB Array und zwar so:
[3,3,3]Es müsste aber für den HUE Adapter so kommen:
RGB [255,0,0] -
Ich hoffe, ich habe richtig kapiert.
Das sollte auch ohne Blockly problemlos gehen:
hier der flow:
! ````
[
{
"id": "26dc88fe.708c5",
"type": "inject",
"z": "ca47e1d4.9f532",
"name": "Alexa Schalte Test auf ROT",
"topic": "",
"payload": "{"hue":0,"saturation":1,"brightness":1}",
"payloadType": "json",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 230,
"y": 140,
"wires": [
[
"ad83b521.77c65",
"7eb1492e.f3b3d8"
]
]
},
{
"id": "86870acf.2656c",
"type": "color-convert",
"z": "ca47e1d4.9f532",
"input": "hsv",
"output": "rgb",
"outputType": "array",
"x": 190,
"y": 300,
"wires": [
[
"a57a950f.248af8"
]
]
},
{
"id": "ad83b521.77c65",
"type": "change",
"z": "ca47e1d4.9f532",
"name": "{"hue":0,"saturation":1,"brightness":1} to [h,s,v]",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "[\t payload.hue,\t payload.saturation * 100,\t payload.brightness * 100\t]",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 300,
"y": 220,
"wires": [
[
"86870acf.2656c",
"a4ad7796.ecdb8"
]
]
},
{
"id": "ccb4443d.a17ce8",
"type": "comment",
"z": "ca47e1d4.9f532",
"name": "msg.payload ={"hue":0,"saturation":1,"brightness":1}",
"info": "",
"x": 940,
"y": 140,
"wires": []
},
{
"id": "3e66cbf2.9da13c",
"type": "comment",
"z": "ca47e1d4.9f532",
"name": "direct convert to rgb[r,g,b]",
"info": "",
"x": 830,
"y": 300,
"wires": []
},
{
"id": "bd23336d.d791e8",
"type": "comment",
"z": "ca47e1d4.9f532",
"name": "object hsv[h,s,v]",
"info": "",
"x": 800,
"y": 220,
"wires": []
},
{
"id": "a57a950f.248af8",
"type": "debug",
"z": "ca47e1d4.9f532",
"name": "rgb[r,g,b]",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"x": 600,
"y": 300,
"wires": []
},
{
"id": "7eb1492e.f3b3d8",
"type": "debug",
"z": "ca47e1d4.9f532",
"name": "{"hue":0,"saturation":1,"brightness":1}",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"x": 550,
"y": 140,
"wires": []
},
{
"id": "a4ad7796.ecdb8",
"type": "debug",
"z": "ca47e1d4.9f532",
"name": "hsv[h,s,v]",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"x": 600,
"y": 220,
"wires": []
}
] Am Eingang bekommt das Teil ein Oblect```` {"hue":0,"saturation":1,"brightness":1}Am Ausgang hast du ein Array````
[r,g,b]Wenn das lieber ein Object sein soll, der Form:```` {"rgb": [r,g,b]} ````ist eine minimale Änderung nötig. -
Perfekt :D dann hab ich nur den Converter falsch benutzt :D :D danach noch nen Change to msg.payload.rgb und Alexa schaltet das ganze :-) Danke dir
-
-
Für alle die dann noch Bedarf daran haben :-)
Ich mache es am Ende doch per Blockly denn es kommen ja noch Abfragen wie TurnOnRequest, TunOffRequest und was Alexa noch alles so bietet.
! ````
[
{
"id": "6a18e5be.c9abdc",
"type": "Blockly",
"z": "9433ac39.c5756",
"language": "en",
"func": "if ((msg['command']) == 'SetColorRequest') {\n msg['payload'] = [(msg['payload']['hue']), (msg['payload']['saturation']) * 100, (msg['payload']['brightness']) * 100];\n return [msg, null];\n} else if ((msg['command']) == 'TurnOffRequest') {\n msg['payload'] = false;\n return [null, msg];\n} else if ((msg['command']) == 'TurnOnRequest') {\n msg['payload'] = true;\n return [null, msg];\n}\n",
"workspaceXml": "<xml xmlns=""http://www.w3.org/1999/xhtml\""><block id=""OegDmw1SSX]D=Pa(8G75"" type=""controls_if"" x=""-2037"" y=""-387""><mutation elseif=""2""></mutation><value name=""IF0""><block id=""GconiS<value name=""IF0""ihVrBvHEiKZu"" type=""logic_compare""><field name=""OP"">EQ</field><value name=""A""><block id=""qfEv5p}Q.6(4bAAhVY)t"" type=""node_object_get""><mutation action=""GET""></mutation><field name=""action"">GET</field><value name=""object""><shadow id=""8Rf40:s+-(Iix/~rpXuB"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""3K$0p{%[oP^XO:,{IhsI"" type=""text""><field name=""TEXT"">command</field></shadow></value></block></value><value name=""B""><block id=""Gu~Z4BXhmh4D%LOE{4s-"" type=""text""><field name=""TEXT"">SetColorRequest</field></block></value></block></value><statement name=""DO0""><block id=""Wz6Dr1k2)tZbJ[+?V+j{"" type=""node_object_set""><value name=""object_field""><shadow id=""N7nV^CQPdk8cxV}?9mWX"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""cZ6WgGkQ{3ya8z~VBE3\"" type="\"text\""><field name="\"TEXT\"">payload</field></shadow></value><value name="\"value_field\""><shadow id="\"sk?O05P5ma_5vqc{!#)"" type=""text""></shadow><block id=""Md|@A(]N!kq$=b3)[SH!"" type=""lists_create_with""><mutation items=""3""></mutation><value name=""ADD0""><block id=""tu7-Qe3u+zsXsItw[,yY"" type=""node_object_get""><mutation action=""GET""></mutation><field name=""action"">GET</field><value name=""object""><shadow id=""4WDpncvt3q4gpN@S@MfM"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""@d+[0zA[c(D{jmlYd^%O"" type=""text""><field name=""TEXT"">payload.hue</field></shadow></value></block></value><value name=""ADD1""><block id=""!Q#d8F/fCDqPNsm,6Z+"" type=""math_arithmetic""><field name=""OP"">MULTIPLY</field><value name=""A""><shadow id=""bNOGt$4!S%VQ?:vfS1V."" type=""math_number""><field name=""NUM"">1</field></shadow><block id=""cl:38kKKmak%V3E!m2}T"" type=""node_object_get""><mutation action=""GET""></mutation><field name=""action"">GET</field><value name=""object""><shadow id=""8+vu8BKKc)fZo;rSk0[D"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""FzE=$C.cumV)e3g*!;0\"" type="\"text\""><field name="\"TEXT\"">payload.saturation</field></shadow></value></block></value><value name="\"B\""><shadow id="\"p$RJ=}@6=xX[Ekbiqfn^\"" type="\"math_number\""><field name="\"NUM\"">100</field></shadow></value></block></value><value name="\"ADD2\""><block id="\"K[@!p?t]Y]0YY,I]]Y=3\"" type="\"math_arithmetic\""><field name="\"OP\"">MULTIPLY</field><value name="\"A\""><shadow id="\"12luhGJPp}BppnOnCd]t\"" type="\"math_number\""><field name="\"NUM\"">1</field></shadow><block id="\"hu/B]c6@]lE@cn^qMa!I\"" type="\"node_object_get\""><mutation action="\"GET\""></mutation><field name="\"action\"">GET</field><value name="\"object\""><shadow id="\"$2{@U|#45m9O#sYMG_HL\"" type="\"node_msg\""></shadow></value><value name="\"field_name\""><shadow id="\"9q^k;%a@6pz!wwSL[S\"" type="\"text\""><field name="\"TEXT\"">payload.brightness</field></shadow></value></block></value><value name="\"B\""><shadow id="\"H7P5:v+4jC%4eNSZg1b3\"" type="\"math_number\""><field name="\"NUM\"">100</field></shadow></value></block></value></block></value><next><block id="\"dj6-iR8:4O-+v*!D~,M-\"" type="\"node_return_message\""><field name="\"OUTPUT_NR\"">1</field><value name="\"MESSAGE_INPUT\""><shadow id="\"!e8R2#N8Jdu(EAVQ{|"" type=""node_msg""></shadow></value></block></next></block></statement><value name=""IF1""><block id=""Gt#y.gqIL,qm)]{hhHC"" type=""logic_compare""><field name=""OP"">EQ</field><value name=""A""><block id=""N6$q19G#S0_xYH%PxSEI"" type=""node_object_get""><mutation action=""GET""></mutation><field name=""action"">GET</field><value name=""object""><shadow id=""x(P(iAF[acHUJa%K1WW0"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""401Ct:?6f$=h/.@%JFf="" type=""text""><field name=""TEXT"">command</field></shadow></value></block></value><value name=""B""><block id=""E:%o.01_qWbolte})n[}"" type=""text""><field name=""TEXT"">TurnOffRequest</field></block></value></block></value><statement name=""DO1""><block id=""6=mvJ%:D4qf|CDFfAg[z"" type=""node_object_set""><value name=""object_field""><shadow id=""ABbAcS^Mj_]u:G0bmbxl"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""to=(u!-hoz(ZB|X@F7;"" type=""text""><field name=""TEXT"">payload</field></shadow></value><value name=""value_field""><shadow id=""6?#earD4R8~?M5_1Y1va"" type=""text""></shadow><block id=""gSN[vp0Vp@iiKOCKXZxO"" type=""logic_boolean""><field name=""BOOL"">FALSE</field></block></value><next><block id=""8Lt@[lrf:,v#bz#My!,~"" type=""node_return_message""><field name=""OUTPUT_NR"">2</field><value name=""MESSAGE_INPUT""><shadow id=""ac^):!N/SuXK+m#l6G{e"" type=""node_msg""></shadow></value></block></next></block></statement><value name=""IF2""><block id="":%iB^77hKA%5#Y]m3(KI"" type=""logic_compare""><field name=""OP"">EQ</field><value name=""A""><block id=""bZZ%2UXkY4qB_Fmae68"" type=""node_object_get""><mutation action=""GET""></mutation><field name=""action"">GET</field><value name=""object""><shadow id=""O;dMHWtpMY{zN1](^WQa"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""C0O}w0bo=c,,_#.[I9Gf"" type=""text""><field name=""TEXT"">command</field></shadow></value></block></value><value name=""B""><block id=""e5e|,AqRBMdDQ|~s?uv9"" type=""text""><field name=""TEXT"">TurnOnRequest</field></block></value></block></value><statement name=""DO2""><block id=""|DY5/yaj[#aVyjA:qNS"" type=""node_object_set""><value name=""object_field""><shadow id=""ee@E0k_unaE#!Ss=xdAB"" type=""node_msg""></shadow></value><value name=""field_name""><shadow id=""h]@6ikfpmr#ni-9FWDmN"" type=""text""><field name=""TEXT"">payload</field></shadow></value><value name=""value_field""><shadow id=""6?#earD4R8~?M5_1Y1va"" type=""text""></shadow><block id=""c3@@`D0S$O}J_N]-B5lf"" type=""logic_boolean""><field name=""BOOL"">TRUE</field></block></value><next><block id=""%R}_.z4(NfAy?#=Gv44"" type=""node_return_message""><field name=""OUTPUT_NR"">2</field><value name=""MESSAGE_INPUT""><shadow id=""}z$f11Tsy#/HuS(JG_Z"" type=""node_msg""></shadow></value></block></next></block></statement></block></xml>",
"outputs": 2,
"name": "",
"x": 390,
"y": 1320,
"wires": [
[
"aeec5dac.065a9"
],
[
"7bd5f7d8.5e0f58"
]
]
},
{
"id": "7bd5f7d8.5e0f58",
"type": "hue-light",
"z": "9433ac39.c5756",
"name": "Lampe_Buero_LedStrip",
"bridge": "d5d520c8.c3118",
"lightid": "9",
"colornamer": true,
"x": 960,
"y": 1330,
"wires": [
[]
]
},
{
"id": "8259bb25.207dc8",
"type": "alexa-home",
"z": "9433ac39.c5756",
"conf": "b91f3657.228818",
"device": "43026",
"acknoledge": true,
"name": "Test",
"topic": "",
"x": 240,
"y": 1320,
"wires": [
[
"6a18e5be.c9abdc"
]
]
},
{
"id": "aeec5dac.065a9",
"type": "color-convert",
"z": "9433ac39.c5756",
"input": "hsv",
"output": "rgb",
"outputType": "array",
"x": 570,
"y": 1290,
"wires": [
[
"84d8358e.688908"
]
]
},
{
"id": "84d8358e.688908",
"type": "change",
"z": "9433ac39.c5756",
"name": "-> Converter ->",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "payload.rgb",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 740,
"y": 1290,
"wires": [
[
"7bd5f7d8.5e0f58"
]
]
},
{
"id": "d5d520c8.c3118",
"type": "hue-bridge",
"z": "",
"name": "Philips hue",
"bridge": "1.2.3.103",
"key": "*****",
"interval": "1000"
},
{
"id": "b91f3657.228818",
"type": "alexa-home-conf",
"z": "",
"username": ""
}
]if ((msg['command']) == 'SetColorRequest') {
msg['payload'] = [(msg['payload']['hue']), (msg['payload']['saturation']) * 100, (msg['payload']['brightness']) * 100];
return [msg, null];
} else if ((msg['command']) == 'TurnOffRequest') {
msg['payload'] = false;
return [null, msg];
} else if ((msg['command']) == 'TurnOnRequest') {
msg['payload'] = true;
return [null, msg];
} -
Hi,
ich habe ein Problem mit der Range des Dimmers. Der Dimmer möchte 0-100 und Alexa 0-1.
Hier ist mein "Flow" der HomeKit Dimmer kommt da anschl. auch noch dran….
[{"id":"40e9814d.216b7","type":"change","z":"e742a326.057cb","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"0","tot":"num"},{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"100","tot":"num"},{"t":"set","p":"payload","pt":"msg","to":"bri","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":507.4999694824219,"y":218.33334922790527,"wires":[["286a0677.93840a"]]}]
