Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. scriptedEnabled - Problem bei Abfrage

NEWS

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

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

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

scriptedEnabled - Problem bei Abfrage

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
51 Beiträge 4 Kommentatoren 3.7k Aufrufe 5 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.
  • liv-in-skyL liv-in-sky

    @paul53
    hi - vielleicht weißt du warum das so ist?

    ich versuche mich an einem script, welches alle scripte durchgeht und trigger punkte sucht - diese werden dann auf existenz geprüft und das ergebnis in ein json geschrieben

    dabei teste ich auch, ob das script enabled ist. - es wird in allen instanzen geprüft, daher mache ich das über einen selector

    function lookForEnabled(pfad) {
      pfad=pfad.replace(".js","")   
      pfad=pfad.replace(/\//g,".")  
      let myEnabled=false;
      
      let myselctor="javascript.*.scriptEnabled."+pfad
      $(myselctor).each(function(id, i) {   
        if(existsState(id)) {if (getState(id).val) {myEnabled=true;}}
    });
    //log(myEnabled.toString())
    return myEnabled;
    }
    

    das problem: nach einem iobroker neustart wird bei allen scripten als enabled false angezeigt, obwohl die meisten dp auf true stehen. erst wenn ich ein script disable und anschliessend enable, wird das ganze richtig angezeigt. auch wenn ich die js-instanz neustarte, werden meist die werte nicht richtig geschrieben.

    muss ich die abfrage irgendwie anders programmieren ?

    als output kommt dann sowas raus:

    Image 2.png

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

    @liv-in-sky sagte:

    muss ich die abfrage irgendwie anders programmieren ?

    In der Abfrage kann ich nichts entdecken, was zu dem Phänomen bei Instanz-Start führt.

    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

    liv-in-skyL 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @liv-in-sky sagte:

      muss ich die abfrage irgendwie anders programmieren ?

      In der Abfrage kann ich nichts entdecken, was zu dem Phänomen bei Instanz-Start führt.

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #3

      @paul53

      leider war das heute morgen wieder der fall - nach iobroker neustart wurde die laufenden scipte als false angezeigt - erst als ich das zu prüfende script disabled und enabled habe , wurde es richtig angezeigt.

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      paul53P C 2 Antworten Letzte Antwort
      0
      • liv-in-skyL liv-in-sky

        @paul53

        leider war das heute morgen wieder der fall - nach iobroker neustart wurde die laufenden scipte als false angezeigt - erst als ich das zu prüfende script disabled und enabled habe , wurde es richtig angezeigt.

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

        @liv-in-sky sagte:

        nach iobroker neustart wurde die laufenden scipte als false angezeigt

        Ich könnte mir ein solches Verhalten nur dadurch erklären, dass das Script bereits ausgeführt wird, bevor der States-Puffer der JS-Instanz vollständig initialisiert ist. Das dürfte nicht sein.

        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

        liv-in-skyL 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @liv-in-sky sagte:

          nach iobroker neustart wurde die laufenden scipte als false angezeigt

          Ich könnte mir ein solches Verhalten nur dadurch erklären, dass das Script bereits ausgeführt wird, bevor der States-Puffer der JS-Instanz vollständig initialisiert ist. Das dürfte nicht sein.

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #5

          @paul53
          vielleicht ist das im script_enabled ordner ein sonderfall ?

          leider weiß ich nicht, ob das nur bei mir so ist - oder allgemein

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          paul53P 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @paul53

            leider war das heute morgen wieder der fall - nach iobroker neustart wurde die laufenden scipte als false angezeigt - erst als ich das zu prüfende script disabled und enabled habe , wurde es richtig angezeigt.

            C Offline
            C Offline
            Chrunchy
            schrieb am zuletzt editiert von
            #6

            @liv-in-sky Setzte bei dem Script ein Timeout vor der Prüfung beim Script Start.

            Bei einem Neustart habe ich noch keine Regel festgestellt, in welcher Reihenfolge die vorhandenen Scripte gestartet werden. Bei Prüfungen die vom Status anderer Adapter oder Scripten abhängig sind, setzte ich beim Scriptstart einen Timeout, damit beim System-/Adapterstart die anderen Scripte vorher gestartet werden können.

            Gruß Chrunchy

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @paul53
              vielleicht ist das im script_enabled ordner ein sonderfall ?

              leider weiß ich nicht, ob das nur bei mir so ist - oder allgemein

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

              @liv-in-sky sagte:

              vielleicht ist das im script_enabled ordner ein sonderfall ?

              Habe mal getestet mit folgender Schleife (ohne Instanz-Neustart):

              const idsEnabled = $('javascript.*.scriptEnabled.aktiv.*');
              idsEnabled.each(function(id, i) {
                  log(id + ': ' + existsState(id) + ', Wert: ' + getState(id).val);
              });
              

              Als Wert wird mir immer false angezeigt, obwohl 3 von 4 Skripte aktiviert sind.

              EDIT: Habe mal das 4. Script aktiviert: Nur bei diesem wird der Wert true ausgegeben, der Wert der anderen 3 aktiven Skripte bleibt false.

              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

              liv-in-skyL 1 Antwort Letzte Antwort
              0
              • C Chrunchy

                @liv-in-sky Setzte bei dem Script ein Timeout vor der Prüfung beim Script Start.

                Bei einem Neustart habe ich noch keine Regel festgestellt, in welcher Reihenfolge die vorhandenen Scripte gestartet werden. Bei Prüfungen die vom Status anderer Adapter oder Scripten abhängig sind, setzte ich beim Scriptstart einen Timeout, damit beim System-/Adapterstart die anderen Scripte vorher gestartet werden können.

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #8

                @Chrunchy hatte ich auch schon überlegt (und werd das auch def. so einbauen) - aber dann müßte ein instanz restart bei deaktivierten prüf-script helfen - das prüfscript wird erst nach dem restart der instanz von hand enabled - dann msollte eigentlich alles da sein (momentan habe ich keinen trigger dafür) - das bringt aber leider nicht das ergebnis

                oder anders: nach neustart wird das script ausgführt und hat falsches ergebnis - dann stoppe ich das prüfscript und aktiviere es wieder : und wieder ist die anzeige falsch - das wäre eine "händische" zeitverzögerung - die richtige anzeige kommt erst, wenn ich das zu prüfende script einmal neustarte und dann das prüfscript laufen lasse

                oder kann es sein : da das zu prüfende script ja einen falschen (nicht existierenden trigger-dp hat)

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @liv-in-sky sagte:

                  vielleicht ist das im script_enabled ordner ein sonderfall ?

                  Habe mal getestet mit folgender Schleife (ohne Instanz-Neustart):

                  const idsEnabled = $('javascript.*.scriptEnabled.aktiv.*');
                  idsEnabled.each(function(id, i) {
                      log(id + ': ' + existsState(id) + ', Wert: ' + getState(id).val);
                  });
                  

                  Als Wert wird mir immer false angezeigt, obwohl 3 von 4 Skripte aktiviert sind.

                  EDIT: Habe mal das 4. Script aktiviert: Nur bei diesem wird der Wert true ausgegeben, der Wert der anderen 3 aktiven Skripte bleibt false.

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von
                  #9

                  @paul53

                  das ist doch seltsam - wenn du nun eines der scripte aus und einschaltest, wird dann auch bei dir das richtige angezeigt

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @paul53

                    das ist doch seltsam - wenn du nun eines der scripte aus und einschaltest, wird dann auch bei dir das richtige angezeigt

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

                    @liv-in-sky sagte:

                    wenn du nun eines der scripte aus und einschaltest, wird dann auch bei dir das richtige angezeigt

                    Ja.

                    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

                    liv-in-skyL 2 Antworten Letzte Antwort
                    0
                    • paul53P paul53

                      @liv-in-sky sagte:

                      wenn du nun eines der scripte aus und einschaltest, wird dann auch bei dir das richtige angezeigt

                      Ja.

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #11

                      @paul53

                      bug oder feature ?

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • liv-in-skyL liv-in-sky

                        @paul53

                        bug oder feature ?

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

                        @liv-in-sky sagte:

                        bug oder feature ?

                        ?? Entwickler fragen.

                        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
                        • paul53P paul53

                          @liv-in-sky sagte:

                          wenn du nun eines der scripte aus und einschaltest, wird dann auch bei dir das richtige angezeigt

                          Ja.

                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von
                          #13

                          @paul53

                          das ist schade, das konzept dieses scriptes sollte sein - eine kleine , 2 mal am tag upgedatete , liste in der vis zu haben, die mir nur scripte anzeigt, die laufen und einen falschen trigger haben

                          danke für deine hilfe

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #14

                            @apollon77

                            hi ingo - du stehst in github als entwickler drin - weißt du, wieso das so ist - siehe bitte im ersten post ?

                            zusammnegefaßt: selektor bekommt falsche states im script_enabled ordner beim prüfen, ob scripte enable/disabled sind

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            AlCalzoneA 1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL liv-in-sky

                              @paul53

                              das ist schade, das konzept dieses scriptes sollte sein - eine kleine , 2 mal am tag upgedatete , liste in der vis zu haben, die mir nur scripte anzeigt, die laufen und einen falschen trigger haben

                              danke für deine hilfe

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

                              @liv-in-sky sagte:

                              das ist schade

                              Es funktioniert mit der asynchronen Version von getState(id, callback), ist also ein Puffer-Problem:

                              const idsEnabled = $('javascript.*.scriptEnabled.aktiv.*');
                              idsEnabled.each(function(id, i) {
                                  if(existsState(id)) getState(id, function(err, state) {log(id + ': ' + state.val)});
                              });
                              

                              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
                              • liv-in-skyL liv-in-sky

                                @apollon77

                                hi ingo - du stehst in github als entwickler drin - weißt du, wieso das so ist - siehe bitte im ersten post ?

                                zusammnegefaßt: selektor bekommt falsche states im script_enabled ordner beim prüfen, ob scripte enable/disabled sind

                                AlCalzoneA Offline
                                AlCalzoneA Offline
                                AlCalzone
                                Developer
                                schrieb am zuletzt editiert von
                                #16

                                @liv-in-sky Welche Adapter-Version setzt du denn ein? Wir haben vor kurzem das Verhalten von Wildcards im Selektor gefixt - ggf. hat das damit zu tun.

                                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                liv-in-skyL paul53P 2 Antworten Letzte Antwort
                                0
                                • AlCalzoneA AlCalzone

                                  @liv-in-sky Welche Adapter-Version setzt du denn ein? Wir haben vor kurzem das Verhalten von Wildcards im Selektor gefixt - ggf. hat das damit zu tun.

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #17

                                  @AlCalzone

                                  momentan 4.8.4

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  1 Antwort Letzte Antwort
                                  0
                                  • AlCalzoneA AlCalzone

                                    @liv-in-sky Welche Adapter-Version setzt du denn ein? Wir haben vor kurzem das Verhalten von Wildcards im Selektor gefixt - ggf. hat das damit zu tun.

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

                                    @AlCalzone sagte:

                                    Wir haben vor kurzem das Verhalten von Wildcards im Selektor gefixt - ggf. hat das damit zu tun.

                                    Nein, damit hat es nichts zu tun, denn die IDs werden richtig selektiert. Die synchrone Version von getState(id) funktioniert bei diesen Datenpunkten nicht.

                                    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

                                    liv-in-skyL 1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @AlCalzone sagte:

                                      Wir haben vor kurzem das Verhalten von Wildcards im Selektor gefixt - ggf. hat das damit zu tun.

                                      Nein, damit hat es nichts zu tun, denn die IDs werden richtig selektiert. Die synchrone Version von getState(id) funktioniert bei diesen Datenpunkten nicht.

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      schrieb am zuletzt editiert von liv-in-sky
                                      #19

                                      @paul53

                                      was ist hier falsch

                                      function lookForEnabled(pfad) {
                                        let myEnabled=false;
                                        let myselctor="javascript.*.scriptEnabled."+pfad
                                        $(myselctor).each(function(id, i) {   
                                      
                                          //if(existsState(id)) {if (getState(id).val) {myEnabled=true;}}
                                          if(existsState(id)) {  getState(id, function(err, state){ if (state.val) { myEnabled=true; 
                                                                                                                     return myEnabled;}})
                                          }
                                      });
                                      }
                                      

                                      ich nehme an, der return wert darf da nicht drin sein - wenn ich den aber rausnehme funktioniert es nicht ?

                                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • liv-in-skyL liv-in-sky

                                        @paul53

                                        was ist hier falsch

                                        function lookForEnabled(pfad) {
                                          let myEnabled=false;
                                          let myselctor="javascript.*.scriptEnabled."+pfad
                                          $(myselctor).each(function(id, i) {   
                                        
                                            //if(existsState(id)) {if (getState(id).val) {myEnabled=true;}}
                                            if(existsState(id)) {  getState(id, function(err, state){ if (state.val) { myEnabled=true; 
                                                                                                                       return myEnabled;}})
                                            }
                                        });
                                        }
                                        

                                        ich nehme an, der return wert darf da nicht drin sein - wenn ich den aber rausnehme funktioniert es nicht ?

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

                                        @liv-in-sky sagte:

                                        was ist hier falsch

                                        Man kann keine Rückgabe aus einer Callback-Funktion an die aufrufende Funktion machen, denn die Callback-Funktion läuft asynchron.

                                        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

                                        liv-in-skyL 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @liv-in-sky sagte:

                                          was ist hier falsch

                                          Man kann keine Rückgabe aus einer Callback-Funktion an die aufrufende Funktion machen, denn die Callback-Funktion läuft asynchron.

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          schrieb am zuletzt editiert von
                                          #21

                                          @paul53
                                          leidr weiß ich nicht, wie ich mit dieser function umgehen muss - letztlich gibt es doch ein promise - wenn das erfüllt/ausgeführt ist, soll der return gegeben werden

                                          habe mit then() etwas versucht - klappt aber garnicht

                                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                          AlCalzoneA 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

                                          393

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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