Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei Skript

NEWS

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

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

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

Hilfe bei Skript

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
21 Beiträge 3 Kommentatoren 1.2k 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.
  • Dominik F.D Offline
    Dominik F.D Offline
    Dominik F.
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich versuche ein Skript zu schreiben, dass die Pumpe meines Pools überwacht. Wenn die Leistung der Pumpe einen gewissen Wert für z.B. 10 Sekunden unterschreitet, in diesem Fall zu Testzwecken 600 Watt, dann soll die Poolpumpe ausgeschaltet werden.
    Das ganze funktioniert soweit auch, nur wird dauernd geloggt, was mir zeigt das irgendwas noch nicht ganz richtig ist. Könnte da nochmal jemand drüber schauen?

    
    //Variablen
    const logging = true;
    const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/
    const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/
    var Power_Poolpumpe = getState(id_Power_Poolpumpe).val;
    var Poolpumpe = getState(id_Poolpumpe).val;
    
    //Ab hier eigentliches Script
    var timer = null;
    
    function Ueberwachung() {
        if (Power_Poolpumpe < 600 && Poolpumpe == true) {
            timer = setTimeout(function () {
                setState(id_Poolpumpe, false);
                if (logging){log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen')};
            }, 10000);  // 10 Sekunden
        }
    };
    
    Ueberwachung(); // Skripstart
    
    on({ id: id_Power_Poolpumpe, change: "any" }, function (obj) {
        Power_Poolpumpe = obj.state.val;
        Ueberwachung();
    });
    
    
    18:23:06.203	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: registered 1 subscription and 0 schedules
    18:23:16.202	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:23:26.500	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:23:27.516	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:24:21.519	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:24:29.562	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:24:37.519	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:26:08.248	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:28:35.504	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:30:48.253	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:33:50.795	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:36:38.750	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:39:12.251	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    18:41:31.257	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
    
    F 1 Antwort Letzte Antwort
    0
    • Dominik F.D Dominik F.

      Hallo zusammen,

      ich versuche ein Skript zu schreiben, dass die Pumpe meines Pools überwacht. Wenn die Leistung der Pumpe einen gewissen Wert für z.B. 10 Sekunden unterschreitet, in diesem Fall zu Testzwecken 600 Watt, dann soll die Poolpumpe ausgeschaltet werden.
      Das ganze funktioniert soweit auch, nur wird dauernd geloggt, was mir zeigt das irgendwas noch nicht ganz richtig ist. Könnte da nochmal jemand drüber schauen?

      
      //Variablen
      const logging = true;
      const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/
      const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/
      var Power_Poolpumpe = getState(id_Power_Poolpumpe).val;
      var Poolpumpe = getState(id_Poolpumpe).val;
      
      //Ab hier eigentliches Script
      var timer = null;
      
      function Ueberwachung() {
          if (Power_Poolpumpe < 600 && Poolpumpe == true) {
              timer = setTimeout(function () {
                  setState(id_Poolpumpe, false);
                  if (logging){log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen')};
              }, 10000);  // 10 Sekunden
          }
      };
      
      Ueberwachung(); // Skripstart
      
      on({ id: id_Power_Poolpumpe, change: "any" }, function (obj) {
          Power_Poolpumpe = obj.state.val;
          Ueberwachung();
      });
      
      
      18:23:06.203	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: registered 1 subscription and 0 schedules
      18:23:16.202	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:23:26.500	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:23:27.516	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:24:21.519	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:24:29.562	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:24:37.519	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:26:08.248	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:28:35.504	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:30:48.253	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:33:50.795	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:36:38.750	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:39:12.251	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      18:41:31.257	info	javascript.0 (31835) script.js.common.Poolpumpe_Ueberwachung: Poolpumpe ausgeschaltet - Poolpumpe überprüfen
      
      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von
      #2

      @Dominik-F Du setzt zwar den DP, aktualisierst aber die Variable(Poolpumpe) dazu nicht

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      Dominik F.D 1 Antwort Letzte Antwort
      0
      • F fastfoot

        @Dominik-F Du setzt zwar den DP, aktualisierst aber die Variable(Poolpumpe) dazu nicht

        Dominik F.D Offline
        Dominik F.D Offline
        Dominik F.
        schrieb am zuletzt editiert von
        #3

        @fastfoot

        okay, und wie mache ich das ?

        F 1 Antwort Letzte Antwort
        0
        • Dominik F.D Dominik F.

          @fastfoot

          okay, und wie mache ich das ?

          F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von fastfoot
          #4

          @Dominik-F sagte in Hilfe bei Skript:

          @fastfoot

          okay, und wie mache ich das ?

          na, unterhalb von setState() im Trigger Poolpumpe =false;

          EDIT: nicht im Trigger, im timeout!

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          Dominik F.D 1 Antwort Letzte Antwort
          0
          • F fastfoot

            @Dominik-F sagte in Hilfe bei Skript:

            @fastfoot

            okay, und wie mache ich das ?

            na, unterhalb von setState() im Trigger Poolpumpe =false;

            EDIT: nicht im Trigger, im timeout!

            Dominik F.D Offline
            Dominik F.D Offline
            Dominik F.
            schrieb am zuletzt editiert von
            #5

            @fastfoot

            Sorry, ich bin ein Anfänger in Sachen Javascript. Es ist bestimmt total simple und wenn ich es sehe weiß ich was du meinst, aber ich stehe da gerade auf dem Schlauch^^

            F 1 Antwort Letzte Antwort
            0
            • Dominik F.D Dominik F.

              @fastfoot

              Sorry, ich bin ein Anfänger in Sachen Javascript. Es ist bestimmt total simple und wenn ich es sehe weiß ich was du meinst, aber ich stehe da gerade auf dem Schlauch^^

              F Offline
              F Offline
              fastfoot
              schrieb am zuletzt editiert von
              #6

              @Dominik-F sagte in Hilfe bei Skript:

              @fastfoot

              Sorry, ich bin ein Anfänger in Sachen Javascript. Es ist bestimmt total simple und wenn ich es sehe weiß ich was du meinst, aber ich stehe da gerade auf dem Schlauch^^

              Kein Thema, in Zeile 7 definierst(var=) und setzt du (getState() ) den Wert der Variablen Poolpumpe. In Zeile 13 fragst du den Verbrauch ab und ob die Poolpumpe an ist(=true), jedoch wird diese Variable nicht mehr verändert, obwohl du in Zeile 15 den Datenpunkt auf false setzt. Du musst also irgendwann den Status der Variablen wieder neu setzen, bevor dann in Zeile 13 dieser Status wieder geprüft werden kann. Das machst du am Besten, indem Du im Timeout die Variable auf false setzt. Damit sie auch irgendwann wieder true wird, habe ich noch einen Trigger für das Einschalten der Pumpe gesetzt. Ich bin nicht sicher, wie schnell die Poweranzeige über 600 geht, nachdem eingeschaltet wurde, falls der erste Wert unter 600 liegt, würde die Pumpe sofort wieder ausgeschaltet werden, das hat aber mit meiner Änderung nichts zu tun

               //Variablen
              const logging = true;
              const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/
              const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/
              var Power_Poolpumpe = getState(id_Power_Poolpumpe).val;
              var Poolpumpe = getState(id_Poolpumpe).val;
               
              //Ab hier eigentliches Script
              var timer = null;
               
              function Ueberwachung() {
                  if (Power_Poolpumpe < 600 && Poolpumpe == true) {
                      //verhindert erneutes Starten des Timeouts
                      Poolpumpe = false;
                      timer = setTimeout(function () {
                          setState(id_Poolpumpe, false);
                          if (logging){log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen')};
                      }, 1000);  // 10 Sekunden
                  }
              };
               
              Ueberwachung(); // Skripstart
              
              on({ id: id_Power_Poolpumpe, change: "any" }, function (obj) {
                      Power_Poolpumpe = obj.state.val;
                      Ueberwachung();
              });
              
              //setzt die Variable bei Änderung
              on({ id: id_Poolpumpe, change: "any" }, function (obj) {
                      Poolpumpe = obj.state.val;
              });
              

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              Dominik F.D 1 Antwort Letzte Antwort
              0
              • F fastfoot

                @Dominik-F sagte in Hilfe bei Skript:

                @fastfoot

                Sorry, ich bin ein Anfänger in Sachen Javascript. Es ist bestimmt total simple und wenn ich es sehe weiß ich was du meinst, aber ich stehe da gerade auf dem Schlauch^^

                Kein Thema, in Zeile 7 definierst(var=) und setzt du (getState() ) den Wert der Variablen Poolpumpe. In Zeile 13 fragst du den Verbrauch ab und ob die Poolpumpe an ist(=true), jedoch wird diese Variable nicht mehr verändert, obwohl du in Zeile 15 den Datenpunkt auf false setzt. Du musst also irgendwann den Status der Variablen wieder neu setzen, bevor dann in Zeile 13 dieser Status wieder geprüft werden kann. Das machst du am Besten, indem Du im Timeout die Variable auf false setzt. Damit sie auch irgendwann wieder true wird, habe ich noch einen Trigger für das Einschalten der Pumpe gesetzt. Ich bin nicht sicher, wie schnell die Poweranzeige über 600 geht, nachdem eingeschaltet wurde, falls der erste Wert unter 600 liegt, würde die Pumpe sofort wieder ausgeschaltet werden, das hat aber mit meiner Änderung nichts zu tun

                 //Variablen
                const logging = true;
                const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/
                const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/
                var Power_Poolpumpe = getState(id_Power_Poolpumpe).val;
                var Poolpumpe = getState(id_Poolpumpe).val;
                 
                //Ab hier eigentliches Script
                var timer = null;
                 
                function Ueberwachung() {
                    if (Power_Poolpumpe < 600 && Poolpumpe == true) {
                        //verhindert erneutes Starten des Timeouts
                        Poolpumpe = false;
                        timer = setTimeout(function () {
                            setState(id_Poolpumpe, false);
                            if (logging){log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen')};
                        }, 1000);  // 10 Sekunden
                    }
                };
                 
                Ueberwachung(); // Skripstart
                
                on({ id: id_Power_Poolpumpe, change: "any" }, function (obj) {
                        Power_Poolpumpe = obj.state.val;
                        Ueberwachung();
                });
                
                //setzt die Variable bei Änderung
                on({ id: id_Poolpumpe, change: "any" }, function (obj) {
                        Poolpumpe = obj.state.val;
                });
                
                Dominik F.D Offline
                Dominik F.D Offline
                Dominik F.
                schrieb am zuletzt editiert von
                #7

                @fastfoot

                Nun passiert das, was du im letzten Satz geschrieben hast. Die Poolpumpe geht sofort wieder aus.
                Ich schreibe nochmal etwas ausführlicher n paar Infos, die vielleicht helfen.
                Also wenn die Poolpumpe läuft, dann verbraucht sie ca 540-550 Watt. Schaltet man sie ein, dann dauert es ca 2-3 Sekunden, bis sie diesen Wert erreicht. Der Wert klettert dann quasi hoch. Wenn dann zuwenig Wasser im Pool ist und die Pumpe Luft zieht, dann geht die Leistung runter ( Der genaue Wert ist hier denke ich egal, irgendwas <500). Sobald aus der Wert unter 500 Watt geht, soll sich die Poolpumpe auotmatisch ausschalten. Da die Pumpe n paar Sekunden braucht bis sie Ihren Wert erreicht und vielleicht auch mal kurzzeitig nur Luft zieht, habe ich den Timer eingebaut von 10 Sekunden.
                Die Poolpumpe ansich läuft über einen Timer, der die Poolpumpe 3x täglich für 2h anschaltet.
                Die 600 hatte ich hier zu Testzwecken eingestellt um zu testen, ob die Poolpumpe sich überhaupt ausschaltet.

                paul53P 1 Antwort Letzte Antwort
                0
                • Dominik F.D Dominik F.

                  @fastfoot

                  Nun passiert das, was du im letzten Satz geschrieben hast. Die Poolpumpe geht sofort wieder aus.
                  Ich schreibe nochmal etwas ausführlicher n paar Infos, die vielleicht helfen.
                  Also wenn die Poolpumpe läuft, dann verbraucht sie ca 540-550 Watt. Schaltet man sie ein, dann dauert es ca 2-3 Sekunden, bis sie diesen Wert erreicht. Der Wert klettert dann quasi hoch. Wenn dann zuwenig Wasser im Pool ist und die Pumpe Luft zieht, dann geht die Leistung runter ( Der genaue Wert ist hier denke ich egal, irgendwas <500). Sobald aus der Wert unter 500 Watt geht, soll sich die Poolpumpe auotmatisch ausschalten. Da die Pumpe n paar Sekunden braucht bis sie Ihren Wert erreicht und vielleicht auch mal kurzzeitig nur Luft zieht, habe ich den Timer eingebaut von 10 Sekunden.
                  Die Poolpumpe ansich läuft über einen Timer, der die Poolpumpe 3x täglich für 2h anschaltet.
                  Die 600 hatte ich hier zu Testzwecken eingestellt um zu testen, ob die Poolpumpe sich überhaupt ausschaltet.

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

                  @Dominik-F
                  Vorschlag:

                  const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                  const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                  
                  on({id: id_Power_Poolpumpe, valLt: 500, oldValGe: 500}, function() {
                     setState(id_Poolpumpe, false);
                  });
                  

                  @Dominik-F sagte in Hilfe bei Skript:

                  vielleicht auch mal kurzzeitig nur Luft zieht, habe ich den Timer eingebaut von 10 Sekunden.

                  Wenn auch das berücksichtigt werden soll:

                  const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                  const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                  
                  var timer = null;
                  
                  on(id_Power_Poolpumpe, function(dp) {
                     if(dp.state.val < 500) {
                        if(dp.oldState.val >= 500) {
                           timer = setTimout( function() {
                              setState(id_Poolpumpe, false);
                           }, 10000);
                        }
                     } else if(timer) clearTimeout(timer);
                  });
                  

                  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

                  Dominik F.D 2 Antworten Letzte Antwort
                  0
                  • paul53P paul53

                    @Dominik-F
                    Vorschlag:

                    const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                    const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                    
                    on({id: id_Power_Poolpumpe, valLt: 500, oldValGe: 500}, function() {
                       setState(id_Poolpumpe, false);
                    });
                    

                    @Dominik-F sagte in Hilfe bei Skript:

                    vielleicht auch mal kurzzeitig nur Luft zieht, habe ich den Timer eingebaut von 10 Sekunden.

                    Wenn auch das berücksichtigt werden soll:

                    const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                    const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                    
                    var timer = null;
                    
                    on(id_Power_Poolpumpe, function(dp) {
                       if(dp.state.val < 500) {
                          if(dp.oldState.val >= 500) {
                             timer = setTimout( function() {
                                setState(id_Poolpumpe, false);
                             }, 10000);
                          }
                       } else if(timer) clearTimeout(timer);
                    });
                    
                    Dominik F.D Offline
                    Dominik F.D Offline
                    Dominik F.
                    schrieb am zuletzt editiert von
                    #9

                    @paul53

                    Bekomme folgende Fehlermeldung wenn ich das zweite Skript aktiviere:

                    javascript.0	2020-06-29 13:41:43.587	error	(31835) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                    javascript.0	2020-06-29 13:41:43.587	error	(31835) at runMicrotasks (<anonymous>)
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:608:33
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1112:17
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1521:17
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1468:37)
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1245:28)
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at Object.createScript (vm.js:263:10)
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) at new Script (vm.js:88:7)
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) SyntaxError: Unexpected token '{'
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) ^
                    javascript.0	2020-06-29 13:41:43.586	error	(31835) if(dp.oldState.val >= 500 {
                    javascript.0	2020-06-29 13:41:43.585	error	at script.js.common.Poolpumpe_Ueberwachung:8
                    javascript.0	2020-06-29 13:41:43.585	error	(31835) script.js.common.Poolpumpe_Ueberwachung compile failed:
                    
                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @Dominik-F
                      Vorschlag:

                      const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                      const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                      
                      on({id: id_Power_Poolpumpe, valLt: 500, oldValGe: 500}, function() {
                         setState(id_Poolpumpe, false);
                      });
                      

                      @Dominik-F sagte in Hilfe bei Skript:

                      vielleicht auch mal kurzzeitig nur Luft zieht, habe ich den Timer eingebaut von 10 Sekunden.

                      Wenn auch das berücksichtigt werden soll:

                      const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                      const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                      
                      var timer = null;
                      
                      on(id_Power_Poolpumpe, function(dp) {
                         if(dp.state.val < 500) {
                            if(dp.oldState.val >= 500) {
                               timer = setTimout( function() {
                                  setState(id_Poolpumpe, false);
                               }, 10000);
                            }
                         } else if(timer) clearTimeout(timer);
                      });
                      
                      Dominik F.D Offline
                      Dominik F.D Offline
                      Dominik F.
                      schrieb am zuletzt editiert von
                      #10

                      @paul53

                      Habe die Fehler glaube ich gefunden, so dass im log nix mehr angezeigt wird.
                      Wie kann ich nun testen ob alles funktioniert? Ich hab die Werte mal auf 600 gestellt aber es wird nix geschaltet

                      const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                      const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                      
                      var timer = null;
                      
                      on(id_Power_Poolpumpe, function (dp) {
                          if (dp.state.val < 600) {
                              if (dp.oldState.val >= 600) {
                                  timer = setTimeout(function () {
                                      setState(id_Poolpumpe, false);
                                  }, 10000);
                              }
                              else if (timer) clearTimeout(timer);
                          }
                      });
                      
                      
                      paul53P 2 Antworten Letzte Antwort
                      0
                      • Dominik F.D Dominik F.

                        @paul53

                        Habe die Fehler glaube ich gefunden, so dass im log nix mehr angezeigt wird.
                        Wie kann ich nun testen ob alles funktioniert? Ich hab die Werte mal auf 600 gestellt aber es wird nix geschaltet

                        const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                        const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                        
                        var timer = null;
                        
                        on(id_Power_Poolpumpe, function (dp) {
                            if (dp.state.val < 600) {
                                if (dp.oldState.val >= 600) {
                                    timer = setTimeout(function () {
                                        setState(id_Poolpumpe, false);
                                    }, 10000);
                                }
                                else if (timer) clearTimeout(timer);
                            }
                        });
                        
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #11

                        @Dominik-F sagte:

                        Ich hab die Werte mal auf 600 gestellt aber es wird nix geschaltet

                        Kann auch nicht, denn der Wert müsste erst über 600 gehen, damit beim Zurückgehen unter 600 abgeschaltet wird.
                        Die Pumpe wird abgeschaltet, wenn der Wert den Grenzwert(500) erstmalig unterschreitet und innerhalb von 10 s unterhalb des Grenzwertes bleibt.

                        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

                        Dominik F.D 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @Dominik-F sagte:

                          Ich hab die Werte mal auf 600 gestellt aber es wird nix geschaltet

                          Kann auch nicht, denn der Wert müsste erst über 600 gehen, damit beim Zurückgehen unter 600 abgeschaltet wird.
                          Die Pumpe wird abgeschaltet, wenn der Wert den Grenzwert(500) erstmalig unterschreitet und innerhalb von 10 s unterhalb des Grenzwertes bleibt.

                          Dominik F.D Offline
                          Dominik F.D Offline
                          Dominik F.
                          schrieb am zuletzt editiert von
                          #12

                          @paul53

                          Okay, das ist genau das was ich möchte. Was muss ich denn einstellen, damit er zu testzwecken abschaltet? oder muss ich dafür die Pumpe einmal kein Wasser ziehen lassen?

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • Dominik F.D Dominik F.

                            @paul53

                            Okay, das ist genau das was ich möchte. Was muss ich denn einstellen, damit er zu testzwecken abschaltet? oder muss ich dafür die Pumpe einmal kein Wasser ziehen lassen?

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

                            @Dominik-F sagte:

                            muss ich dafür die Pumpe einmal kein Wasser ziehen lassen?

                            Das ist der beste Test, denn zu diesem Zweck soll es dienen.

                            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

                            Dominik F.D 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @Dominik-F sagte:

                              muss ich dafür die Pumpe einmal kein Wasser ziehen lassen?

                              Das ist der beste Test, denn zu diesem Zweck soll es dienen.

                              Dominik F.D Offline
                              Dominik F.D Offline
                              Dominik F.
                              schrieb am zuletzt editiert von
                              #14

                              @paul53

                              Mir ist gerade aufgefallen, dass die Pumpe immer ausgeschaltet wird obwohl sie Wasser zieht und Power über 500 W war

                              1 Antwort Letzte Antwort
                              0
                              • Dominik F.D Dominik F.

                                @paul53

                                Habe die Fehler glaube ich gefunden, so dass im log nix mehr angezeigt wird.
                                Wie kann ich nun testen ob alles funktioniert? Ich hab die Werte mal auf 600 gestellt aber es wird nix geschaltet

                                const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                                const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                                
                                var timer = null;
                                
                                on(id_Power_Poolpumpe, function (dp) {
                                    if (dp.state.val < 600) {
                                        if (dp.oldState.val >= 600) {
                                            timer = setTimeout(function () {
                                                setState(id_Poolpumpe, false);
                                            }, 10000);
                                        }
                                        else if (timer) clearTimeout(timer);
                                    }
                                });
                                
                                
                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #15

                                @Dominik-F sagte:

                                        else if (timer) clearTimeout(timer);
                                    }
                                

                                Richtig (Zeile 13 und 14 vertauschen):

                                    }
                                    else if (timer) clearTimeout(timer);
                                

                                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

                                Dominik F.D 2 Antworten Letzte Antwort
                                0
                                • paul53P paul53

                                  @Dominik-F sagte:

                                          else if (timer) clearTimeout(timer);
                                      }
                                  

                                  Richtig (Zeile 13 und 14 vertauschen):

                                      }
                                      else if (timer) clearTimeout(timer);
                                  
                                  Dominik F.D Offline
                                  Dominik F.D Offline
                                  Dominik F.
                                  schrieb am zuletzt editiert von
                                  #16

                                  @paul53

                                  alles klar. ich werde es gleich mal testen und dann Rückmeldung geben. Vielen Dank schonmal.

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @Dominik-F sagte:

                                            else if (timer) clearTimeout(timer);
                                        }
                                    

                                    Richtig (Zeile 13 und 14 vertauschen):

                                        }
                                        else if (timer) clearTimeout(timer);
                                    
                                    Dominik F.D Offline
                                    Dominik F.D Offline
                                    Dominik F.
                                    schrieb am zuletzt editiert von Dominik F.
                                    #17

                                    @paul53

                                    Das Skript funktioniert soweit. Wenn man nun die Poolpumpe manuell ausschaltet, dann geht ja logischerweise die Leistung auf 0 und das Skript schaltet die Poolpumpe "nochmal" aus und gibt im Log aus, dass die Pumpe überprüft werden soll.
                                    Ich möchte später noch Pushnachrichten zu dem Skript hinzufügen (Sollte ich eigentlich selber hinbekommen) und das würde dann zur Verwirrung führen wenn ich 3 mal am Tag ne Nachricht bekomme das etwas mit der Pumpe nicht stimmt. Hast du ne Idee wie man das Problem lösen kann?

                                    Hier die aktuelle Version:

                                    const logging = true;
                                    const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                                    const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                                    
                                    var timer = null;
                                    
                                    on(id_Power_Poolpumpe, function (dp) {
                                        if (dp.state.val < 500) {
                                            if (dp.oldState.val >= 500) {
                                                timer = setTimeout(function () {
                                                    setState(id_Poolpumpe, false);
                                                    if (logging) { log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen') };
                                                }, 10000);
                                            }
                                        }
                                        else if (timer) clearTimeout(timer);
                                    
                                    });
                                    
                                    
                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • Dominik F.D Dominik F.

                                      @paul53

                                      Das Skript funktioniert soweit. Wenn man nun die Poolpumpe manuell ausschaltet, dann geht ja logischerweise die Leistung auf 0 und das Skript schaltet die Poolpumpe "nochmal" aus und gibt im Log aus, dass die Pumpe überprüft werden soll.
                                      Ich möchte später noch Pushnachrichten zu dem Skript hinzufügen (Sollte ich eigentlich selber hinbekommen) und das würde dann zur Verwirrung führen wenn ich 3 mal am Tag ne Nachricht bekomme das etwas mit der Pumpe nicht stimmt. Hast du ne Idee wie man das Problem lösen kann?

                                      Hier die aktuelle Version:

                                      const logging = true;
                                      const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                                      const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                                      
                                      var timer = null;
                                      
                                      on(id_Power_Poolpumpe, function (dp) {
                                          if (dp.state.val < 500) {
                                              if (dp.oldState.val >= 500) {
                                                  timer = setTimeout(function () {
                                                      setState(id_Poolpumpe, false);
                                                      if (logging) { log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen') };
                                                  }, 10000);
                                              }
                                          }
                                          else if (timer) clearTimeout(timer);
                                      
                                      });
                                      
                                      
                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von paul53
                                      #18

                                      @Dominik-F sagte in Hilfe bei Skript:

                                      Hast du ne Idee wie man das Problem lösen kann?

                                      Es wir hoffentlich nicht 3 mal am Tag durch ein Script ausgeschaltet ?

                                      const logging = true; 
                                      const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                                      const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                                      
                                      var timer = null;
                                       
                                      on(id_Power_Poolpumpe, function (dp) {
                                          if (dp.state.val < 500) {
                                              if (dp.oldState.val >= 500) {
                                                  timer = setTimeout(function () {
                                                      setState(id_Poolpumpe, false);
                                                  }, 10000);
                                              }
                                          } else if (timer) clearTimeout(timer);
                                      });
                                      
                                      on({id: id_Poolpumpe, change: 'lt', from: 'system.adapter.javascript.0'}, function() { // triggert beim Ausschalten
                                          if (logging) log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen');
                                      });
                                      

                                      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

                                      Dominik F.D 1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @Dominik-F sagte in Hilfe bei Skript:

                                        Hast du ne Idee wie man das Problem lösen kann?

                                        Es wir hoffentlich nicht 3 mal am Tag durch ein Script ausgeschaltet ?

                                        const logging = true; 
                                        const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                                        const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                                        
                                        var timer = null;
                                         
                                        on(id_Power_Poolpumpe, function (dp) {
                                            if (dp.state.val < 500) {
                                                if (dp.oldState.val >= 500) {
                                                    timer = setTimeout(function () {
                                                        setState(id_Poolpumpe, false);
                                                    }, 10000);
                                                }
                                            } else if (timer) clearTimeout(timer);
                                        });
                                        
                                        on({id: id_Poolpumpe, change: 'lt', from: 'system.adapter.javascript.0'}, function() { // triggert beim Ausschalten
                                            if (logging) log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen');
                                        });
                                        
                                        Dominik F.D Offline
                                        Dominik F.D Offline
                                        Dominik F.
                                        schrieb am zuletzt editiert von
                                        #19

                                        @paul53 sagte in Hilfe bei Skript:

                                        Es wir hoffentlich nicht 3 mal am Tag durch ein Script ausgeschaltet ?

                                        Doch, genau das wird es 😄 Die Pumpe läuft 3 mal pro Tag für 2h

                                        paul53P 1 Antwort Letzte Antwort
                                        0
                                        • Dominik F.D Dominik F.

                                          @paul53 sagte in Hilfe bei Skript:

                                          Es wir hoffentlich nicht 3 mal am Tag durch ein Script ausgeschaltet ?

                                          Doch, genau das wird es 😄 Die Pumpe läuft 3 mal pro Tag für 2h

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

                                          @Dominik-F sagte:

                                          Doch, genau das wird es

                                          Dann anders.

                                          const logging = true; 
                                          const id_Power_Poolpumpe = 'hm-rpc.0.OEQ0572933.2.POWER'/*Steckdose Poolpumpe Garage Messwert POWER*/;
                                          const id_Poolpumpe = 'hm-rpc.0.OEQ0572933.1.STATE'/*Steckdose Poolpumpe Garage STATE*/;
                                           
                                          var timer = null;
                                           
                                          on(id_Power_Poolpumpe, function (dp) {
                                              if (dp.state.val < 500) {
                                                  if (dp.oldState.val >= 500) {
                                                      timer = setTimeout(function () {
                                                          if(getState(id_Poolpumpe).val) {
                                                              setState(id_Poolpumpe, false);
                                                              if (logging) log('Poolpumpe ausgeschaltet - Poolpumpe überprüfen');
                                                          }
                                                      }, 10000);
                                                  }
                                              } else if (timer) clearTimeout(timer);
                                          });
                                          

                                          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

                                          Dominik F.D 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

                                          440

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe