NEWS
[Gelöst]: Use Hue Dimmer for Smart Plug via Red Note
-
Hallo liebe Forenmitglieder,
ich beschäftige mich erst seit 3 Wochen mit iobroker und bin dank des Forums schon recht weit gekommen. So habe ich bisher ein VIS erstellt, HomeKit integriert und eine Alarmanlage mit Xiaomi Türsensoren erstellen können.
Daher an dieser Stelle erst einmal vielen lieben Dank das ihr hier so eifrig euer Wissen mit uns Newbies teilt!!!Ich hoffe ihr könnt mir bei meinem aktuellen Problem weiterhelfen:
(Vorweg: Ich konnte über die Suche nichts passendes finden)Ich möchte mit einem Hue Dimmer einen Osram Smart Plug schalten, wenn ich die "Einschalten" Taste am Dimmer etwas gedrückt halte (state=holded).
Scheitere aber daran die Information vom Dimmer umzuwandeln so das der Smart Plug "on: true" gemeldet bekommt.
Ich weiß aufgrund des Debug tools, das der Dimmer bei gedrückt gehaltener Taste folgendes sendet:
{"button":1001,"name":"On","action":"holded","updated":"2019-03-13T21:36:27+00:00"}Ich möchte jetzt mit der Information "button":1001 einen "on": true Befehl generieren der den Smart Plug einschaltet.
Wie geht das mit function oder change?
Ich hoffe sehr ihr könnt mir hier weiterhelfen, da ich seit 5 Std einfach nicht weiterkomme....
Vielen Dank
Gruß
Mathias -
@Mathias-IO sagte in Use Hue Dimmer for Smart Plug via Red Note:
Ich möchte jetzt mit der Information "button":1001 einen "on": true Befehl generieren der den Smart Plug einschaltet.
Am Einfachsten mit einem change-node.
Ich gehe mal davon aus, dass {"button":1001,"name":"On","action":"holded","updated":"2019-03-13T21:36:27+00:00"}
Das eingehende payload-object ist und du willst, dass:wenn payload.button == 1001 dann soll payload.on == true ausgegeben werden. Falls das so ist, kannst du den change-node wie folgt benutzen.
[{"id":"1fc6a7ed.3f78b8","type":"inject","z":"e3aa95de.b382","name":"payload.button == 1001","topic":"","payload":"{\"button\":1001,\"name\":\"On\",\"action\":\"holded\",\"updated\":\"2019-03-13T21:36:27+00:00\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":80,"wires":[["b323ab8d.6c8988"]]},{"id":"262c935f.bf7b0c","type":"debug","z":"e3aa95de.b382","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":530,"y":80,"wires":[]},{"id":"b323ab8d.6c8988","type":"change","z":"e3aa95de.b382","name":"\"button\":1001 -> true","rules":[{"t":"set","p":"payload.on","pt":"msg","to":"(payload.button = 1001) ? true : false ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":80,"wires":[["262c935f.bf7b0c"]]},{"id":"da68cbf0.4b06f8","type":"inject","z":"e3aa95de.b382","name":"payload.button == 1002","topic":"","payload":"{\"button\":1002,\"name\":\"On\",\"action\":\"holded\",\"updated\":\"2019-03-13T21:36:27+00:00\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":140,"wires":[["b323ab8d.6c8988"]]}]
Mit diesem Flow kannst du das Verhalten testen. Falls ich dich hinsichtlich der Objektstruktur falsch verstanden habe, musst du ggf, den change-node anpassen.
Falls die alten Properties im payload stören (button/name usw.), kannst du sie im selben change-node löschen:rewenode
-
@rewenode
WOW, danke für die Hilfe! Genau das habe ich gesucht!
Ich war gestern schon dicht dran aber ohne die Hilfe hätte ich es nicht geschafft!
Jetzt kann mich mit dem "holded" am Hue Dimmer die Steckdose einschalten. Das habe ich geprüft und funktioniert einwandfrei.
Allerdings schaltete er die Steckdose direkt danach wieder aus, weil automatisch ein Befehl hinterhergeschoben wird wenn ich die Taste loslasse.
payload->Button: 1003 (1001 für einschalten)
Darauf reagiert der change Befehl dann mit on: falseDie Lösung möchte ich auch gerne noch teilen:
Aus (payload.button = 1001) ? true : false musste (payload.button = 1001) ? true werden. ( :false wurde entfernt)
Das ganze habe ich dann kopiert und geändert das er mit (payload.button = 4002) :false die Steckdose auch wieder ausschaltet.
Fertig!
Anbei das Skript.
(Kopieren und in Node Red unter "Import" einfügen dann habt ihr gleich was zum rumspielen)DANKE
Gruß
Mathias[ { "id": "61e71a84.e3b814", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "9fc8a643.dd765", "type": "inject", "z": "61e71a84.e3b814", "name": "payload.button == 1001", "topic": "", "payload": "{\"button\":1001,\"name\":\"On\",\"action\":\"holded\",\"updated\":\"2019-03-13T21:36:27+00:00\"}", "payloadType": "json", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 490, "y": 300, "wires": [ [ "408434a5.3e0d44", "2721cd9b.f73682" ] ] }, { "id": "408434a5.3e0d44", "type": "change", "z": "61e71a84.e3b814", "name": "\"button\":1001 -> true", "rules": [ { "t": "set", "p": "payload.on", "pt": "msg", "to": "(payload.button = 1001) ? true", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 300, "wires": [ [ "2aaaebbe.94953c" ] ] }, { "id": "6105e63b.9d80f8", "type": "inject", "z": "61e71a84.e3b814", "name": "payload.button == 4002", "topic": "", "payload": "{\"button\":4002,\"name\":\"On\",\"action\":\"holded\",\"updated\":\"2019-03-13T21:36:27+00:00\"}", "payloadType": "json", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 490, "y": 360, "wires": [ [ "408434a5.3e0d44", "2721cd9b.f73682" ] ] }, { "id": "2aaaebbe.94953c", "type": "debug", "z": "61e71a84.e3b814", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 1110, "y": 320, "wires": [] }, { "id": "2721cd9b.f73682", "type": "change", "z": "61e71a84.e3b814", "name": "\"button\":4002 -> false", "rules": [ { "t": "set", "p": "payload.on", "pt": "msg", "to": "(payload.button = 4002) ? false", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 360, "wires": [ [ "2aaaebbe.94953c" ] ] } ]
-
@Mathias-IO sagte in [Gelöst]: Use Hue Dimmer for Smart Plug via Red Note:
(payload.button = 1001) ? true
Cool! Wußte gar nicht dass das geht. Auch was gelernt