Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Pause zwischen 2 Befehlen

NEWS

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

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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Pause zwischen 2 Befehlen

Geplant Angeheftet Gesperrt Verschoben JavaScript
7 Beiträge 3 Kommentatoren 1.3k Aufrufe 2 Beobachtet
  • Ä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.
  • T Offline
    T Offline
    thobastian
    schrieb am zuletzt editiert von
    #1

    Immer wenn die Bodenfeuchtigkeit zu gering ist, soll eine Message an Telegram gesendet werden.
    Dann soll wieder in einer Stunde getestet werden.
    Aber es funktioniert nicht.
    Diese Meldung kommt: "script.js.Pflanzenmelder: Invalid callback for setTimeout! - string"
    Jemand eine Idee?

    // Ist die Pflanze gegossen ? 
    var request = require('request');
    var fs      = require('fs');
    
    on({id: "ble.0.c4:7c:8d:6b:12:c1.moisture", change: 'any'}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val;
      if (Wasserstatus < '40') {
      sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !');
      //sendTo('telegram.0', '@Nicole Hallo! Ich will gegossen werden !')
    function time_out() {
    		history.back();
    	}
    	to = setTimeout("time_out()", 3600000);
      
      };
    });
    

    HW: Homematic CCU2, Amazon Echo, diverse NodeMCU's mit Sensoren,

    SW: IOBroker: immer neueste Version mit ESPEasy auf den NodeMCU's

    paul53P 2 Antworten Letzte Antwort
    0
    • T thobastian

      Immer wenn die Bodenfeuchtigkeit zu gering ist, soll eine Message an Telegram gesendet werden.
      Dann soll wieder in einer Stunde getestet werden.
      Aber es funktioniert nicht.
      Diese Meldung kommt: "script.js.Pflanzenmelder: Invalid callback for setTimeout! - string"
      Jemand eine Idee?

      // Ist die Pflanze gegossen ? 
      var request = require('request');
      var fs      = require('fs');
      
      on({id: "ble.0.c4:7c:8d:6b:12:c1.moisture", change: 'any'}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val;
        if (Wasserstatus < '40') {
        sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !');
        //sendTo('telegram.0', '@Nicole Hallo! Ich will gegossen werden !')
      function time_out() {
      		history.back();
      	}
      	to = setTimeout("time_out()", 3600000);
        
        };
      });
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @thobastian

      1. Wozu dienen die require() ?
      2. Wo ist history.back() deklariert ?
      3. Wenn man etwas zyklisch ausführt, benötigt man auch eine Abbruch-Bedingung
      4. Richtig:
      setTimeout(time_out, 3600000);
      

      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
      • T thobastian

        Immer wenn die Bodenfeuchtigkeit zu gering ist, soll eine Message an Telegram gesendet werden.
        Dann soll wieder in einer Stunde getestet werden.
        Aber es funktioniert nicht.
        Diese Meldung kommt: "script.js.Pflanzenmelder: Invalid callback for setTimeout! - string"
        Jemand eine Idee?

        // Ist die Pflanze gegossen ? 
        var request = require('request');
        var fs      = require('fs');
        
        on({id: "ble.0.c4:7c:8d:6b:12:c1.moisture", change: 'any'}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val;
          if (Wasserstatus < '40') {
          sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !');
          //sendTo('telegram.0', '@Nicole Hallo! Ich will gegossen werden !')
        function time_out() {
        		history.back();
        	}
        	to = setTimeout("time_out()", 3600000);
          
          };
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @thobastian sagte:

        Dann soll wieder in einer Stunde getestet werden.

        Mache es mit einem Intervall.

        Blockly_temp.JPG

        <xml xmlns="http://www.w3.org/1999/xhtml">
         <variables>
           <variable type="undefined" id="Intervall">Intervall</variable>
         </variables>
         <block type="procedures_defnoreturn" id="lWiM3/mwpPn}ln}qZ]%*" x="488" y="-63">
           <field name="NAME">giessen</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           <statement name="STACK">
             <block type="telegram" id="MD4a;3_/7bR{_T/^lx5g">
               <field name="INSTANCE"></field>
               <field name="LOG"></field>
               <field name="SILENT">FALSE</field>
               <field name="PARSEMODE">default</field>
               <value name="MESSAGE">
                 <shadow type="text" id="S/IVQw3cmKH*7AW.`v^X">
                   <field name="TEXT">text</field>
                 </shadow>
               </value>
             </block>
           </statement>
         </block>
         <block type="on" id="~A+JOfB}FDh{n7SG{/ZJ" x="138" y="-37">
           <field name="OID">Object ID</field>
           <field name="CONDITION">ne</field>
           <field name="ACK_CONDITION"></field>
           <statement name="STATEMENT">
             <block type="controls_if" id="(Qix8$JP7X$Yb8J[p`(P">
               <mutation elseif="1"></mutation>
               <value name="IF0">
                 <block type="logic_compare" id="|}[M-|9YBQh(;vU+hP!+">
                   <field name="OP">LT</field>
                   <value name="A">
                     <block type="on_source" id=",BGiVd=DJY8vGwNOU{R?">
                       <field name="ATTR">state.val</field>
                     </block>
                   </value>
                   <value name="B">
                     <block type="math_number" id="tWyF(NV){lU1Lp;42Y_L">
                       <field name="NUM">40</field>
                     </block>
                   </value>
                 </block>
               </value>
               <statement name="DO0">
                 <block type="controls_if" id="t~[yi.`v0u4|T8dirQO#">
                   <value name="IF0">
                     <block type="logic_negate" id="z;G(pQw8bq,`bKg6R[Rv">
                       <value name="BOOL">
                         <block type="variables_get" id=",k?p%5tC35`4F-I95*eF">
                           <field name="VAR" id="Intervall" variabletype="undefined">Intervall</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="procedures_callnoreturn" id="s;GBAm_zaw$+lcOcNnRO">
                       <mutation name="giessen"></mutation>
                       <next>
                         <block type="timeouts_setinterval" id="Np!maX1^/:50w!9TZ8^J">
                           <field name="NAME">Intervall</field>
                           <field name="INTERVAL">60</field>
                           <field name="UNIT">min</field>
                           <statement name="STATEMENT">
                             <block type="procedures_callnoreturn" id="HRk//@9dOqmvxQO0HlF.">
                               <mutation name="giessen"></mutation>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </statement>
               <value name="IF1">
                 <block type="logic_compare" id="X64OcEwqO.;ge}J{THp}">
                   <field name="OP">GT</field>
                   <value name="A">
                     <block type="on_source" id="b)?JK,gE?s{1,luj]|+w">
                       <field name="ATTR">state.val</field>
                     </block>
                   </value>
                   <value name="B">
                     <block type="math_number" id="U(rvuM%7[]/16Uq~HjPB">
                       <field name="NUM">45</field>
                     </block>
                   </value>
                 </block>
               </value>
               <statement name="DO1">
                 <block type="timeouts_clearinterval" id="+i*(P``Kvpn:6-J*J[Y9">
                   <field name="NAME">Intervall</field>
                 </block>
               </statement>
             </block>
           </statement>
         </block>
        </xml>
        

        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
        • T Offline
          T Offline
          thobastian
          schrieb am zuletzt editiert von
          #4

          @paul53 sagte in Pause zwischen 2 Befehlen:

          setTimeout(time_out, 3600000);

          Wie kann ich das im Script einfach machen ?
          Hast Du ein Beispiel mit Settmieout?

          HW: Homematic CCU2, Amazon Echo, diverse NodeMCU's mit Sensoren,

          SW: IOBroker: immer neueste Version mit ESPEasy auf den NodeMCU's

          paul53P 1 Antwort Letzte Antwort
          0
          • T thobastian

            @paul53 sagte in Pause zwischen 2 Befehlen:

            setTimeout(time_out, 3600000);

            Wie kann ich das im Script einfach machen ?
            Hast Du ein Beispiel mit Settmieout?

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

            @thobastian sagte in Pause zwischen 2 Befehlen:

            Wie kann ich das im Script einfach machen ?

            var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val;
            var timer = null;
            
            function time_out() {
              if (Wasserstatus < 43) {
                sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !');
                //sendTo('telegram.0', '@Nicole Hallo! Ich will gegossen werden !')
                timer = setTimeout(time_out, 3600000);
              } else timer = null;
            }
            
            time_out(); // Script start
            on("ble.0.c4:7c:8d:6b:12:c1.moisture", function (obj) { // Wertänderung
              Wasserstatus = obj.state.val;
              if(Wasserstatus < 40 && !timer) time_out();
            });
            

            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
            • GaspodeG Offline
              GaspodeG Offline
              Gaspode
              schrieb am zuletzt editiert von
              #6

              Mir ist nicht so 100%ig klar, was du eigentlich willst, aber wenn es darum geht, jede Stunde die Feuchtigkeit zu prüfen, wäre schedule die einfachste Lösung. So würde dein Script zu jeder vollen Stunde ausgeführt:

              schedule({'0 * * * *'}, function(){
                  var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val;
                  if (Wasserstatus < '40') {
                      sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !');
                  }
              });
              
              T 1 Antwort Letzte Antwort
              0
              • GaspodeG Gaspode

                Mir ist nicht so 100%ig klar, was du eigentlich willst, aber wenn es darum geht, jede Stunde die Feuchtigkeit zu prüfen, wäre schedule die einfachste Lösung. So würde dein Script zu jeder vollen Stunde ausgeführt:

                schedule({'0 * * * *'}, function(){
                    var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val;
                    if (Wasserstatus < '40') {
                        sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !');
                    }
                });
                
                T Offline
                T Offline
                thobastian
                schrieb am zuletzt editiert von
                #7

                @Alexi Hallo Alexi, ja, das hast Du Recht. Die Programmierung ist auch sauberer. Danke!

                HW: Homematic CCU2, Amazon Echo, diverse NodeMCU's mit Sensoren,

                SW: IOBroker: immer neueste Version mit ESPEasy auf den NodeMCU's

                1 Antwort Letzte Antwort
                0

                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                Registrieren Anmelden
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                382

                Online

                32.8k

                Benutzer

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