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 "startSkript" startet Skript doppelt

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Javascript "startSkript" startet Skript doppelt

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
23 Beiträge 7 Kommentatoren 1.2k Aufrufe 4 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.
  • bahnuhrB bahnuhr

    @asgothian

    ich benutze dann sowas:

    change: "ne", val: false
    

    Müsste doch genauso funktionieren.
    Also bei Veränderung und val = false

    AsgothianA Offline
    AsgothianA Offline
    Asgothian
    Developer
    schrieb am zuletzt editiert von
    #11

    @bahnuhr sagte in Javascript "startSkript" startet Skript doppelt:

    @asgothian

    ich benutze dann sowas:

    change: "ne", val: false
    

    Müsste doch genauso funktionieren.
    Also bei Veränderung und val = false

    ja, Aber warum 2x prüfen wenn 1x reicht ?

    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

    bahnuhrB 1 Antwort Letzte Antwort
    0
    • AsgothianA Asgothian

      @bahnuhr sagte in Javascript "startSkript" startet Skript doppelt:

      @asgothian

      ich benutze dann sowas:

      change: "ne", val: false
      

      Müsste doch genauso funktionieren.
      Also bei Veränderung und val = false

      ja, Aber warum 2x prüfen wenn 1x reicht ?

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #12

      @asgothian sagte in Javascript "startSkript" startet Skript doppelt:

      ja, Aber warum 2x prüfen wenn 1x reicht ?

      weil ich das andere nicht gewusst habe und mir es so logischer war ;-)


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      AsgothianA 1 Antwort Letzte Antwort
      0
      • bahnuhrB bahnuhr

        @asgothian sagte in Javascript "startSkript" startet Skript doppelt:

        ja, Aber warum 2x prüfen wenn 1x reicht ?

        weil ich das andere nicht gewusst habe und mir es so logischer war ;-)

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von
        #13

        @bahnuhr :)

        Ich predige das eigentlich seit 2020. true > false :)

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        HomoranH 1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @bahnuhr :)

          Ich predige das eigentlich seit 2020. true > false :)

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #14

          @asgothian sagte in Javascript "startSkript" startet Skript doppelt:

          true > false

          @bahnuhr
          ist einfache binäre (bool'sche) Algebra!
          false = 0
          true = 1

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          bahnuhrB 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @asgothian sagte in Javascript "startSkript" startet Skript doppelt:

            true > false

            @bahnuhr
            ist einfache binäre (bool'sche) Algebra!
            false = 0
            true = 1

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #15

            @homoran sagte in Javascript "startSkript" startet Skript doppelt:

            false = 0
            true = 1

            Ja, das ist klar.

            Aber dass dies seit 5 Jahre schon gepredigt wurde ist mir nicht bekannt.
            Und ich lese täglich 2-4 Stunden hier im Forum.

            Muss an mir vorbei gegangen sein.


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            HomoranH 1 Antwort Letzte Antwort
            0
            • bahnuhrB bahnuhr

              @homoran sagte in Javascript "startSkript" startet Skript doppelt:

              false = 0
              true = 1

              Ja, das ist klar.

              Aber dass dies seit 5 Jahre schon gepredigt wurde ist mir nicht bekannt.
              Und ich lese täglich 2-4 Stunden hier im Forum.

              Muss an mir vorbei gegangen sein.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #16

              @bahnuhr sagte in Javascript "startSkript" startet Skript doppelt:

              Aber dass dies seit 5 Jahre schon gepredigt wurde ist mir nicht bekannt.

              spätestens bei Blockly wird immer wieder darauf hingewiesen den Trigger auf ist größer/ kleiner als letztes zu nehmen um eindeutigere Trigger zu erhalten und weitere Prüfungen in der folgenden Logik einzusparen

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              bahnuhrB 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @bahnuhr sagte in Javascript "startSkript" startet Skript doppelt:

                Aber dass dies seit 5 Jahre schon gepredigt wurde ist mir nicht bekannt.

                spätestens bei Blockly wird immer wieder darauf hingewiesen den Trigger auf ist größer/ kleiner als letztes zu nehmen um eindeutigere Trigger zu erhalten und weitere Prüfungen in der folgenden Logik einzusparen

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #17

                @homoran sagte in Javascript "startSkript" startet Skript doppelt:

                Blockly

                ach deshalb ;-)

                ich nehm JS und kein Blockly


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                HomoranH 1 Antwort Letzte Antwort
                0
                • bahnuhrB bahnuhr

                  @homoran sagte in Javascript "startSkript" startet Skript doppelt:

                  Blockly

                  ach deshalb ;-)

                  ich nehm JS und kein Blockly

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #18

                  @bahnuhr sagte in Javascript "startSkript" startet Skript doppelt:

                  ich nehm JS und kein Blockly

                  Weiß ich!
                  Den entsprechenden Satz dazu hatte ich wieder gelöscht :grin:

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • BoronsbruderB Boronsbruder

                    Also, das mit change: 'lt' hab ich mal präventiv getestet. (@Asgothian du meintest sicher: triggert von TRUE auf FALSE - nur um keine Fehler reinzubringen)
                    Die Sache ist die, es wird immer nur das startSkript doppelt ausgeführt. Die anderen Teile sendMsg und der ConsolenOutput werden korrekt einmal ausgeführt.

                    Die Lösung ist folgende:

                            stopScript('common.Bewässerung.Ventil_Steuerung', () => {
                                setTimeout( ()=> {runScript('common.Bewässerung.Ventil_Steuerung')},1000);
                            });
                    

                    Selbst ohne den Timeout also mit

                             stopScript('common.Bewässerung.Ventil_Steuerung', () => {
                                runScript('common.Bewässerung.Ventil_Steuerung');
                            });
                    

                    startet das Skript doppelt!
                    Warum? Ich hab keine Ahnung...

                    T Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von ticaki
                    #19

                    @boronsbruder sagte in Javascript "startSkript" startet Skript doppelt:

                    startet das Skript doppelt!
                    Warum? Ich hab keine Ahnung...

                    Nehmen wir mal an im Javascript adapter steht:

                    for (let a=0; a<alleScriptDieTriggern.length; a++) {
                    

                    und du rufst jetzt synchron im Trigger die funktion

                    alleScriptDieTriggern.push()
                    

                    auf. Das starten eines Skripts mit Trigger ist ja nix anderes.
                    Dann wäre es möglich das ein await irgendwo deinem Skript die Zeit verschaft da einen Eintrag rein zu moggeln so das length+1 geht.

                    Wobei es dann am ende steht und die chance, dass da nochmal genug zeit ist, eher niedrig - daher löst dieser Trigger nur einmal aus.

                    Aber nur vermutung.

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    1 Antwort Letzte Antwort
                    0
                    • AsgothianA Asgothian

                      @boronsbruder sagte in Javascript "startSkript" startet Skript doppelt:

                      startet das Skript doppelt!
                      Warum? Ich hab keine Ahnung...

                      bitte mal eine Debug ausgäbe in den Trigger, mit Angabe der Quelle und so weiter. Schauen ob der Trigger 2 mal kommt.

                      A.

                      BoronsbruderB Online
                      BoronsbruderB Online
                      Boronsbruder
                      schrieb am zuletzt editiert von
                      #20

                      @asgothian

                      Das ist das komplette Skript (mit der Debug-Zeile und dem "Fehler" mit nur runskript ohne Timeout

                      //Definitionen
                              const sDPFrost = '0_userdata.0.Wetter.aktuell.Frost';
                              const aDP_Frost_Devices=['hm-rpc.0.00089D89BA198D.3.STATE','hm-rpc.0.00089D89A1686E.4.STATE','hm-rpc.0.00089F29B112F6.3.STATE']; //Pumpe Zisterne, Moorbeet, Teich => aus wenn Frost, weil Kanäle und-verknüpft
                              const sDP_SensorIBC1 = 'hm-rpc.0.001F1A4990B273.1.STATE'; // Pegelschalter IBC voll
                              
                              const titel = "RaspMatic Reboot";
                              var msg = 'Frost aktualisiert ' + '\n\r';
                              
                              
                              // Trigger RaspMatic nach Reboot
                              
                              function sendMsg(pushmsg){
                                      
                                  sendTo("pushover", {
                                      message:  pushmsg , // mandatory - your text message
                                      title: titel, // optional - your message's title, otherwise your app's name is used
                                      //sound: 'magic', // optional - the name of one of the sounds supported by device clients to override the user's default sound choice
                                          // pushover, bike, bugle, cashregister, classical, cosmic, falling,
                                          // gamelan, incoming, intermission, magic, mechanical, pianobar, siren,
                                          // spacealarm, tugboat, alien, climb, persistent, echo, updown, none
                                      priority: -1 // optional
                                          // -1 to always send as a quiet notification,
                                          // 1 to display as high-priority and bypass the user's quiet hours, or
                                          // 2 to also require confirmation from the user
                                  });
                              };
                              
                              on ({id: 'hm-rega.0.950', change: 'lt'}, function(data){ //Variable "CCU im Reboot" von RaspMatic
                                //  if (!data.state.val) // CCU nicht mehr im Reboot
                                //  {
                                    console.log(data);
                                      var bFrost = getState(sDPFrost).val;
                              
                                      // Frost initialisieren
                                      aDP_Frost_Devices.forEach (id => {
                                          setState(id, !bFrost);
                                          msg += '-- ' + id + ' : ' + !bFrost +'\n\r';
                                      });
                              
                                      // IBC Pegel initialisieren
                                      var bIBC_voll = getState(sDP_SensorIBC1).val;
                                      setState('0_userdata.0.Bewässerung.IBC.Pegel_voll', bIBC_voll);
                                          msg += ' -- IBC Pegel voll : ' + bIBC_voll + '\n\r';
                                      
                                      //Bewässerung reinit => Ventil-Steuerung-Skript neutstarten
                                      stopScript('common.Bewässerung.Ventil_Steuerung', () => {
                                          //setTimeout( ()=> {runScript('common.Bewässerung.Ventil_Steuerung')},1000);
                                          runScript('common.Bewässerung.Ventil_Steuerung');
                                      });
                                      
                                          msg += ' -- Reinit Venti-Überwachung \n\r';
                              
                                      // Info über Boot loggen
                                      console.warn ("[Raspimatic-Boot] " + msg);
                                      sendMsg(msg);
                                      
                              
                                 // }
                              });
                      

                      Es gibt nur eine Ausgabe ->

                      EventObj {
                        id: 'hm-rega.0.950',
                        newState: {
                          val: false,
                          ts: 1757669894412,
                          ack: false,
                          lc: 1757669894412,
                          from: 'system.adapter.admin.0',
                          q: 0,
                          c: undefined,
                          user: 'system.user.admin'
                        },
                        oldState: {
                          val: true,
                          ts: 1757669892106,
                          ack: true,
                          lc: 1757669888017,
                          from: 'system.adapter.hm-rega.0',
                          q: 0,
                          c: undefined,
                          user: 'system.user.admin'
                        },
                        state: {
                          val: false,
                          ts: 1757669894412,
                          ack: false,
                          lc: 1757669894412,
                          from: 'system.adapter.admin.0',
                          q: 0,
                          c: undefined,
                          user: 'system.user.admin'
                        }
                      }
                      

                      aber das Skript startet wieder 2x:

                      javascript.0	2025-09-12 11:38:15.492	info	Start JavaScript script.js.common.Bewässerung.Ventil_Steuerung (Javascript/js)
                      javascript.0	2025-09-12 11:38:14.589	info	Start JavaScript script.js.common.Bewässerung.Ventil_Steuerung (Javascript/js)
                      

                      Und beide gestartet Skripts laufen dann parallel weiter...

                      T 1 Antwort Letzte Antwort
                      0
                      • BoronsbruderB Boronsbruder

                        @asgothian

                        Das ist das komplette Skript (mit der Debug-Zeile und dem "Fehler" mit nur runskript ohne Timeout

                        //Definitionen
                                const sDPFrost = '0_userdata.0.Wetter.aktuell.Frost';
                                const aDP_Frost_Devices=['hm-rpc.0.00089D89BA198D.3.STATE','hm-rpc.0.00089D89A1686E.4.STATE','hm-rpc.0.00089F29B112F6.3.STATE']; //Pumpe Zisterne, Moorbeet, Teich => aus wenn Frost, weil Kanäle und-verknüpft
                                const sDP_SensorIBC1 = 'hm-rpc.0.001F1A4990B273.1.STATE'; // Pegelschalter IBC voll
                                
                                const titel = "RaspMatic Reboot";
                                var msg = 'Frost aktualisiert ' + '\n\r';
                                
                                
                                // Trigger RaspMatic nach Reboot
                                
                                function sendMsg(pushmsg){
                                        
                                    sendTo("pushover", {
                                        message:  pushmsg , // mandatory - your text message
                                        title: titel, // optional - your message's title, otherwise your app's name is used
                                        //sound: 'magic', // optional - the name of one of the sounds supported by device clients to override the user's default sound choice
                                            // pushover, bike, bugle, cashregister, classical, cosmic, falling,
                                            // gamelan, incoming, intermission, magic, mechanical, pianobar, siren,
                                            // spacealarm, tugboat, alien, climb, persistent, echo, updown, none
                                        priority: -1 // optional
                                            // -1 to always send as a quiet notification,
                                            // 1 to display as high-priority and bypass the user's quiet hours, or
                                            // 2 to also require confirmation from the user
                                    });
                                };
                                
                                on ({id: 'hm-rega.0.950', change: 'lt'}, function(data){ //Variable "CCU im Reboot" von RaspMatic
                                  //  if (!data.state.val) // CCU nicht mehr im Reboot
                                  //  {
                                      console.log(data);
                                        var bFrost = getState(sDPFrost).val;
                                
                                        // Frost initialisieren
                                        aDP_Frost_Devices.forEach (id => {
                                            setState(id, !bFrost);
                                            msg += '-- ' + id + ' : ' + !bFrost +'\n\r';
                                        });
                                
                                        // IBC Pegel initialisieren
                                        var bIBC_voll = getState(sDP_SensorIBC1).val;
                                        setState('0_userdata.0.Bewässerung.IBC.Pegel_voll', bIBC_voll);
                                            msg += ' -- IBC Pegel voll : ' + bIBC_voll + '\n\r';
                                        
                                        //Bewässerung reinit => Ventil-Steuerung-Skript neutstarten
                                        stopScript('common.Bewässerung.Ventil_Steuerung', () => {
                                            //setTimeout( ()=> {runScript('common.Bewässerung.Ventil_Steuerung')},1000);
                                            runScript('common.Bewässerung.Ventil_Steuerung');
                                        });
                                        
                                            msg += ' -- Reinit Venti-Überwachung \n\r';
                                
                                        // Info über Boot loggen
                                        console.warn ("[Raspimatic-Boot] " + msg);
                                        sendMsg(msg);
                                        
                                
                                   // }
                                });
                        

                        Es gibt nur eine Ausgabe ->

                        EventObj {
                          id: 'hm-rega.0.950',
                          newState: {
                            val: false,
                            ts: 1757669894412,
                            ack: false,
                            lc: 1757669894412,
                            from: 'system.adapter.admin.0',
                            q: 0,
                            c: undefined,
                            user: 'system.user.admin'
                          },
                          oldState: {
                            val: true,
                            ts: 1757669892106,
                            ack: true,
                            lc: 1757669888017,
                            from: 'system.adapter.hm-rega.0',
                            q: 0,
                            c: undefined,
                            user: 'system.user.admin'
                          },
                          state: {
                            val: false,
                            ts: 1757669894412,
                            ack: false,
                            lc: 1757669894412,
                            from: 'system.adapter.admin.0',
                            q: 0,
                            c: undefined,
                            user: 'system.user.admin'
                          }
                        }
                        

                        aber das Skript startet wieder 2x:

                        javascript.0	2025-09-12 11:38:15.492	info	Start JavaScript script.js.common.Bewässerung.Ventil_Steuerung (Javascript/js)
                        javascript.0	2025-09-12 11:38:14.589	info	Start JavaScript script.js.common.Bewässerung.Ventil_Steuerung (Javascript/js)
                        

                        Und beide gestartet Skripts laufen dann parallel weiter...

                        T Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von
                        #21

                        @boronsbruder

                        Hast du mal den javascript-adapter neu gestartet? Im Hintergrund laufende Skript bekommst du nicht durch abschalten weg.

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        BoronsbruderB 1 Antwort Letzte Antwort
                        0
                        • T ticaki

                          @boronsbruder

                          Hast du mal den javascript-adapter neu gestartet? Im Hintergrund laufende Skript bekommst du nicht durch abschalten weg.

                          BoronsbruderB Online
                          BoronsbruderB Online
                          Boronsbruder
                          schrieb am zuletzt editiert von
                          #22

                          @ticaki
                          Das weiß ich und hab ich auch.
                          Das "Problem" bzw. die Frage ist warum das Skript doppelt startet ;)

                          T 1 Antwort Letzte Antwort
                          0
                          • BoronsbruderB Boronsbruder

                            @ticaki
                            Das weiß ich und hab ich auch.
                            Das "Problem" bzw. die Frage ist warum das Skript doppelt startet ;)

                            T Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von ticaki
                            #23

                            @boronsbruder

                            Das wäre eine der antwortmöglichkeiten gewesen - wenns 2 mal läuft könnte es auch 2 mal gestartet werden.

                            Hatte das selbe Problem schon vor 4 Jahren und noch immer keine Antwort ausser einem großzügigem Timeout vor dem restart - ich hatte da teils 10 Sekunden drin. :) Wenn dein Skript nicht mehr enthält als du hier gezeigt hast, fällt mir kein Grund ein.

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            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

                            713

                            Online

                            32.6k

                            Benutzer

                            82.1k

                            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