Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Einbindung von Geräten
  5. Zigbee Scene button als Schalter

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    511

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Zigbee Scene button als Schalter

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
12 Beiträge 3 Kommentatoren 963 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • CodierknechtC Codierknecht

    @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 Offline
    G Offline
    Gutty
    schrieb am zuletzt editiert von Gutty
    #3

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

    CodierknechtC 1 Antwort Letzte Antwort
    0
    • G 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.

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #4

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

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      G 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @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 Offline
        G Offline
        Gutty
        schrieb am zuletzt editiert von
        #5

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

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • G Gutty

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

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #6

          @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);
          }
          

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          G 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @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 Offline
            G Offline
            Gutty
            schrieb am zuletzt editiert von
            #7

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

            CodierknechtC 1 Antwort Letzte Antwort
            0
            • G Gutty

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

              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #8

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

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              G 2 Antworten Letzte Antwort
              0
              • CodierknechtC Codierknecht

                @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 Offline
                G Offline
                Gutty
                schrieb am zuletzt editiert von Gutty
                #9

                @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 Antwort Letzte Antwort
                0
                • CodierknechtC Codierknecht

                  @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 Offline
                  G Offline
                  Gutty
                  schrieb am zuletzt editiert von Gutty
                  #10

                  @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 Antwort Letzte Antwort
                  0
                  • G 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 Offline
                    T Offline
                    toralt
                    schrieb am zuletzt editiert von
                    #11

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

                    << ioBroker im Docker auf Synology DS1821+, 10GBit, 32GB RAM>>

                    G 1 Antwort Letzte Antwort
                    0
                    • T toralt

                      @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 Offline
                      G Offline
                      Gutty
                      schrieb am zuletzt editiert von Gutty
                      #12

                      @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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      362

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe