Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. BUG "cacheSelector" ?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    BUG "cacheSelector" ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by bahnuhr

      Unter Javascrript.0 werden ja alle Scripte aufgeführt die existieren. Und hier ist auch ersichtlich, welche ein- oder ausgeschaltet sind.

      Diese Objekte versuche ich nun in einen CacheSelector zu packen. Dies funktioniert auch; jedoch werden die boolean Werte falsch ausgewiesen.

      Folgendes Script:

          var Scripte = [];
          var cacheSelectorScripte  = $('channel[state.id=javascript.0.scriptEnabled*]').each(function(id, i) {
              Scripte.push(id)
              log (id + getState(id).val);
          });
      

      Das Script schreibt nun an mehreren Stellen false hin, obwohl das Objekt true ist.
      Beispiel:
      Objekte "Licht"
      8870b37b-097e-4c97-a236-3200f2d46620-image.png

      Wenn das Script läuft, erscheint im log aber false.
      0b8bfed6-54ca-44b2-a790-8ea6bbe0a1e5-image.png

      Frage:
      Ist dies ein bug bei dem Selector?
      Oder was ist hier falsch?

      mfg
      Dieter

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @bahnuhr last edited by

        @bahnuhr sagte: Ist dies ein bug bei dem Selector?

        Das hat mit dem Selector nichts zu tun, denn der Wert wird in Zeile 4 eingelesen.

        bahnuhr 1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @paul53 last edited by

          @paul53 sagte in BUG "cacheSelector" ?:

          Das hat mit dem Selector nichts zu tun, denn der Wert wird in Zeile 4 eingelesen.

          ok, aber warum stimmt die log Ausgabe nicht mit der Realität überein.

          1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active last edited by

            oder genauer:

            Warum ergibt:
            log (getState("javascript.0.scriptEnabled.Scripte.Licht.Sauna").val);
            im log "false" obwohl lt. den Objekten "true" da steht.

            Da stimmt doch irgendwas im System nicht.

            paul53 liv-in-sky 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @bahnuhr last edited by paul53

              @bahnuhr sagte: im log "false" obwohl lt. den Objekten "true" da steht.

              Starte mal die Admin- und die Javascript-Instanz neu.

              1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @bahnuhr last edited by

                @bahnuhr ist evtl ein cache problem - starte mal die javascript instanz neu und lass dann das script laufen - ist der wert dann richtig -> cacheproblem

                1 Reply Last reply Reply Quote 0
                • bahnuhr
                  bahnuhr Forum Testing Most Active last edited by

                  So, admin und javascript neu gestartet.

                  Und es scheint geholfen zu haben.
                  Script ist nun im log auch true.

                  Komisch das ganze.

                  mfg
                  Dieter

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @bahnuhr last edited by liv-in-sky

                    @bahnuhr

                    kenn ich schon - meine tabellen scripte haben das thema auch. zb das sonoff tabellen script findet keine neu eingerichteten sonoffgeräte, da neu angelegte geräte nicht im cache der javascript-instanz sind. erst wenn ich instanz neustarte kommen auch die neu angelegten geräte in der tabelle (selektor) zum vorschein

                    wenn du die js-instanz startetst, siehst du im log, dass die objecte eingelesen und dann "gecached" werden

                    1 Reply Last reply Reply Quote 0
                    • bahnuhr
                      bahnuhr Forum Testing Most Active last edited by

                      ok, aber irgendwie ist da trotzdem der Wurm drin.

                      Meine globalen Scripte (7 Stück) stehen alle auf true:
                      c358533b-a8a1-480b-a3c8-bac9e12b4b38-image.png

                      Unter den Objekten werden aber nur 5 !!?? angezeigt.
                      und diese stehen auch noch auf false.
                      7d67a21f-fa8c-4336-a533-e15ec3ba721e-image.png

                      Irgendwie ist das nicht zufriedenstellend.
                      Man muss sich drauf verlassen können, dass die Werte überein stimmen.
                      So ist es Murx.

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @bahnuhr last edited by

                        @bahnuhr der scriptenabled folder ist von anfang an etwas seltsam - ich habe mehrere js instanzen und unter jeder instanz hat jedes script (egal ob script in dieser instanz ist) die datenpunkte - also bei einem script habe ich 3 mal scriptenabled datenpunkte - in jeder instanz eines

                        hatte damals nachgefragt, was das bedeutet: die antwort: gehört zum system und ich solle mich nicht darum kümmern

                        ich denke, es hängt damit zusammen, wenn man scripte in den instanzen verschiebt

                        das ganze müllt auch noch die datenbank voll - siehe anzahl der objecte pro instanz - fast 10 000 objecte unter den instanzen - völlig unverständlich

                        Image 1.png

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active last edited by

                          Also Fazit für mich:
                          Damit kann man nix anfangen.
                          Denn wenn man schon vermutet, dass die Werte nicht stimmen, dann ist dies unbrauchbar.

                          Ziel war es:
                          Ich wollte ermitteln, welche Script ein- bzw. ausgeschaltet sind.

                          Vielleicht hat ja jemand ne andere Idee.

                          mfg
                          Dieter

                          1 Reply Last reply Reply Quote 0
                          • bahnuhr
                            bahnuhr Forum Testing Most Active last edited by

                            Oder um es ganz kritisch auszudrücken.

                            Kein BUG bei cacheSelector.

                            aber

                            BUG im System.
                            genauer: Ausweis von Datenpunkten mit falschen Zuständen.

                            liv-in-sky 1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @bahnuhr last edited by liv-in-sky

                              @bahnuhr
                              ich habe ein script, welches jedes script durchsucht um herauszufinden, ob alle trigger datenpunkte existieren - darin wird auch letztlich geprüft, ob das script überhaupt aktiv ist

                              dies passiert über:

                              • einlesen aller existierender scripte aus dem filesystem - wird im setting der js-instanz "backup folder für scripte) realisiert
                              • und es gibt den befehl "isScriptActive()"

                              das script ist kurz zusammengesammelt - weiß nicht, ob du es so willst - myPath ist im setting der instanz definiert

                              Image 3.png

                              die undefined sind scripte, die ich verschoben habe und noch nicht aufgerufen habe

                              Image 4.png

                              
                              var myPath="/opt/iobroker/scripte-backup";
                              var myRootArr=[];
                              var myRootArrFiles=[];
                              var fs = require('fs');  
                              
                              var _getAllFilesFromFolder = function(dir) {
                              var filesystem = require("fs");
                              var results = [];
                              
                              
                                 filesystem.readdirSync(dir).forEach(function(file) {
                                       file = dir+'/'+file;
                                     var stat = filesystem.statSync(file);
                                     if (stat && stat.isDirectory()) {
                                          results = results.concat(_getAllFilesFromFolder(file))
                                     } else results.push(file);
                                 });
                                  return results;
                              };
                              
                              //log(_getAllFilesFromFolder("/opt/iobroker/scripte-backup/Armin_Schalter/FUTRO").toString())
                              
                              function getDirectories(path) {
                               return fs.readdirSync(path).filter(function (file) {
                                 return fs.statSync(path+'/'+file).isDirectory();
                               });
                              }
                              
                              
                              
                              async function sammleDaten () {
                                // return new Promise((resolve) => {
                              
                              myRootArr=getDirectories(myPath)
                              
                              myRootArrFiles=_getAllFilesFromFolder(myPath)
                              
                              //log(isScriptActive('Armin_Schalter.AA-TABELLEN.N_E_U_E_T_A_B_E_L_L_E_N.AATelegramDelete.Skript_111').toString());
                              //yRootArrFiles.toString())
                              for(let z=0;z<myRootArrFiles.length;z++){
                              
                                 let helper=myRootArrFiles[z].replace(myPath+"/","")
                                     helper=helper.replace(/\//g,".")
                                     helper=helper.replace(".js","")
                                     if(z<50) log(helper+"  -- isActive?= "+isScriptActive(helper))
                              }
                              
                              /*
                              myRootArrFiles.forEach(function(myRootArrFiles) {
                                 
                              });*/
                              
                              }
                              
                              async function doStuff() {
                              await sammleDaten();
                              
                              }
                              
                              
                              doStuff()
                              
                              
                              
                              
                              

                              1 Reply Last reply Reply Quote 1
                              • bahnuhr
                                bahnuhr Forum Testing Most Active last edited by

                                @liv-in-sky

                                Danke dir,
                                ich schaue es mir an.

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                447
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                bug cacheselector error
                                3
                                14
                                234
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo