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. Skripten / Logik
  4. [erledigt] Blockly-Script - alle Lichter ausschalten nach "Doppelklick"

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 2 Kommentatoren 2.4k Aufrufe 1 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.
  • L Offline
    L Offline
    Leseratte10
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      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

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        Leseratte10
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

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

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          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

          661

          Online

          32.4k

          Benutzer

          81.5k

          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