Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. gelöst: Zigbee brightness_move stoppen / abbrechen

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    gelöst: Zigbee brightness_move stoppen / abbrechen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Asgothian
      Asgothian Developer @rotamint last edited by

      @rotamint Stell bitte sicher das du nicht noch irgendwo einen trigger auf deinen Auslöser hast der auf Basis der im ioBroker angezeigten Helligkeitswerte etwas ansteuert.

      Bei der Verwendung von brightness_move kann es bis zu 5 Sekunden dauern bis der Wert im iobroker der Helligkeit der Lampe entspricht.

      A.

      R 1 Reply Last reply Reply Quote 0
      • R
        rotamint @Great SUN last edited by

        @great-sun Brightness_move_blockly.jpg

        1 Reply Last reply Reply Quote 0
        • R
          rotamint @Asgothian last edited by rotamint

          Besten Dank Euch Beiden für die Hinweise. Anbei habe ich das Blockly als Screenshot gepostet, ich habe mir ein ganz einfaches Testblockly aufgebaut, einzig um den brightness_move zu verstehen.

          Der lange Tastendruck soll "runter" dimmen, nach 4,5 Sekunden soll das Dimmen abgebrochen werden. Das Dimmen wird zwar auch beendet, jedoch springt danach die Lampe wieder auf die ursprüngliche Helligkeit.

          Screenshot 2022-04-21 211827.jpg
          (und nach dem "brightness_move 0 gesendet ==> wieder volle Leuchtkraft)

          Bin gespannt! Danke nochmals Euch beiden!

          Great SUN 1 Reply Last reply Reply Quote 0
          • Great SUN
            Great SUN @rotamint last edited by

            @rotamint @Asgothian @arteck :

            So, wie ich das sehe, werden aus irgendeinem Grund alle Werte des Objektes an die Lampe übertragen. Da der Brightness aber noch auf 100 steht, schaltet die Lampe wieder auf 100%.
            Seht Ihr eine Möglichkeit, dass nur der geänderte Wert übertragen wird, oder dass man den aktuellen Brightness-Wert bei dem/über den ConbeeII (USB Zigbee Dongle) direkt auslesen (lassen) kann? Dann könnte man den auslesen und "gleichzeitig" mit dem "Dimming" setzen...

            Ich müsste mich jetzt das erste Mal in den Adapter einlesen, ich glaube, Da seid Ihr schneller 😉

            Bei mir läuft halt alles über Sonoff Zigbee Bridge mit Tasmota...

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @Great SUN last edited by

              @great-sun sagte in Zigbee: Brightness_move stoppen / abbrechen:

              @rotamint @Asgothian @arteck :

              So, wie ich das sehe, werden aus irgendeinem Grund alle Werte des Objektes an die Lampe übertragen. Da der Brightness aber noch auf 100 steht, schaltet die Lampe wieder auf 100%.
              Seht Ihr eine Möglichkeit, dass nur der geänderte Wert übertragen wird, oder dass man den aktuellen Brightness-Wert bei dem/über den ConbeeII (USB Zigbee Dongle) direkt auslesen (lassen) kann? Dann könnte man den auslesen und "gleichzeitig" mit dem "Dimming" setzen...

              Ich müsste mich jetzt das erste Mal in den Adapter einlesen, ich glaube, Da seid Ihr schneller 😉

              Bei mir läuft halt alles über Sonoff Zigbee Bridge mit Tasmota...

              Der Adapter tut das auf jeden Fall nicht.
              Wobei: das dimmen geht nur während die Lampe an ist.

              @rotamint: Trag mal bitte die ieee der betroffenen Lampe in den State "zigbee.0.info.debugmessages" ein - dann siehst im Log als "elevated" Warnmeldungen du was der Adapter an die Lampe sendet.

              A.

              R 1 Reply Last reply Reply Quote 0
              • R
                rotamint @Asgothian last edited by

                @asgothian Danke für Deine Unterstützung!
                Anbei:

                Screenshot 2022-04-21 211827.jpg

                Great SUN Asgothian 2 Replies Last reply Reply Quote 0
                • Great SUN
                  Great SUN @rotamint last edited by

                  @rotamint @Asgothian : Das komische ist, dass brightness 143 zurück kommt, während der maximal eintragbare Wert 100 ist.
                  Irgend eine Idee, warum das so ist?

                  1 Reply Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @rotamint last edited by

                    @rotamint sagte in Zigbee: Brightness_move stoppen / abbrechen:

                    @asgothian Danke für Deine Unterstützung!
                    Anbei:

                    Screenshot 2022-04-21 211827.jpg

                    Logs bitte immer als Text posten. Jetzt musst du den Fehler im Log selber suchen:

                    Offensichtlich gibt es ein Skript welches die Helligkeit auf 100 setzt. Eine entsprechende Meldung mit dem "user state change" auf 100 Helligkeit (gesendet ohne ACK, damit als Steuerbefehl vom Adapter javascript.0)

                    A.

                    Great SUN 1 Reply Last reply Reply Quote 0
                    • Great SUN
                      Great SUN @Asgothian last edited by

                      @asgothian Man... wie doof... Das hab ich gestern total übersehen!
                      Das mit dem Log als Text siehst Du, wie ich, aber offensichtlich gibt es andere (nicht rotamint), die es anders wollen...
                      Egal. Ich schau später mal, ob ich ihn noch irgendwie unterstützen kann dabei das in den Griff zu bekommen 🙂

                      DANKE!!! Und sorry, dass ich das nicht gestern schon gesehen hab...

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        rotamint @Great SUN last edited by rotamint

                        @great-sun @Asgothian

                        Ihr BEIDEN (!) seid meine "Helden der Nacht" 😉 Da wäre ich niemals drauf gekommen, aber erneut ein super Anlass um wieder was dazu zu lernen.

                        1. "ohne ack" = vom Javascript-Adapter gesendet
                        2. Logs immer in Textform. Hatte da noch kurz mit GreatSUN drüber diskutiert, war aber der Meinung mir für die "Textform" schon mal irgendwo "einen eingefangen" zu haben. Folglich wars aber umgekehrt 😉

                        Ich habe das eigentliche "Dimmerscript" der Lampe deaktiviert - und - der "brightness_move" funktioniert tadellos, so wie es soll! 🙂

                        Das ist das "ursprüngliche" Script:

                        
                        
                        const idLevel = 'zigbee.0.001788010410074e.brightness'/*Brightness*/; 
                        
                        const idState = 'zigbee.0.001788010410074e.state'/*Switch state*/;
                        
                        const idLong  = 'hm-rpc.0.PEQ1590616.3.PRESS_CONT';
                        
                        const idShort = 'hm-rpc.0.PEQ1590616.3.PRESS_SHORT'; 
                        
                         
                        
                        var level = getState(idLevel).val;
                        
                        var state = getState(idState).val;
                        
                        var down = false;
                        
                        if(level > 95) down = true;
                        
                        var timerpause = null;
                        
                         
                        
                        function rampe() {
                        
                           if(down) {
                        
                              level = level - 5;
                        
                              if(level < 5) down = false;
                        
                              else setState(idLevel, level);
                        
                           } else {
                        
                              level = level + 5;
                        
                              if(level > 99) down = true;
                        
                              else setState(idLevel, level);
                        
                           }
                        
                        }
                        
                         
                        
                        on({id: idState, ack: true}, function(dp) {
                        
                           state = dp.state.val;
                        
                           if(state) setState(idLevel, level); // letzter Dimmwert
                        
                        });
                        
                         
                        
                        on({id: idShort}, function() {
                        
                           setState(idState, !state); // Toggle
                        
                        });
                        
                         
                        
                        on({id: idLong}, function() {
                        
                           if(state) { 
                        
                              rampe();
                        
                              if(timerpause) clearTimeout(timerpause);
                        
                              timerpause = setTimeout(function() {
                        
                                 down = !down;
                        
                                 timerpause = null;
                        
                              }, 600);
                        
                           }   
                        
                        });
                        

                        Mal schauen was ich daraus bastle, ich baue seit Jahren nur mit Blockly.
                        Habe es bis heute nicht geschafft, den "sauberen" und "jetzt habe ich es verstanden"-Einstieg in Javascript zu schaffen.

                        Jedenfalls danke EUCH BEIDEN (!) nochmals ganz herzlich für Eure Unterstützung bei der Fehlerfindung!

                        LG Stefan.

                        Asgothian 1 Reply Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @rotamint last edited by

                          @rotamint sagte in Zigbee: Brightness_move stoppen / abbrechen:

                          "ohne ack" = vom Javascript-Adapter gesendet

                          Das ist leider falsch.

                          Im Log steht:
                          brightness{"val":100, "ack":"false", "ts":1659575589149, "q":0, "c":"script.js.common.Wohnzimmer.Stehlampe_Dimmer", "from":"system.adapter.javascript.0", ...

                          Da kannst du sehen:

                          • wer den state gesetzt hat ("from")
                          • wann das passiert ist ("ts")
                          • auf welchen Wert er gesetzt wurde ("val")
                          • ob er als Steuerbefehl ("ack":"false") oder Wertupdate ("ack":"true") gesetzt wurde.

                          In deinem Beispiel steht da sogar noch der Skriptname drin. Einfacher gehts nicht.

                          A.

                          R 1 Reply Last reply Reply Quote 0
                          • R
                            rotamint @Asgothian last edited by

                            @asgothian 👍 Verstanden! Lernen kann soviel Spaß machen und Freude schenken! Danke.

                            Great SUN 1 Reply Last reply Reply Quote 0
                            • Great SUN
                              Great SUN @rotamint last edited by

                              @rotamint evtl. (nur ein spontaner guess) reicht es bei dem script das zu tun:

                              Tausche

                              on({id: idState, ack: true}, function(dp) {
                              

                              gegen

                              on({id: idState, change: 'ne', val: true}, function(dp) {
                              

                              Bin mir zwar nicht sicher, ob man val und change kombinieren kann, aber wenn, dann wäre es das, sonst müsstest Du nur noch ein

                              if(dp.state.val !== true) { return; } 
                              

                              drunter setzen und ack:true -> change: 'ne'

                              Asgothian 1 Reply Last reply Reply Quote 0
                              • Asgothian
                                Asgothian Developer @Great SUN last edited by

                                @great-sun sagte in gelöst: Zigbee brightness_move stoppen / abbrechen:

                                gegen
                                on({id: idState, change: 'ne', val: true}, function(dp) {

                                Bin mir zwar nicht sicher, ob man val und change kombinieren kann, aber wenn, dann wäre es das, sonst müsstest Du nur noch ein
                                if(dp.state.val !== true) { return; }

                                drunter setzen und ack:true -> change: 'ne'

                                Das was du erreichen willst ist

                                on({id: idState, change: 'gt'}, function(dp) {
                                

                                Fun fact: In JS gilt: true > false

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                763
                                Online

                                32.0k
                                Users

                                80.6k
                                Topics

                                1.3m
                                Posts

                                4
                                19
                                1022
                                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