Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. (gelöst) Licht dimmen mit Magic Cube!

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    (gelöst) Licht dimmen mit Magic Cube!

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Murph last edited by Murph

      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.

      595f2648-54e3-4f55-93e9-05b2ef47a0b4-image.png

      Jeweils mit einigen Unterordnern. Die Nummer 7 zeigt jeweils die Kipp Funktion 1002, 1003, 1004 usw.

      036bd494-f794-49d1-98c8-20f63fcda0f4-image.png

      Die Nummer 8 reagiert auf die Drehung, aber nur in der Zeile buttonpressed

      8a0c0c1e-ae71-4dea-acd4-5d3c0c4faf5e-image.png

      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.

      S 1 Reply Last reply Reply Quote 0
      • M
        Murph last edited by

        Danke hab es selbst heraus gefunden...

        1 Reply Last reply Reply Quote 0
        • S
          smarthome2020 @Murph last edited by

          @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.

          1 Reply Last reply Reply Quote 0
          • M
            Murph last edited by

            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 🙄

            1 Reply Last reply Reply Quote 0
            • J
              jeg last edited by

              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);
                      }
                  }
              }
              
              1 Reply Last reply Reply Quote 0
              • M
                Murph last edited by

                Bin ja so mal gar kein JS Könner/Kenner. 😞
                Hier mal mein Blockly bei dem die Lautstärkeregelung über die Drehunktion klappt.

                76267884-fdec-42da-a33a-ece27e8a32af-image.png

                Geht bestimmt auch eleganter... 😬

                1 Reply Last reply Reply Quote 0
                • M
                  Murph last edited by Murph

                  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_1

                  stehen.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  868
                  Online

                  31.9k
                  Users

                  80.1k
                  Topics

                  1.3m
                  Posts

                  blockly
                  3
                  7
                  674
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo