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. JavaScript
  5. js asynchron Problem

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

js asynchron Problem

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
3 Beiträge 2 Kommentatoren 176 Aufrufe 2 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.
  • hanssH Offline
    hanssH Offline
    hanss
    schrieb am zuletzt editiert von
    #1

    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.

    paul53P 1 Antwort Letzte Antwort
    0
    • hanssH hanss

      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.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

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

      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
      • hanssH Offline
        hanssH Offline
        hanss
        schrieb am zuletzt editiert von
        #3

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

        787

        Online

        32.5k

        Benutzer

        81.7k

        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