NEWS
Node-Red mit Alexa - Dimmer
-
Also irgendwas passt nicht :-(

if ((msg['command']) == 'SetColorRequest') { msg['payload']['hsv'] = [(msg['payload']['hue']), (msg['payload']['saturation']) * 100, (msg['payload']['brightness']) * 100]; return msg; } else { }Ausgabe Alexa und Blocky:
{"hue":0,"saturation":1,"brightness":1,"hsv":[0,100,100]}Ausgabe Converter (HSV to RGB)
[3,3,3] -
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"]]}]
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
