Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [erledigt] Blockly-Script - alle Lichter ausschalten nach "Doppelklick"

    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

    [erledigt] Blockly-Script - alle Lichter ausschalten nach "Doppelklick"

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

      Hallo zusammen,

      ich habe einen Sonoff Touch und mehrere Sonoff TH in einem Zimmer. Ich möchte jetzt, wenn der Sonoff Touch eingeschaltet ist, durch einen "Doppelklick" auf den Knopf (also schnelles aus- und wieder einschalten) alle Geräte im Zimmer ausschalten.

      Habe dazu folgendes mit Blockly gebastelt:

      var doubletap_off, timeout2, timeout3;
      
      doubletap_off = false;
      on({id: "sonoff.0.DVES_0447.POWER"/*DVES_0447 POWER*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (doubletap_off == true) {
          setState("sonoff.0.DVES_0447.POWER"/*DVES_0447 POWER*/, false, true);
          setState("sonoff.0.DVES_5080.POWER"/*DVES_5080 POWER*/, false, true);
          setState("sonoff.0.DVES_5174.POWER"/*DVES_5174 POWER*/, false, true);
          timeout3 = setTimeout(function () {
            doubletap_off = false;
          }, 200);
        }
        if (doubletap_off == false) {
          if (getState("sonoff.0.DVES_0447.POWER").val == false) {
            doubletap_off = true;
            timeout2 = setTimeout(function () {
              doubletap_off = false;
            }, 300);
          }
        }
      });
      

      (Grafik siehe Anhang).

      DVES_0447 ist der Touch-Schalter, die anderen beiden sind die normalen Sonoff-Teile, die geschaltet werden sollen.

      Wenn ich jetzt aber den Schalter zweimal drücke, macht er erst merkwürdige Geräusche, als wenn er ziemlich schnell hintereinander immer wieder schalten würde, schmiert dann ab, und auch der ioBroker reagiert nicht mehr vernünftig. Aber warum? Ich setze doch extra erst nach einem Timeout von 200ms den Wert auf "false" zurück, damit nicht die automatisierte Schaltung wieder was auslöst …

      Gibt es in Blockly eine Möglichkeit a la "Schalte X, aber ohne irgendwelche Blockly-Trigger auszulösen"?

      Leseratte10
      5800_blockly.png

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Für Auswertung eines Double click ist es nicht sinnvoll, den Wert auszuwerten und zu(rück) zu setzen. Die Auswertung der Timervariablen sollte ausreichen, wenn man sie nach Zeitablauf zurück setzt (timeout = null).
        493_blockly_double_click.jpg

        1 Reply Last reply Reply Quote 0
        • L
          Leseratte10 last edited by

          Ist das schon der ganze Code? Da wird ja nirgendwo "timeout" mal auf irgendwas gesetzt.

          Wenn ich vor das "Execute timeout in 300 ms" noch ein "set timeout to true" mache, habe ich wieder Dauerschalten (rappeln des Relais) im Touch und danach hängt alles.

          EDIT: Anscheinend löst das automatische Setzen der drei Schalter (einschließlich meines "Trigger-Schalters) wieder irgendwas aus. Ich habe jetzt an den drei "control <schalter>with false" ein Delay von 350ms (also etwas länger als das Timeout unten) gesetzt und jetzt klappt alles. Danke für den Tipp.</schalter>
          5800_bildschirmfoto_von__2018-02-10_10-37-10_.png

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Leseratte10:

            Ist das schon der ganze Code? Da wird ja nirgendwo "timeout" mal auf irgendwas `
            Ja, das ist der ganze Code. Die Timerobjektvariable timeout wird mit setTimeout() gesetzt. Klicke mal auf "Zeige Javascript", dann siehst Du es.

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

            Support us

            ioBroker
            Community Adapters
            Donate

            823
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

            2
            4
            2340
            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