Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten

NEWS

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    5
    1
    67

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    839

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.4k

WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
esp8266 projektjavasriptjson stringmqtt-broker-client-adapternodemcu tasmota mqttrelay-switchtasmota 1wire
45 Posts 19 Posters 12.3k Views 28 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • HomoranH Homoran

    habt ihr euch mal bei stall.biz den wiffi-pump angesehen?

    NoschvieN Offline
    NoschvieN Offline
    Noschvie
    wrote on last edited by
    #36

    @homoran sagte in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

    habt ihr euch mal bei stall.biz den wiffi-pump angesehen?

    Der Algorithmus ist leider nicht Open Source, die Platine sieht eigentlich ganz gut und brauchbar aus.

    1 Reply Last reply
    0
    • H Offline
      H Offline
      h07d0q
      wrote on last edited by h07d0q
      #37

      @noschvie
      meine aktuelle Version habe ich minimal angepasst.

      //https://forum.iobroker.net/post/133815
      //VL
      const idTempVL = 'sonoff.0.HWR.DS18B20-2_Temperature';
      const iddTVL = '0_userdata.0.WWZirkulationspumpe.dTVL';
      const swOn = 0.7;  // Grenzwert in K/min
      var speedVL
      var speedVLold = 0;
      //RL
      const idTempRL = 'sonoff.0.HWR.DS18B20-1_Temperature';
      const iddTRL = '0_userdata.0.WWZirkulationspumpe.dTRL';
      const swOff = 0.3;  // Grenzwert in K/min
      var speedRL
      var speedRLold = 0;
      
      var timer = null, alarmTimer;
      var iAlarmTimer = 40*60000;   // Wenn die Pumpe außergewöhnlich lange läuft
      const minTime = 120000;   // Minimum Zeit in Millisekunden, welche die Pumpe laufen soll, bevor abgeschalten werden kann (TRL ist noch unter swOff)
      const minTemp = 38;      // Minimum Temperatur, bevor die Pumpe wieder läuft
      const minPercent = 0.8;  // Minimum Prozent von RL/VL bevor abgeschalten wird
      var checkMinTimeErreicht = false;      // Check für minTime
      var checkMinSpeedVL = 1;         // Check für minimalen speedVL für Ausschalten, sonst wird zu früh abgeschalten
      var h1, h2
      const idAktor = 'sonoff.0.HWR.POWER2';
      var aktor = getState(idAktor).val;
      on({id: idAktor, ack: true}, function(dp) {aktor = dp.state.val;});
      
      // Erweiterter Log im ioBroker
      const LOG_INFO = true;    // Informationen loggen
      const LOG_DEBUG = false;   // Erweiterter Log für Debugging
      const Telegram_DEBUG = false;   // Erweiterter Log für Debugging
      
      
      //////////////////////////////////////////////////////////
      /* Einschalten bei steigender Vorlauftemperatur */
      on(idTempVL, function(dp) {  // Triggern bei Wertänderung
         h1 = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // K/min
         speedVL = (h1 + speedVLold)/2;
         //if (LOG_DEBUG) console.debug(([Math.round(speedVL*100)/100,' speedVL = (',Math.round(h1*100)/100,' + ',Math.round(speedVLold*100)/100,')/2 K/min'].join('')));
         speedVLold = h1;
         if (speedVL < -5 || speedVL > 5) {return;}
         //if (LOG_DEBUG) console.debug((['state - oldState: ',dp.state.val,' - ',dp.oldState.val,' = ',Math.round((dp.state.val - dp.oldState.val)*100)/100].join('')));
         //if (LOG_DEBUG) console.debug((['TDiff: ',(dp.state.lc - dp.oldState.lc),'ms'].join('')));
         //if (LOG_DEBUG) console.debug(speedVL + ' K/min.');
         setState(iddTVL, Math.round(speedVL*1000)/1000, true);
         
         if (LOG_DEBUG) console.debug('VL: ' + speedVL + ' >= ' + swOn + ' & ' + !aktor + ' & ' + getState(idTempVL).val + ' <= ' + minTemp);
         if (speedVL >= swOn && !aktor && getState(idTempVL).val <= minTemp) {
            setState(idAktor,true);
            var messageText =['Zirkulationspumpe an.  (*dTVL: ',Math.round(speedVL*1000)/1000,', dTRL: ',Math.round(speedRL*1000)/1000,')'].join('');
            //if (Telegram_DEBUG) sendTo("telegram", "send", { text: messageText });
            if (LOG_INFO) console.log((messageText));
            
            /* Prüfung mit Alarm */
            if (!getState("0_userdata.0.Anwesenheit.Status.anyonePresent").val) {
                var messageText =['Zirkulationspumpe an, obwohl niemand da ist!\r\n(*dTVL: ',Math.round(speedVL*1000)/1000,', dTRL: ',Math.round(speedRL*1000)/1000,')'].join('');
                sendTo("telegram", "send", { text: messageText });
                console.error((messageText));
            }
            if (LOG_INFO) console.log(Math.round(speedVL*100)/100 + ' K/min');
            if (LOG_INFO) console.log('Temperatur ist um mehr als ' + swOn + ' K/min gestiegen.');
            //clearTimeout(timer);
            timer = setTimeout(function() {
                //if(aktor) setState(idAktor, false);
              checkMinTimeErreicht = true
            }, minTime);
            alarmTimer = setTimeout(function() {
              var messageText = 'speedRL: ' + Math.round(speedRL*1000)/1000 + ' <= ' + swOff + '\r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' > 0 \r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' > ' + Math.round(speedRLold*1000)/1000 + '(old)\r\naktor: ' + aktor + '\r\ncheckMinTimeErreicht: ' + checkMinTimeErreicht + '\r\nSpeedVl: ' + Math.round(speedVL*1000)/1000 + ' <= ' + checkMinSpeedVL + '\r\nRL/VL Temp: ' + (getState(idTempRL).val+4.0) + '/' + getState(idTempVL).val + ' = ' + Math.round(((getState(idTempRL).val+4.0)/getState(idTempVL).val)*100)/100 + ' > ' +  minPercent;
              sendTo("telegram", "send", { text: 'Zirkulationspumpe läuft seit mehr als ' + iAlarmTimer/60000 + ' Minuten!\r\n\r\n' + messageText });
            }, iAlarmTimer);
         }
      });
      
      /* Ausschalten bei fallender Rücklauftemperatur, nach minimaler Zeit, bei stagnierender Vorlauftemperatur */
      /* neu: minPercent */
      on(idTempRL, function(dp) {  // Triggern bei Wertänderung
          h2 = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // K/min
          speedRL = (h2 + speedRLold)/2;
          //if (LOG_DEBUG) console.debug(([Math.round(speedRL*100)/100,' speedRL = (',Math.round(h2*100)/100,' + ',Math.round(speedRLold*100)/100,')/2 K/min'].join('')));
          speedRLold = h2;
          if (speedRL < -5 || speedRL > 5) {return;}
          setState(iddTRL, Math.round(speedRL*1000)/1000, true);
          var messageText = 'speedRL: ' + Math.round(speedRL*1000)/1000 + ' <= ' + swOff + '\r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' > 0 (deaktiviert) \r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' < ' + Math.round(speedRLold*1000)/1000 + '(old)\r\naktor: ' + aktor + '\r\ncheckMinTimeErreicht: ' + checkMinTimeErreicht + '\r\nSpeedVl: ' + Math.round(speedVL*1000)/1000 + ' <= ' + checkMinSpeedVL + '\r\nRL/VL Temp: ' + (getState(idTempRL).val+4.0) + '/' + getState(idTempVL).val + ' = ' + Math.round(((getState(idTempRL).val+4.0)/getState(idTempVL).val)*100)/100 + ' > ' +  minPercent;
          if (LOG_DEBUG) console.debug('RL! ' + messageText);
          //if(speedRL <= swOff && speedRL > 0 && speedRL < speedRLold && aktor && checkMinTimeErreicht && speedVL <= checkMinSpeedVL && (getState(idTempRL).val/getState(idTempVL).val) > minPercent) {
          if(speedRL <= swOff && speedRL < speedRLold && aktor && checkMinTimeErreicht && speedVL <= checkMinSpeedVL && (getState(idTempRL).val/getState(idTempVL).val) > minPercent) {
              clearTimeout(timer);
              checkMinTimeErreicht = false
              setState(idAktor,false);
              messageText = 'Zirkulationspumpe aus\r\n' + messageText
              if (Telegram_DEBUG) sendTo("telegram", "send", { text: messageText });
              if (LOG_INFO) console.log((messageText));
              clearTimeout(alarmTimer);
          }
      });
      
      //Debug
      /*
      if (LOG_DEBUG) {
      on({id: new RegExp(idTempVL + "$|" + idTempRL + "$"), change: "ne"}, async function (obj) {
          console.debug((['(dTVL: ',Math.round(speedVL*1000)/1000,', dTRL: ',Math.round(speedRL*1000)/1000,', aktor: ',aktor,', timeout: ',checkMinTimeErreicht ,')'].join('')));
      });
      }
      */
      

      Das läuft so jetzt schon seit mehr als zwei Jahren und meine Frau hat sich nicht beschwert 😁 Die Infos per Telegram müsste ich eigentlich mal einstampfen. Der Alarm bei zu langer Laufzeit ist auf jeden Fall hilfreich, manchmal ist es in Fehlalarm, wenn der Aktor seit der Aktivierung keine WLAN Verbindung hat z.B.. Wie oben schon erwähnt, ist es nicht zu erwarten, dass beim Zapfen direkt Heißwasser kommt, aber nach kurzer Zeit, oder wenn man kurz zapft und dann wartet.

      NoschvieN 1 Reply Last reply
      1
      • H h07d0q

        @noschvie
        meine aktuelle Version habe ich minimal angepasst.

        //https://forum.iobroker.net/post/133815
        //VL
        const idTempVL = 'sonoff.0.HWR.DS18B20-2_Temperature';
        const iddTVL = '0_userdata.0.WWZirkulationspumpe.dTVL';
        const swOn = 0.7;  // Grenzwert in K/min
        var speedVL
        var speedVLold = 0;
        //RL
        const idTempRL = 'sonoff.0.HWR.DS18B20-1_Temperature';
        const iddTRL = '0_userdata.0.WWZirkulationspumpe.dTRL';
        const swOff = 0.3;  // Grenzwert in K/min
        var speedRL
        var speedRLold = 0;
        
        var timer = null, alarmTimer;
        var iAlarmTimer = 40*60000;   // Wenn die Pumpe außergewöhnlich lange läuft
        const minTime = 120000;   // Minimum Zeit in Millisekunden, welche die Pumpe laufen soll, bevor abgeschalten werden kann (TRL ist noch unter swOff)
        const minTemp = 38;      // Minimum Temperatur, bevor die Pumpe wieder läuft
        const minPercent = 0.8;  // Minimum Prozent von RL/VL bevor abgeschalten wird
        var checkMinTimeErreicht = false;      // Check für minTime
        var checkMinSpeedVL = 1;         // Check für minimalen speedVL für Ausschalten, sonst wird zu früh abgeschalten
        var h1, h2
        const idAktor = 'sonoff.0.HWR.POWER2';
        var aktor = getState(idAktor).val;
        on({id: idAktor, ack: true}, function(dp) {aktor = dp.state.val;});
        
        // Erweiterter Log im ioBroker
        const LOG_INFO = true;    // Informationen loggen
        const LOG_DEBUG = false;   // Erweiterter Log für Debugging
        const Telegram_DEBUG = false;   // Erweiterter Log für Debugging
        
        
        //////////////////////////////////////////////////////////
        /* Einschalten bei steigender Vorlauftemperatur */
        on(idTempVL, function(dp) {  // Triggern bei Wertänderung
           h1 = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // K/min
           speedVL = (h1 + speedVLold)/2;
           //if (LOG_DEBUG) console.debug(([Math.round(speedVL*100)/100,' speedVL = (',Math.round(h1*100)/100,' + ',Math.round(speedVLold*100)/100,')/2 K/min'].join('')));
           speedVLold = h1;
           if (speedVL < -5 || speedVL > 5) {return;}
           //if (LOG_DEBUG) console.debug((['state - oldState: ',dp.state.val,' - ',dp.oldState.val,' = ',Math.round((dp.state.val - dp.oldState.val)*100)/100].join('')));
           //if (LOG_DEBUG) console.debug((['TDiff: ',(dp.state.lc - dp.oldState.lc),'ms'].join('')));
           //if (LOG_DEBUG) console.debug(speedVL + ' K/min.');
           setState(iddTVL, Math.round(speedVL*1000)/1000, true);
           
           if (LOG_DEBUG) console.debug('VL: ' + speedVL + ' >= ' + swOn + ' & ' + !aktor + ' & ' + getState(idTempVL).val + ' <= ' + minTemp);
           if (speedVL >= swOn && !aktor && getState(idTempVL).val <= minTemp) {
              setState(idAktor,true);
              var messageText =['Zirkulationspumpe an.  (*dTVL: ',Math.round(speedVL*1000)/1000,', dTRL: ',Math.round(speedRL*1000)/1000,')'].join('');
              //if (Telegram_DEBUG) sendTo("telegram", "send", { text: messageText });
              if (LOG_INFO) console.log((messageText));
              
              /* Prüfung mit Alarm */
              if (!getState("0_userdata.0.Anwesenheit.Status.anyonePresent").val) {
                  var messageText =['Zirkulationspumpe an, obwohl niemand da ist!\r\n(*dTVL: ',Math.round(speedVL*1000)/1000,', dTRL: ',Math.round(speedRL*1000)/1000,')'].join('');
                  sendTo("telegram", "send", { text: messageText });
                  console.error((messageText));
              }
              if (LOG_INFO) console.log(Math.round(speedVL*100)/100 + ' K/min');
              if (LOG_INFO) console.log('Temperatur ist um mehr als ' + swOn + ' K/min gestiegen.');
              //clearTimeout(timer);
              timer = setTimeout(function() {
                  //if(aktor) setState(idAktor, false);
                checkMinTimeErreicht = true
              }, minTime);
              alarmTimer = setTimeout(function() {
                var messageText = 'speedRL: ' + Math.round(speedRL*1000)/1000 + ' <= ' + swOff + '\r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' > 0 \r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' > ' + Math.round(speedRLold*1000)/1000 + '(old)\r\naktor: ' + aktor + '\r\ncheckMinTimeErreicht: ' + checkMinTimeErreicht + '\r\nSpeedVl: ' + Math.round(speedVL*1000)/1000 + ' <= ' + checkMinSpeedVL + '\r\nRL/VL Temp: ' + (getState(idTempRL).val+4.0) + '/' + getState(idTempVL).val + ' = ' + Math.round(((getState(idTempRL).val+4.0)/getState(idTempVL).val)*100)/100 + ' > ' +  minPercent;
                sendTo("telegram", "send", { text: 'Zirkulationspumpe läuft seit mehr als ' + iAlarmTimer/60000 + ' Minuten!\r\n\r\n' + messageText });
              }, iAlarmTimer);
           }
        });
        
        /* Ausschalten bei fallender Rücklauftemperatur, nach minimaler Zeit, bei stagnierender Vorlauftemperatur */
        /* neu: minPercent */
        on(idTempRL, function(dp) {  // Triggern bei Wertänderung
            h2 = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // K/min
            speedRL = (h2 + speedRLold)/2;
            //if (LOG_DEBUG) console.debug(([Math.round(speedRL*100)/100,' speedRL = (',Math.round(h2*100)/100,' + ',Math.round(speedRLold*100)/100,')/2 K/min'].join('')));
            speedRLold = h2;
            if (speedRL < -5 || speedRL > 5) {return;}
            setState(iddTRL, Math.round(speedRL*1000)/1000, true);
            var messageText = 'speedRL: ' + Math.round(speedRL*1000)/1000 + ' <= ' + swOff + '\r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' > 0 (deaktiviert) \r\nspeedRL: ' + Math.round(speedRL*1000)/1000 + ' < ' + Math.round(speedRLold*1000)/1000 + '(old)\r\naktor: ' + aktor + '\r\ncheckMinTimeErreicht: ' + checkMinTimeErreicht + '\r\nSpeedVl: ' + Math.round(speedVL*1000)/1000 + ' <= ' + checkMinSpeedVL + '\r\nRL/VL Temp: ' + (getState(idTempRL).val+4.0) + '/' + getState(idTempVL).val + ' = ' + Math.round(((getState(idTempRL).val+4.0)/getState(idTempVL).val)*100)/100 + ' > ' +  minPercent;
            if (LOG_DEBUG) console.debug('RL! ' + messageText);
            //if(speedRL <= swOff && speedRL > 0 && speedRL < speedRLold && aktor && checkMinTimeErreicht && speedVL <= checkMinSpeedVL && (getState(idTempRL).val/getState(idTempVL).val) > minPercent) {
            if(speedRL <= swOff && speedRL < speedRLold && aktor && checkMinTimeErreicht && speedVL <= checkMinSpeedVL && (getState(idTempRL).val/getState(idTempVL).val) > minPercent) {
                clearTimeout(timer);
                checkMinTimeErreicht = false
                setState(idAktor,false);
                messageText = 'Zirkulationspumpe aus\r\n' + messageText
                if (Telegram_DEBUG) sendTo("telegram", "send", { text: messageText });
                if (LOG_INFO) console.log((messageText));
                clearTimeout(alarmTimer);
            }
        });
        
        //Debug
        /*
        if (LOG_DEBUG) {
        on({id: new RegExp(idTempVL + "$|" + idTempRL + "$"), change: "ne"}, async function (obj) {
            console.debug((['(dTVL: ',Math.round(speedVL*1000)/1000,', dTRL: ',Math.round(speedRL*1000)/1000,', aktor: ',aktor,', timeout: ',checkMinTimeErreicht ,')'].join('')));
        });
        }
        */
        

        Das läuft so jetzt schon seit mehr als zwei Jahren und meine Frau hat sich nicht beschwert 😁 Die Infos per Telegram müsste ich eigentlich mal einstampfen. Der Alarm bei zu langer Laufzeit ist auf jeden Fall hilfreich, manchmal ist es in Fehlalarm, wenn der Aktor seit der Aktivierung keine WLAN Verbindung hat z.B.. Wie oben schon erwähnt, ist es nicht zu erwarten, dass beim Zapfen direkt Heißwasser kommt, aber nach kurzer Zeit, oder wenn man kurz zapft und dann wartet.

        NoschvieN Offline
        NoschvieN Offline
        Noschvie
        wrote on last edited by
        #38

        @h07d0q sagte in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

        meine aktuelle Version

        Danke! Möchte gerne Zeit investieren und diesen Algorithmus unter Tasmota mit Berry implementieren... mal sehen, ob ChatGPT dafür eine Hilfe ist.

        H 1 Reply Last reply
        0
        • NoschvieN Noschvie

          @h07d0q sagte in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

          meine aktuelle Version

          Danke! Möchte gerne Zeit investieren und diesen Algorithmus unter Tasmota mit Berry implementieren... mal sehen, ob ChatGPT dafür eine Hilfe ist.

          H Offline
          H Offline
          h07d0q
          wrote on last edited by
          #39

          @noschvie said in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

          mal sehen, ob ChatGPT dafür eine Hilfe ist.

          Viel Erfolg 😬

          NoschvieN 1 Reply Last reply
          0
          • H h07d0q

            @noschvie said in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

            mal sehen, ob ChatGPT dafür eine Hilfe ist.

            Viel Erfolg 😬

            NoschvieN Offline
            NoschvieN Offline
            Noschvie
            wrote on last edited by
            #40

            @h07d0q die Analyse durch ChatGPT findest du hier:
            https://gist.github.com/Noschvie/239cfa9c463f940ff0bd7a9bdc1bdebe

            Nun geht's an die Transferierung bzw. Konvertierung nach Berry auf ein Tasmota Device...

            H 1 Reply Last reply
            1
            • NoschvieN Noschvie

              @h07d0q die Analyse durch ChatGPT findest du hier:
              https://gist.github.com/Noschvie/239cfa9c463f940ff0bd7a9bdc1bdebe

              Nun geht's an die Transferierung bzw. Konvertierung nach Berry auf ein Tasmota Device...

              H Offline
              H Offline
              h07d0q
              wrote on last edited by
              #41

              @noschvie said in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

              geht's

              Ohh interessant! Vor allem, dass es vermutlich auch über Rules gehen würde, allerdings vermisse ich den Teil der Rücklauftemperatur-Überwachung zur Abschaltung...

              Schon komisch so eine detaillierte Analyse seines zusammengefrickelten Codes zu lesen😁

              NoschvieN 1 Reply Last reply
              0
              • H h07d0q

                @noschvie said in WW Zirkulationspumpe bedarfsgerecht ein- und ausschalten:

                geht's

                Ohh interessant! Vor allem, dass es vermutlich auch über Rules gehen würde, allerdings vermisse ich den Teil der Rücklauftemperatur-Überwachung zur Abschaltung...

                Schon komisch so eine detaillierte Analyse seines zusammengefrickelten Codes zu lesen😁

                NoschvieN Offline
                NoschvieN Offline
                Noschvie
                wrote on last edited by
                #42

                @h07d0q der Berry Code ist fehlerhaft, was die Syntax betrifft. Aber ich komme trotzdem weiter, durch Nachfragen und google...
                Habe mir eine Berry Class erstellt zum Tracken der Vor- und Rücklauf-Temperatur und zum Berechnen der Speed usw... es dauert weil unerfahren mit Berry, aber es wird...
                In welchem Intervall werden bei dir die Trigger Funktionen aufgerufen?

                NoschvieN 1 Reply Last reply
                0
                • NoschvieN Noschvie

                  @h07d0q der Berry Code ist fehlerhaft, was die Syntax betrifft. Aber ich komme trotzdem weiter, durch Nachfragen und google...
                  Habe mir eine Berry Class erstellt zum Tracken der Vor- und Rücklauf-Temperatur und zum Berechnen der Speed usw... es dauert weil unerfahren mit Berry, aber es wird...
                  In welchem Intervall werden bei dir die Trigger Funktionen aufgerufen?

                  NoschvieN Offline
                  NoschvieN Offline
                  Noschvie
                  wrote on last edited by
                  #43

                  Hab's gefunden: die Trigger Funktionen werden im Inerval von 10 Sekunden aufgerufen.

                  H 1 Reply Last reply
                  0
                  • NoschvieN Noschvie

                    Hab's gefunden: die Trigger Funktionen werden im Inerval von 10 Sekunden aufgerufen.

                    H Offline
                    H Offline
                    h07d0q
                    wrote on last edited by
                    #44

                    @noschvie oh sorry, deine Frage im letzten Post habe ich übersehen.. die Trigger reagieren auf Wertänderung der States vom Tasmota Sensor. Da dieser im Standard alle 10s abgerufen wird, sollte das nicht in meinem Code stehen, da dort die Zeit zwischen neuem und allem Trigger zum Rechnen verwendet wird und nicht starre 10s. Ich könnte mir vermutlich eine eigene Tasmota Firmware kompilieren, welche die Sensoren öfter über MQTT raushaut, aber es funktioniert auch so ausreichend gut.

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mf2105
                      wrote on last edited by
                      #45

                      @alk tldr, wollte ich auch mal so lösen. Inzwischen stehen einfach ein Echo DOT bzw Plus (mit Zigbee) in Küche und Bad (u.a.), die auch das Licht, Musik, Radio, Rolläden steuern und die Türklingel (Ring) signalisieren.
                      An der WWZP ist einfach eine Zigbee- Steckdose zwischengesteckt. Wenn nun jmd WW braucht sagt man einfach "Alexa, Wasser" und die ZP läuft für 1min und gut ist..
                      Mehr Energie kann man glaube ich nicht sparen...

                      1 Reply Last reply
                      1

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      306

                      Online

                      32.8k

                      Users

                      82.7k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe