Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. js asynchron Problem

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    js asynchron Problem

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

      Hallo,
      wie kann man dieses Problem am elegantesten lösen?

      Hier schalte ich das Gartenwasser ein, bzw. über VIS:

      // GW EIN
      setState("mqtt.0.haus.keller.HumiFan.Setpoints.Gartenwasser",'true')
      

      unmittelbar danach steht folgender Code:

      // Schaltet Gartenwasser Timer ein wenn GW aus war, schaltet Gartenwasser aus wenn GW ein war
      // GW TIMER
      var update;
      on({id: "mqtt.0.haus.keller.HumiFan.Setpoints.Gartenwasser", change: "ne"}, function (obj) {
              if ( obj.state.val == true){
                      clearTimeout(update);
                      update = setTimeout(function () {            // Ausschalt Timer
                          setState("mqtt.0.haus.keller.HumiFan.Setpoints.Gartenwasser", 'false');     // Gartenwasser ausschalten
                      },30 * 60 * 1000);                           // Ausschaltzeit in ms 30 * 60 * 1000
              } else {
                      clearTimeout(update);
                      setState("mqtt.0.haus.keller.HumiFan.Setpoints.Gartenwasser", 'false');     // Gartenwasser ausschalten
              }
      });  
      
      

      Das Problem ist nun:
      Wenn ich mit "GW EIN" das Gartenwasser einschalte, dann wird es sofort danach
      mit "// GW TIMER" wieder ausgeschaltet, weil der setState noch nicht ausgeführt worden ist.

      Ich hoffe, es gibt eine kurze und übersichtliche Lösung dafür, alles was mir bisher dazu eingefallen ist
      sieht fürchterlich umständlich und unübersichtlich aus.

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

        @hanss sagte:

        wird es sofort danach mit "// GW TIMER" wieder ausgeschaltet, weil der setState noch nicht ausgeführt worden ist.

        Nein, weil immer der else-Zweig ausgeführt wird, denn 'true' ist nicht gleich true.

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

          Hallo Paul,
          Du hast wie immer recht.
          Mein Problem ist 'true' oder true.
          Schau dir bitte den Beitrag an:
          https://forum.iobroker.net/topic/33480/js-mqtt-string-objekt-setstate-true-oder-true

          Ich meine, das ist mein eigentliches Problem.
          Vielen Dank

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

          Support us

          ioBroker
          Community Adapters
          Donate

          571
          Online

          31.6k
          Users

          79.5k
          Topics

          1.3m
          Posts

          javascript
          2
          3
          156
          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