NEWS
(Gelöst) Werte von Wifilight werden nicht sauber geändert
-
Hallo zusammen,
habe gestern das erste Mal ioBroker auf meinen RPI3 gepackt und bin seither kräftig damit beschäftigt, das System kennen zu lernen. Bin echt postiv überrascht, doch stoße ich allerdings aktuell auf ein Problem.
Systeminformationen:
-
Raspberry PI 3 mit Ubuntu Mate 16.04.5
-
js controller 1.2.3
-
node js 8.11.3
-
npm 4.6.1
Für den Anfang möchte ich meinen RGB Wlan Controller (LW12) mittels Google Home Mini steuern. Dazu habe ich den Cloud Adapter, Wifilight und Blockly installiert. An/Aus funktioniert mittels IFTTT und Webhook problemlos, der Farbwechsel möchte allerdings noch nicht so ganz…
Die Scripte sehen wie folgt aus:
An/Aus:
on({id: 'cloud.0.services.ifttt', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("cloud.0.services.ifttt").val == 'wohnwand_an') { setState("wifilight.0.192_168_178_42.on"/*on*/, true); } else if (getState("cloud.0.services.ifttt").val == 'wohnwand_aus') { setState("wifilight.0.192_168_178_42.on"/*on*/, false); } });
Farbwechsel:
on({id: 'cloud.0.services.ifttt', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("cloud.0.services.ifttt").val == 'wohnwand_rot') { setState("wifilight.0.192_168_178_42.command"/*command*/, 'r:255, g:0, b:0, on:true, transition:5'); } else if (getState("cloud.0.services.ifttt").val == 'wohnwand_grün') { setState("wifilight.0.192_168_178_42.command"/*command*/, 'r:0, g:255, b:0, on:true, transition:5'); } else if (getState("cloud.0.services.ifttt").val == 'wohnwand_blau') { setState("wifilight.0.192_168_178_42.command"/*command*/, 'r:0, g:0, b:255, on:true, transition:5'); } else if (getState("cloud.0.services.ifttt").val == 'wohnwand_gelb') { setState("wifilight.0.192_168_178_42.command"/*command*/, 'r:255, g:255, b:0, on:true, transition:5'); } else if (getState("cloud.0.services.ifttt").val == 'wohnwand_pink') { setState("wifilight.0.192_168_178_42.command"/*command*/, 'r:255, g:0, b:255, on:true, transition:5'); } else if (getState("cloud.0.services.ifttt").val == 'wohnwand_weiß') { setState("wifilight.0.192_168_178_42.command"/*command*/, 'r:255, g:255, b:255, on:true, transition:5'); } });
Wird "IFFT Value" mittels Webhook mit "wohnwand_an" bzw. "wohnwand_aus" gesetzt, so wird auch "on" vom Wifilight auf true bzw. false gesetzt. Wird allerdings ein Farbwert (z.B. wohnwand_rot) gesetzt, so wird "command" vom Wifilight nicht gesetzt. Die Scripte ansich funktionieren aber, denn ich habe über vis zum Test einen Schalter bzw. Dropdown angelegt, welche "wohnwand_an / wohnwand_aus" und "wohnwand_rot" etc. in "IFTTT Value" schreiben. Damit funktioniert die Steuerung dann auch wie gewünscht. Was mir auch noch aufgefallen ist, ändere ich "IFTTT Value" händisch über den Reiter Objekte, so wird darüber nicht immer eine Änderung (an/aus oder Farbwechsel) ausgelöst.
Kennt jemand dieses Verhalten oder übersehe ich hier einfach irgendwas?
Danke und viele Grüße
-
-
Hi,
ich hab das Problem mit den verschiedensten Lampen, habe das ganz einfach gelöst, du schaltest die Lampe erst an und setzt dann die Farbe.
Das Funktioniert einwandfrei. ( also erst ein "Steuere on mit wahr" und dann ein "Steuere Command mit xxxx" )
Deine Blocklys sind ok.
-
Hm, genau das will ich ja nicht (daher der Weg über Command), sonst leuchtet ja erst die zuletzt eingestellte Farbe und wechsel dann auf die neu gewählte, oder nicht?
Das Problem hängt mMn auch nicht direkt mit dem Wifilight Adapter zusammen, denn über vis funktioniert es ja wie es soll (an/aus, Farbwechsel und an mit gewünschter Farbe). Habe dort einfache Buttons angelegt die "IFTTT Value" mit den Werten setzten (so wie sie auch der Webhook setzt). Darum kann ich auch gerade nicht wirklich nachvollziehen, was hier das Problem ist :?:
-
Das Problem ist gelöst (es war wie so oft ein Layer 8 Problem ;)), es hatte sich beim Weghook ein Leerzeichen eingeschlichen…
Jetzt funktioniert das Ganze genau so, wie ich das will. Habe bei der Gelegeheit auch gleich die beiden Skripte in eins gepackt, sonst wirds mit der Zeit unübersichtlich.