NEWS
(gelöst) Licht dimmen mit Magic Cube!
-
Hallo zusammen,
ich such mir schon einen Wolf.
Folgendes Problem, ich möchte mit dem Magic Cube mit der Drehbewegung eine Ikea Zigbee Lampe dimmen.
Das ein- bzw. ausschalten durch schütteln habe ich hin bekommen aber das dimmen will einfach nicht!
Ach ich vergas, der deconz Adapter erfasst die Zigbee Daten.
Egal was ich für Seiten im Netz aufrufe, überall wird die Drehung mit rotate left oder rotate right angegeben.
Diese Objekte habe ich gar nicht!
Der Würfel wird in 2 Objekten erfasst.Jeweils mit einigen Unterordnern. Die Nummer 7 zeigt jeweils die Kipp Funktion 1002, 1003, 1004 usw.
Die Nummer 8 reagiert auf die Drehung, aber nur in der Zeile buttonpressed
Nach der Drehung steht der Wert wieder auf 0!
Wäre nett wenn mir jemand bitte auf die Sprünge helfen könnte wo mein Fahler liegt?
Dankeschön schon mal.
-
Danke hab es selbst heraus gefunden...
-
@Murph Eine Erklärung könnte vllt anderen helfen. Wäre schön, wenn du kurz erläutern könntest, wie du es geschafft hast. Mein Cube kommt nämlich hoffentlich auch die Tage.
-
Dachte hätte es gelöst...
Also auf jeden Fall wertet der deconz Adapter die Werte anders aus als benötigt. Habe mir jetzt zusätzlich einen CC2531 angestöpselt und der zeigt mit dem Zigbee Adapter schon mal die gewünschten Objekte.
Bekomme aber leider iM meinen Yamaha AV Receiver noch nicht dazu auf die Drehung des Würfel zu reagieren.Also weiter testen/probieren
-
Anbei mal mein Code. Ich hoffe, wir reden über das gleiche Produkt von Aqura. In den letzten Wochen sind noch ein paar "Buttons" bei den Objekten hinzugekommen, die ich aber nicht benutzt habe. Bei der Klasse müssen zwei Parameter übergeben werden für die beide IDs. Wenn man dann soetwas schreibt wie:
var test=new zauberwuerfel("deconz.0.sensors....","deconz.0.sensors..");
in Javascript, dann kann man schon die Auswertung beobachten.
Ich hoffe, es hilft.class zauberwuerfel { /// Rotationen senkrecht /* +---+ | 5 | +---+---+---+ | 4 | 1 | 3 | 1- Schriftzug Aqura lesen +---+---+---+ | 2 | +---+ | 6 | +---+ */ id1:string; id2:string; OnGeschuettelt() {}; OnGeschubst(pOben:number) {}; OnHorizontalDrehung(pDrehung:number) { }; OnHorizontalLinksDrehung(pDrehung:number){ }; OnHorizontalRechtsDrehung(pDrehung:number){ }; OnVertikalDrehung(pHalb:boolean, pVon:number, pNach:number){ }; OnVertikalHalbDrehung(pVon:number,pNach:number){ }; OnVertikalViertelDrehung(pVon:number,pNach:number){ }; OnKlopfen(pOben:number){}; constructor(pID1:string,pID2:string) { this.id1=pID1; this.id2=pID2; var self=this; on({id:this.id1,change:"ne",valNe:0},(obj)=>self.OnGeandertID1(obj)); on({id:this.id2,change:"ne",valNe:0},(obj)=>self.OnGeandertID2(obj)); } /** * Gib die Vordere Zahl nur die tausender * 3001 -> 3 */ GibOben(pWert:number): number { return Math.floor(pWert/1000); } /** * Gib die Hintere Zahl ohne die tausender * 3001 -> 1 */ GibUnten(pWert:number): number { return pWert-Math.floor(pWert/1000)*1000 } OnGeandertID1(pObjekt:iobJS.ChangedStateObject) : void { /// Horizontales Drehen / Auf der Tischplatte drehen var lWert=Math.floor(pObjekt.state.val/100); if (Math.sign(lWert)>0) { /// Von Oben gesehen im Uhrzeigersinn log(`ZAUBERWÜRFEl HORIZONTAL RECHTS GEDREHT UM ${lWert} °Grad`); this.OnHorizontalRechtsDrehung(lWert); } else { /// Gegen den Uhrzeigersinn log(`ZAUBERWÜRFEl HORIZONTAL LINKS GEDREHT UM ${Math.abs(lWert)} °Grad`); this.OnHorizontalLinksDrehung(Math.abs(lWert)); } this.OnHorizontalDrehung(lWert); } OnGeandertID2(pObjekt:iobJS.ChangedStateObject) : void { var lWert=pObjekt.state.val; var lOben=this.GibOben(lWert); var lUnten=this.GibUnten(lWert); if (lWert==7007) { /// Geschüttelt log("ZAUBERWÜRFEl:GESCHÜTTELT"); this.OnGeschuettelt(); } else if (lUnten==0) { log("ZAUBERWÜRFEL GESCHUBST"); this.OnGeschubst(lOben); } else if (lWert==1006 || lWert==2005 || lWert==3004 || lWert==4003 || lWert==5002 || lWert==6001) { /// 180°Grad gedreht log("ZAUBERWÜRFE 180 °Grad Senkrecht") this.OnVertikalDrehung(true,lUnten,lOben); this.OnVertikalHalbDrehung(lUnten,lOben); } else if (lWert!=0 && lOben==lUnten) { // Hoch gehoben und zweimal geklopft : Hoch Runter Hoch Runter log("ZAUBERWÜRFE DOPPEL TAP"); this.OnKlopfen(lOben); } else { /// 90°Grad gedreht log("ZAUBERWÜRFEL 90 °Grad Senkrecht"); this.OnVertikalDrehung(true,lUnten,lOben); this.OnVertikalViertelDrehung(lUnten,lOben); } } }
-
Bin ja so mal gar kein JS Könner/Kenner.
Hier mal mein Blockly bei dem die Lautstärkeregelung über die Drehunktion klappt.Geht bestimmt auch eleganter...
-
Geht doch nicht!
In der Objektansicht wird die Lautstärkeanzeige richtig gestellt, aber am AV Receiver selbst springt die Lautstärke erst auf 0 um sich dann einstellen zu lassen...
Sehr merkwürdig...@jeg
Ich werde dein Script mal ausprobieren...Edit sagt: Da bin ich viel zu doof dafür. Leider.
Dein Script beibt mit:javascript.0 2020-04-03 11:50:01.996 error (4931) at process._tickCallback (internal/process/next_tick.js:68:7)
javascript.0 2020-04-03 11:50:01.995 error (4931) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
javascript.0 2020-04-03 11:50:01.995 error (4931) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
javascript.0 2020-04-03 11:50:01.995 error (4931) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:580:17)
javascript.0 2020-04-03 11:50:01.995 error (4931) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1055:17)
javascript.0 2020-04-03 11:50:01.995 error (4931) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1464:17)
javascript.0 2020-04-03 11:50:01.995 error (4931) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1411:37)
javascript.0 2020-04-03 11:50:01.995 error (4931) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1188:28)
javascript.0 2020-04-03 11:50:01.995 error (4931) at Object.createScript (vm.js:277:10)
javascript.0 2020-04-03 11:50:01.994 error (4931) at new Script (vm.js:83:7)
javascript.0 2020-04-03 11:50:01.994 error (4931) SyntaxError: Unexpected token class
javascript.0 2020-04-03 11:50:01.994 error (4931) ^^^^^
javascript.0 2020-04-03 11:50:01.994 error (4931) 'deconz.0.Sensors.4.buttonevent'/lumi sensor cube aqgl01 4 buttonevent/class zauberwuerfel
javascript.0 2020-04-03 11:50:01.994 error (4931) script.js.common.Skript_1 compile failed: at script.js.common.Skript_1:1
javascript.0 2020-04-03 11:50:01.993 info (4931) Start javascript script.js.common.Skript_1stehen.