Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. Zigbee Scene button als Schalter

    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

    Zigbee Scene button als Schalter

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

      Ich bin gerade dabei, IoBroker so langsam einzurichten. Ich habe etliche Tuya Steckdosen und ein Tuya Zigbee Gateway am Tuya Adapter, was auch soweit funktioniert.
      Nun will ich ein paar Taster platzieren, um Dinge zu schalten. Also drücken schaltet ein, drücken schaltet aus. Das habe ich versuchsweise mit WemosD1 und MQTT aufgebaut, läuft. Nun habe ich ein paar Zigbee Sachen gekauft. Unter anderem https://www.aliexpress.com/item/1005004988714663.html
      Ich dachte, das ist das gleiche in Zigbee. Aber ich bekomme als Werte nur 0 bei einfachen Click, 1 bei doppelclick, und 2 bei longpress. Ich möchte aber mit einfachem Drücken einschalten und auch wieder ausschalten. Wie kann ich das in JS realisieren?
      LoraTap-ZigBee-3-0-Wireless-6-Push-Button-Remote-Tuya-Scene-.png

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Gutty last edited by

        @gutty
        Prinzipiell sollte das so funktionieren - ungetestet!

        on({id: "tuya.0.LoraTap.click", change: "ne"}, async function (obj) {
          var value = obj.state.val;
          if(value == 0) {
              setState("tuya.0.DeineLampe.On", !getState("tuya.0.DeineLampe.On").val, false); 
          }
        }
        
        G 1 Reply Last reply Reply Quote 0
        • G
          Gutty @Codierknecht last edited by Gutty

          @codierknecht ja, das wäre ja zu einfach.
          Der Wert 0 ändert sich ja nicht, der Datenpunkt bleibt einfach auf 0. Ich habe ausprobiert und ihn nach setState auf 4 gestellt, das ein erneuter click ihn wieder auf 0 stellt. Das schien zu gehen, nur dummerweise schickt das gateway(?) alle paar Sekunden oder Minuten immer wieder 0, was dann die Lampe unerwünscht schaltet. Click und doppelclick bringen das erwünschte Ergebnis, aber schlechter WAF.

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Gutty last edited by

            @gutty
            OK, dann steht also in dem DP nur der zuletzt abgesetzte Wert und wird zu allem Übel auch noch vom Gateway ständig aktualisiert.
            Gibt es noch einen anderen DP, der sich wirklich nur beim Click ändert?
            Auf den könnte man triggern und aus dem Status dann einfach lesen, ob 1x, 2x oder 2x geklickt wurde.

            G 1 Reply Last reply Reply Quote 0
            • G
              Gutty @Codierknecht last edited by

              @codierknecht Nein, dummerweise nicht. Kurioserweise kann ich aber in der Smart life app ohne iobroker per einfachem click eine Steckdose toggeln.

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Gutty last edited by

                @gutty
                Und was passiert dann am DP?
                Ändert der (vielleicht nur für einen Augenblick) mal den Wert?

                Log doch mal mit was da so passiert:

                on({id: "tuya.0.LoraTap.click", change: "any"}, async function (obj) {
                  console.log('Auslöser: ' + obj.state.from);
                  console.log('Wert: ' + obj.state.val);
                }
                
                G 1 Reply Last reply Reply Quote 0
                • G
                  Gutty @Codierknecht last edited by

                  @codierknecht sagte in Zigbee Scene button als Schalter:

                  Also, ich habe das Skript geändert zu

                  console.log("Routine gestartet");
                  
                  on({id: 'tuya.0.bf0a3a1dcb9c1a20d5clm5.1'/*switch type 1*/, change: "any"}, async function (obj) {
                  
                    console.log('Auslöser: ' + obj.state.from);
                  
                    console.log('Wert: ' + obj.state.val);
                  
                  });
                  

                  Dann um 12:07:50 den Knopf gedrückt:

                  6.4.2023, 12:07:46.559	[info ]: javascript.0 (97325) Stop script script.js.Ordner_1.Taster1
                  6.4.2023, 12:07:46.564	[info ]: javascript.0 (97325) Start javascript script.js.Ordner_1.Taster1
                  6.4.2023, 12:07:46.570	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Routine gestartet
                  6.4.2023, 12:07:46.570	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  6.4.2023, 12:07:50.848	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:07:50.848	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:08:07.225	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:08:07.225	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:08:07.362	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:08:07.362	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:09:07.480	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:09:07.480	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:09:07.637	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:09:07.637	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:10:07.855	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:10:07.855	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:10:07.992	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:10:07.992	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:11:08.104	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:11:08.104	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:11:08.250	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:11:08.250	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:12:08.369	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:12:08.369	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:12:08.512	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:12:08.512	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:13:08.712	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:13:08.712	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  6.4.2023, 12:13:08.859	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Auslöser: system.adapter.tuya.0
                  6.4.2023, 12:13:08.859	[info ]: javascript.0 (97325) script.js.Ordner_1.Taster1: Wert: 0
                  

                  Und wie man sieht, feuert der Adapter jede Minute erneut den Wert 0.
                  Mache ich dann einen Doppelclick, ändert sich der wert auf 1 und wird auch immer wieder gefeuert.

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @Gutty last edited by

                    @gutty
                    Dann sieht das mit dem einfachen Klick alleine schlecht aus.
                    Eine Änderung von "any" nach "ne" hilft ja auch nicht - der Wert ändert sich ja nicht.

                    Was natürlich problemlos gehen sollte, wäre mit 1 Klick ein- und mit Doppelklick ausschalten.
                    Aber das ist ja nicht das was Du willst.

                    G 2 Replies Last reply Reply Quote 0
                    • G
                      Gutty @Codierknecht last edited by Gutty

                      @codierknecht ja, mit einfachem und doppel click, das geht, und so habe ich es momentan. Aber das ist auch Mist. Wenn ich über einfachen click einschalte, und z.B. über Siri ausschalte, geht die Lampe ja durch die Wiederholung des Schaltzustandes wieder an. Das muss ich noch rausprogrammieren.

                      1 Reply Last reply Reply Quote 0
                      • G
                        Gutty @Codierknecht last edited by Gutty

                        @codierknecht Ich habe einen unschönen Workaround gefunden. Die Tasmota geflashte S20 habe ich gegen ein Tuya Smart Plug (die man nicht mehr Tasmota flashen kann) getauscht. Den kann ich in der App und mit der Remote control (Scene Button) toggeln und gleichzeitig per IoBroker abrufen und steuern.

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          toralt @Gutty last edited by

                          @gutty wenn ich das jetzt nicht völlig falsch verstehe, dann willst Du doch einfach den Taster kurz drücken, dann Licht an, dann wieder drücken, dann Licht wieder aus, korrekt?

                          Dann wäre doch der Workaround,
                          wenn Status 1 und Licht aus, mache Licht an
                          und das Gegenteil wäre dann,
                          wenn Status 1 und Licht an, dann mache Licht aus

                          So mache ich das mit den HueWall Switches, welche auch nur kurz eine Wertänderung haben.

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            Gutty @toralt last edited by Gutty

                            @toralt Nein, das geht bei dem Button nicht.
                            Es gibt 3 Zustände (enum, 0-2):
                            0 = einfacher Click
                            1 = Doppelclick
                            2 = longpress

                            der Datebpunkt im IoBroker ändert sich nicht, wenn man ein weiteres mal clickt. Er bleibt auf 0. Erschwerdend kommt hinzu, dass vom Zigbee Gateway, wo der Taster dran hängt, alle Minute der aktuelle Zustand (in meinem Fall 0) gesendet wird. Also ich setze manuell in Objekte den Zustand auf z.B. 5, ist er eine Minute später automatisch wieder auf 0 und es wird ungewollt die Schaltaktion ausgelöst, da ja eine Zustandsänderung erkannt wird.
                            Der Zustand bleibt solange auf 0, bis ein Doppelclick oder longpress erkannt wird. Deswegen geht ja auch click=einschalten, doppelclick = ausschalten

                            Gibt es bei Ali o.ä. Zigbee Taster, die einfach nur 0/1 toggeln?

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            688
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            562
                            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