Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Script - Info über Datenpunkte sammeln

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script - Info über Datenpunkte sammeln

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @sigi234 last edited by

      @sigi234

      hast du das ganze script ersetzt - hatte ich vergessen zu erwähnen - es gibt auch eine änderung über ab hier nichts mehr ändern

      nur const instanzArr kannst du später wieder reinkopieren

      sigi234 1 Reply Last reply Reply Quote 0
      • sigi234
        sigi234 Forum Testing Most Active @liv-in-sky last edited by

        @liv-in-sky sagte in Script - Info über Datenpunkte sammeln:

        hast du das ganze script ersetzt

        Ja

        liv-in-sky 3 Replies Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @sigi234 last edited by liv-in-sky

          @sigi234

          hier nochmal eine ganze version - bitte ganz ersetzen und anschliessend dein settings für const instanzArr wieder hernehmen

          // @Liv-in-sky Okt.  2019
          
          
          
          
                                                    // WICHTIG
                                                    // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte    , "alexa2.0"
                                                    //oder auch nur einzelne ornder in der datenstruktur z.b. "javascript.2.WLANUnifi"
          const instanzArr=[ "javascript.2.WLANUnifi", "javascript.0.ProofingDatapoints", "controll-own.0"];      
                                                    // beispiel const instanzArr=[ "eigeneDatenpunkte.0", "ping.0",];
          
          var color_in_table="black"         // Farbe text in webseite
          let schriftart="Helvetica";        // möglich: Helvetica,Serif
          var color_gradient1="#819FF7";     // Hintergrund webseite 
          var colorHeadlines="darkblue";     // Farbe Überschriften in der VIS Anzeige
          var colorHeadlinesDP="#36d5ec ";   // Farbe Überschriften in der WebSeite Anzeige     
          var warnFarbe = "#36d5ec";         //Farbe für Warnungen in vis und Webseite
          
          
          //------------------------------------------AB HIER NICHTS ÄNDERN--------------------------------------------------------
          
          
          
          const versionNr = "15102019-1.1"
          const warnColor = warnFarbe ;
          
          const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Putzer</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>";
          const htmlTable="<table style=\"color:"+color_in_table+";text-align:left; font-family:"+schriftart+";background-image: linear-gradient(67deg,transparent,"+color_gradient1+");\">";
          const htmlReset="<p style=\"color:red;font-family:"+schriftart+";\"><i>!!! ohne Javascript Instanzen !!! kann enabled werden</i></p>"
          const htmlHeaders = "style=\"color:"+colorHeadlines+";\""; 
          const htmlHeadersDP = "style=\"color:"+colorHeadlinesDP+";\""; 
          
          //  var htmlOhneAnzahl="<p style=\"color:red;font-family:"+schriftart+";\"><i>!!! ohne DatenpunktZählung !!! kann enabled werden</i></p>"
          const htmlError="<p style=\"color:red;font-family:"+schriftart+";\"><i>Script hat Fehler - bitte Log checken !!!</i></p>"
          var allInstArr=[];
          var  instanzArrHelp=[];
          const dpPrefix = "javascript."+ instance +".";
          var mylogs=false;
          var htmlDP=[];
          var htmlMSG=[];
          var counterAll=0;
          var directSearch=false;
          
          
          var htmlHelper="";
          var htmlHelperFile="";
          
          createState(dpPrefix + "ProofingDatapoints.HTMLTable", { name: 'HTMLTable',  type: 'string', read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.ScriptVersion", versionNr,{ name: 'ScriptVersion',  type: 'string', read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.RunScript", { name: 'RunScript',  type: 'boolean', role:"switch", read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck", true,{ name: 'JavaInstanzCheck',  type: 'boolean', role:"switch", read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck", true,{ name: 'ObjectAnzahlCheck',  type: 'boolean', role:"switch", read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.MonsterSearch", false,{ name: 'MonsterSearch',  type: 'boolean', role:"switch", read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige", false,{ name: 'ohneInstanzAnzeige',  type: 'boolean', role:"switch", read:  true,  write: true,});
          createState(dpPrefix + "ProofingDatapoints.OrdnerCheck", { name: 'OrdnerCheck',  type: 'string', read:  true,  write: true,});
          
          
          //------------------------------------------CHECK INSTANZEN--------------------------------------------------------
          
          function instanzCount(){
            var ohneInstanz = getState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige").val;
            
             var counter=0; var counter2=0;var counter3=0; 
          $('system.adapter.*.alive').each(function(id, i) {
          
          
              var ida = id.split('.');
               allInstArr.push(ida[2]+"."+ida[3]);
          
            if (!ohneInstanz && !directSearch) {
             
             if(!id.includes("vis")){
             
          
             counter++;
          
             if (getState(id).val==null) {;counter2++; mylog(ida[2]+ida[3]+"--------------------der hier wurde nie gestartet"); 
                htmlDP.push(ida[2]+"."+ida[3]);
                htmlMSG.push("Instanzen ohne Werte");} //else{instanzArr.push(ida[2]+"."+ida[3])}
             if (getState(id).val==false) {counter3++;mylog(ida[2]+ida[3]+"-----------------------der hier ist ausgeschalten"); 
                htmlDP.push(ida[2]+"."+ida[3]);
                htmlMSG.push("nicht aktiviert");} /*else{instanzArr.push(ida[2]+"."+ida[3])}*/
             }}
          });
           if (!ohneInstanz) {
          mylog("______________________________________________Anzahl Instanzen: " + counter.toString());
          htmlDP.push("");
          htmlMSG.push("");
          htmlDP.push("Anzahl Instanzen");
          htmlMSG.push(counter.toString());
          
          mylog("______________________________________________Anzahl gestoppter Instanzen ohne Werte: " + counter2.toString())
          htmlDP.push("Instanzen ohne Werte");
          htmlMSG.push(counter2.toString());
          htmlDP.push("Instanzen nicht aktiviert");
          htmlMSG.push(counter3.toString());
          
           }
          
          }
          
          
          //------------------------------------------CHECK ZUORDNUNG--------------------------------------------------------
          
          function checkTypes(select) {
              mylog("bin in check types");
             var counter=0; 
             htmlMSG.push("");
             htmlDP.push("");
             var sub= select.substring(select.length-1, select.length); log("---------: "+sub);log("----------select: "+select);
             mylog(select)
             $(select).each(function (id, i) {
                 counter++
          
                 
                    
             if (!id.includes('scriptEnabled') && !id.includes('scriptProblem')  && getState(id).val !== null /*&& !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
          
                 if (!JSON.stringify(getObject(id)).includes("type")) {
                
                      var valType = typeof getState(id).val;
                       htmlDP.push(id+": "+valType);
                       htmlMSG.push("<b>missing TYPE !!</b>" );}
                 
                  else{ var dpType = getObject(id).common.type;
                        var valType = typeof getState(id).val;
                        if(dpType != "mixed" ) {
                        if(dpType !== valType && !(dpType == 'array' && valType == 'object') /*&& !(dpType =='text' && valType=='string') && !(dpType =='string' && valType=='text')*/ ) {
                           mylog(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                           htmlDP.push(id+": "+valType);
                           htmlMSG.push(dpType );
          
                           /* später testing)
                           console.log("======1=============no type: "+id +"object: "+JSON.stringify(getObject(id)));
                           if(!getObject(id).common.hasOwnProperty("type")) console.log("--------------kein TYPE: "+id) ;
                           console.log("======2=============no type: "+id +"object: "+JSON.stringify(getObject(id).common));
                         */
                           
                           }
                         
                 }}
               /*
                 if(dpType != valType && !(dpType == 'array' && valType == 'object')) {
                     log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                     htmlDP.push(dpType);
                     htmlMSG.push(valType);
                 }*/
             }
             });
             htmlDP.push("<i>ID + IST-WERT</i>");
             htmlMSG.push("<i>SOLL-WERT</i>");
             htmlDP.push("-col-<b>geprüfte Instanz</b>");
             htmlMSG.push("-col-<i><b>"+select+"</b></i>");
             mylog("fertg" + counter.toString())
            
          }
          
          //------------------------------------------CHECK  WERTE--------------------------------------------------------
          
          function checkWerte(select) {
             mylog("bin in check Werte");
             var counter=0; 
          
             mylog(select);
             $(select).each(function (id, i) {
                 counter++
                 
             if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') /* )  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
                //var dpType = getObject(id).common.type;
                 try {
                 var valType =  getState(id).val;
                 } catch (e) {console.log("------------ERROR: "+e)}
          
          
                // if(dpType != "mixed" ) {}
          
                     if(valType === null) {mylog(id + ': Datenpunkttyp: ' /*+ dpType */+ ", Wert: "+valType);
                         htmlDP.push(id);
                         var ddd = new Date().getTime()-getObject(id).ts;
                         htmlMSG.push("missing seit " + Math.floor((ddd)/1000/60/60/24)+"d "+Math.floor((ddd)/1000/60/60 %24)+"h "+Math.floor((ddd)/1000/60 %60)+"m ");
                     } 
                 
              
             }
             });
           
              mylog("bin raus aus check Werte");
            
          }
          //---------------------------------------------------------------------------------------------------------------------
          
          
          function mylog(message) {
            if(mylogs)
                console.log(message);
          }
          
          //------------------------------------------Zähle Objecte der  INSTANZEN--------------------------------------------------------
          function countDP(idb){
             mylog("bin richtig in count");
             var counter4=0;
          
             $(idb+".*").each(function(id, i) {
             counter4++; })
          
          mylog(idb+counter4);
          htmlDP.unshift(idb);
          htmlMSG.unshift(counter4.toString());
          counterAll=counterAll+counter4;
          mylog("bin raus aus count");
          }
          
          //----------------------------------------------Direct Suchen
          
          on({id:dpPrefix + "ProofingDatapoints.OrdnerCheck", change: "any"}, function (obj) {
             
              directSearch=true;
               instanzArrHelp=[];
              setState(dpPrefix + "ProofingDatapoints.RunScript",true);
          
          
              });
          
          //-----------------------------------------------SCHALTER MAIN------------------------------------------------
          on({id:dpPrefix + "ProofingDatapoints.RunScript",  val: true}, function (obj) { 
             let java= getState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck").val;
             let instanzAnzahl= getState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck").val;
             let monster= getState(dpPrefix + "ProofingDatapoints.MonsterSearch").val;
             var ohneInstanz = getState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige").val;
             var endehtmlConst=   "<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\">Letztes File Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"</p>";
             var endehtmlDPConst=   "<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\">Letztes Table Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"</p>";
             setState(dpPrefix + "ProofingDatapoints.ScriptVersion",versionNr);
             htmlHelper="";
             htmlHelperFile="";
             setState(dpPrefix + "ProofingDatapoints.HTMLTable",htmlReset+endehtml+htmlError);
             writeFile(null, "/ProofingDatapoints/htmlputz.html" ,htmlReset+endehtml+htmlError+"</body>", function (error) {mylog('file written'); });
            
             counterAll=0;
             instanzArrHelp=[];
             allInstArr=[];
          
          
          setStateDelayed(dpPrefix + "ProofingDatapoints.RunScript",false,2500);
          
          htmlDP=[];
          htmlMSG=[];
          
          instanzCount();  //überprüft instanzen und stellt allInstArr her
          
          htmlDP.push("-col-<b>INSTANZ INFO</b>"); htmlMSG.push(""); htmlDP.push(""); htmlMSG.push("");
          mylog(instanzArr.length+"==================="+instanzArr.toString());
          
          
          if (monster) {instanzArrHelp=allInstArr;} else {instanzArrHelp=instanzArr}  //ACHTUNG MONSTERSEARCH
          if (directSearch) {instanzArrHelp=[]; instanzArrHelp.push(getState(dpPrefix + "ProofingDatapoints.OrdnerCheck").val);}
          
          for(let name in instanzArrHelp){
             checkWerte(instanzArrHelp[name]+".*")                   //checkt alle werte in intanzArr
              mylog("!!!!!!!!!!!!!!!!!!!!:  "+instanzArrHelp[name]);}
          
              if (instanzAnzahl){
                    htmlDP.unshift(""); htmlMSG.unshift("");htmlDP.unshift("<b>OBJECTE IN INSTANZ</b>"); htmlMSG.unshift("Anzahl"); 
                     
                    for(let name in instanzArrHelp){
                      countDP(instanzArrHelp[name]);mylog("bin in zhlen");}
                      if (java && !monster) countDP("javascript")
                    htmlDP.unshift("-col-<b>GESAMT GEPRÜFTE OBJECTE IN INSTANZEN</b>"); htmlMSG.unshift("-col-<b>"+counterAll.toString()+"</b>"); 
                    
                    }
                    mylog("=============: "+counterAll);
          
          if (java && !monster && !ohneInstanz && !directSearch) checkWerte('javascript.*');                //checkt alle javainstanzen
          
          
           htmlDP.push("-col-<b>ID's OHNE WERT:</b>");
           htmlMSG.push("");
          
          for(let name in instanzArrHelp){
             checkTypes(instanzArrHelp[name]+".*")
             mylog("!!!!!!!!!!!!!!!!!!!!:  "+instanzArrHelp[name])};
               htmlDP.push("");
               htmlMSG.push("");
               htmlDP.push("-col-<b>IDs MIT FALSCHEN TYPE:</b>");
               htmlMSG.push("");
          
          
           if (java && !monster && !ohneInstanz && !directSearch ) checkTypes('javascript.*');
          
          for(var i= htmlDP.length-1; i>-1; i--) {
              let htmlDPVis; let htmlDPFile;let htmlMSGVis;let htmlMSGFile;
                if(htmlDP[i].includes("-col-")) {htmlDPVis=htmlDP[i].replace("-col-", (htmlHeadersDP+">"));  htmlDPVis=" "+htmlDPVis } else {htmlDPVis=">"+htmlDP[i]}
                if(htmlMSG[i].includes("-col-")) {htmlMSGVis=htmlMSG[i].replace("-col-", (htmlHeadersDP+">"));htmlMSGVis=" "+htmlMSGVis } else {htmlMSGVis=">"+htmlMSG[i]}
                htmlHelper= htmlHelper+"<tr><td"+htmlDPVis+"&ensp;&ensp;</td><td"+htmlMSGVis+"&ensp;&ensp;</td></tr>"
          
              //  if(htmlDP[i].includes("-col-")) {htmlDP[i]=htmlDP[i].replace("-col-", (htmlHeaders+">")); htmlDPFile=htmlDP[i]; htmlDPFile= " "+htmlDPFile ; } else {htmlDPFile=">"+htmlDP[i]}
                      if(htmlDP[i].includes("-col-")) {htmlDPFile=htmlDP[i].replace("-col-", (htmlHeaders+">"));  htmlDPFile= " "+htmlDPFile ; } else {htmlDPFile=">"+htmlDP[i]}
          
                if(htmlMSG[i].includes("-col-")) {htmlMSGFile=htmlMSG[i].replace("-col-", (htmlHeaders+">")); htmlMSGFile=" "+htmlMSGFile; } else {htmlMSGFile=">"+htmlMSG[i]}    
                htmlHelperFile= htmlHelperFile+"<tr><td"+htmlDPFile+"&ensp;&ensp;</td><td"+htmlMSGFile+"&ensp;&ensp;</td></tr>"
          }
             var   endehtml=endehtmlConst;
             var   endehtmlDP=endehtmlDPConst;                       
              
          
             if (monster){endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Monster Suche wird automatisch  deaktiviert !!!</i></p>"+endehtml;
                       endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! ACHTUNG: SYSTEM WIRD BELASTET !!! </br></br>!!! Monster Suche wird automatisch  deaktiviert !!! </br></br> BERICHT/AUSWERTUNG NUR ÜBER WEBSEITE</i></p>"+endehtmlDP;}
          
          
             if (!instanzAnzahl){endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne DatenpunktZählung !!! kann enabled werden</i></p>"+endehtml;
                       endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne DatenpunktZählung !!! kann enabled werden</i></p>"+endehtmlDP;}
          
             if (!java){ endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne Javascript Instanzen !!! kann enabled werden</i></p>"+endehtml;
                       endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne Javascript Instanzen !!! kann enabled werden</i></p>"+endehtmlDP;}
             
             if(!monster) { setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP+"<table>"+htmlHelper,900);} else{setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP,900);}
            
             console.log("================================schreibe file")  ; 
             if(true)  writeFile(null, "/ProofingDatapoints/htmlputz.html" ,format+endehtml+htmlTable+htmlHelperFile+"</table></body>", function (error) { mylog('file written'); });
          
            // endehtml=endehtmlConst;
            // endehtmlDP=endehtmlDPConst;
          
             setState(dpPrefix + "ProofingDatapoints.MonsterSearch",false);  //setzt monstersearch zurück
            directSearch=false;
          
          
          });
          
          

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

            @sigi234

            warte mal kurz - checke noch was !

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

              @sigi234

              sorry - jetzt damit mal

              // @Liv-in-sky Okt.  2019
              
              
              
              
                                                        // WICHTIG
                                                        // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte    , "alexa2.0"
                                                        //oder auch nur einzelne ornder in der datenstruktur z.b. "javascript.2.WLANUnifi"
              const instanzArr=[ "javascript.2.WLANUnifi", "javascript.0.ProofingDatapoints", "controll-own.0"];      
                                                        // beispiel const instanzArr=[ "eigeneDatenpunkte.0", "ping.0",];
              
              var color_in_table="black"         // Farbe text in webseite
              let schriftart="Helvetica";        // möglich: Helvetica,Serif
              var color_gradient1="#819FF7";     // Hintergrund webseite 
              var colorHeadlines="darkblue";     // Farbe Überschriften in der VIS Anzeige
              var colorHeadlinesDP="#36d5ec ";   // Farbe Überschriften in der WebSeite Anzeige     
              var warnFarbe = "#36d5ec";         //Farbe für Warnungen in vis und Webseite
              
              
              //------------------------------------------AB HIER NICHTS ÄNDERN--------------------------------------------------------
              
              
              
              const versionNr = "15102019-1.1"
              const warnColor = warnFarbe ;
              
              const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Putzer</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>";
              const htmlTable="<table style=\"color:"+color_in_table+";text-align:left; font-family:"+schriftart+";background-image: linear-gradient(67deg,transparent,"+color_gradient1+");\">";
              const htmlReset="<p style=\"color:red;font-family:"+schriftart+";\"><i>!!! ohne Javascript Instanzen !!! kann enabled werden</i></p>"
              const htmlHeaders = "style=\"color:"+colorHeadlines+";\""; 
              const htmlHeadersDP = "style=\"color:"+colorHeadlinesDP+";\""; 
              
              //  var htmlOhneAnzahl="<p style=\"color:red;font-family:"+schriftart+";\"><i>!!! ohne DatenpunktZählung !!! kann enabled werden</i></p>"
              const htmlError="<p style=\"color:red;font-family:"+schriftart+";\"><i>Script hat Fehler - bitte Log checken !!!</i></p>"
              var allInstArr=[];
              var  instanzArrHelp=[];
              const dpPrefix = "javascript."+ instance +".";
              var mylogs=false;
              var htmlDP=[];
              var htmlMSG=[];
              var counterAll=0;
              var directSearch=false;
              
              
              var htmlHelper="";
              var htmlHelperFile="";
              
              createState(dpPrefix + "ProofingDatapoints.HTMLTable", { name: 'HTMLTable',  type: 'string', read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.ScriptVersion", versionNr,{ name: 'ScriptVersion',  type: 'string', read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.RunScript", { name: 'RunScript',  type: 'boolean', role:"switch", read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck", true,{ name: 'JavaInstanzCheck',  type: 'boolean', role:"switch", read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck", true,{ name: 'ObjectAnzahlCheck',  type: 'boolean', role:"switch", read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.MonsterSearch", false,{ name: 'MonsterSearch',  type: 'boolean', role:"switch", read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige", false,{ name: 'ohneInstanzAnzeige',  type: 'boolean', role:"switch", read:  true,  write: true,});
              createState(dpPrefix + "ProofingDatapoints.OrdnerCheck", { name: 'OrdnerCheck',  type: 'string', read:  true,  write: true,});
              
              
              //------------------------------------------CHECK INSTANZEN--------------------------------------------------------
              
              function instanzCount(){
                var ohneInstanz = getState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige").val;
                
                 var counter=0; var counter2=0;var counter3=0; 
              $('system.adapter.*.alive').each(function(id, i) {
              
              
                  var ida = id.split('.');
                   allInstArr.push(ida[2]+"."+ida[3]);
              
                if (!ohneInstanz && !directSearch) {
                 
                 if(!id.includes("vis")){
                 
              
                 counter++;
              
                 if (getState(id).val==null) {;counter2++; mylog(ida[2]+ida[3]+"--------------------der hier wurde nie gestartet"); 
                    htmlDP.push(ida[2]+"."+ida[3]);
                    htmlMSG.push("Instanzen ohne Werte");} //else{instanzArr.push(ida[2]+"."+ida[3])}
                 if (getState(id).val==false) {counter3++;mylog(ida[2]+ida[3]+"-----------------------der hier ist ausgeschalten"); 
                    htmlDP.push(ida[2]+"."+ida[3]);
                    htmlMSG.push("nicht aktiviert");} /*else{instanzArr.push(ida[2]+"."+ida[3])}*/
                 }}
              });
               if (!ohneInstanz) {
              mylog("______________________________________________Anzahl Instanzen: " + counter.toString());
              htmlDP.push("");
              htmlMSG.push("");
              htmlDP.push("Anzahl Instanzen");
              htmlMSG.push(counter.toString());
              
              mylog("______________________________________________Anzahl gestoppter Instanzen ohne Werte: " + counter2.toString())
              htmlDP.push("Instanzen ohne Werte");
              htmlMSG.push(counter2.toString());
              htmlDP.push("Instanzen nicht aktiviert");
              htmlMSG.push(counter3.toString());
              
               }
              
              }
              
              
              //------------------------------------------CHECK ZUORDNUNG--------------------------------------------------------
              
              function checkTypes(select) {
                  mylog("bin in check types");
                 var counter=0; 
                 htmlMSG.push("");
                 htmlDP.push("");
                 var sub= select.substring(select.length-1, select.length); log("---------: "+sub);log("----------select: "+select);
                 mylog(select)
                 $(select).each(function (id, i) {
                     counter++
              
                     
                        
                 if (!id.includes('scriptEnabled') && !id.includes('scriptProblem')  && getState(id).val !== null /*&& !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
              
                     if (!JSON.stringify(getObject(id)).includes("type")) {
                    
                          var valType = typeof getState(id).val;
                           htmlDP.push(id+": "+valType);
                           htmlMSG.push("<b>missing TYPE !!</b>" );}
                     
                      else{ var dpType = getObject(id).common.type;
                            var valType = typeof getState(id).val;
                            if(dpType != "mixed" ) {
                            if(dpType !== valType && !(dpType == 'array' && valType == 'object') /*&& !(dpType =='text' && valType=='string') && !(dpType =='string' && valType=='text')*/ ) {
                               mylog(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                               htmlDP.push(id+": "+valType);
                               htmlMSG.push(dpType );
              
                               /* später testing)
                               console.log("======1=============no type: "+id +"object: "+JSON.stringify(getObject(id)));
                               if(!getObject(id).common.hasOwnProperty("type")) console.log("--------------kein TYPE: "+id) ;
                               console.log("======2=============no type: "+id +"object: "+JSON.stringify(getObject(id).common));
                             */
                               
                               }
                             
                     }}
                   /*
                     if(dpType != valType && !(dpType == 'array' && valType == 'object')) {
                         log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                         htmlDP.push(dpType);
                         htmlMSG.push(valType);
                     }*/
                 }
                 });
                 htmlDP.push("<i>ID + IST-WERT</i>");
                 htmlMSG.push("<i>SOLL-WERT</i>");
                 htmlDP.push("-col-<b>geprüfte Instanz</b>");
                 htmlMSG.push("-col-<i><b>"+select+"</b></i>");
                 mylog("fertg" + counter.toString())
                
              }
              
              //------------------------------------------CHECK  WERTE--------------------------------------------------------
              
              function checkWerte(select) {
                 mylog("bin in check Werte");
                 var counter=0; 
              
                 mylog(select);
                 $(select).each(function (id, i) {
                     counter++
                     
                 if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') /* )  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
                    //var dpType = getObject(id).common.type;
                     try {
                     var valType =  getState(id).val;
                     } catch (e) {console.log("------------ERROR: "+e)}
              
              
                    // if(dpType != "mixed" ) {}
              
                         if(valType === null) {mylog(id + ': Datenpunkttyp: ' /*+ dpType */+ ", Wert: "+valType);
                             htmlDP.push(id);
                             var ddd = new Date().getTime()-getObject(id).ts;
                             htmlMSG.push("missing seit " + Math.floor((ddd)/1000/60/60/24)+"d "+Math.floor((ddd)/1000/60/60 %24)+"h "+Math.floor((ddd)/1000/60 %60)+"m ");
                         } 
                     
                  
                 }
                 });
               
                  mylog("bin raus aus check Werte");
                
              }
              //---------------------------------------------------------------------------------------------------------------------
              
              
              function mylog(message) {
                if(mylogs)
                    console.log(message);
              }
              
              //------------------------------------------Zähle Objecte der  INSTANZEN--------------------------------------------------------
              function countDP(idb){
                 mylog("bin richtig in count");
                 var counter4=0;
              
                 $(idb+".*").each(function(id, i) {
                 counter4++; })
              
              mylog(idb+counter4);
              htmlDP.unshift(idb);
              htmlMSG.unshift(counter4.toString());
              counterAll=counterAll+counter4;
              mylog("bin raus aus count");
              }
              
              //----------------------------------------------Direct Suchen
              
              on({id:dpPrefix + "ProofingDatapoints.OrdnerCheck", change: "any"}, function (obj) {
                 
                  directSearch=true;
                   instanzArrHelp=[];
                  setState(dpPrefix + "ProofingDatapoints.RunScript",true);
              
              
                  });
              
              //-----------------------------------------------SCHALTER MAIN------------------------------------------------
              on({id:dpPrefix + "ProofingDatapoints.RunScript",  val: true}, function (obj) { 
                 let java= getState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck").val;
                 let instanzAnzahl= getState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck").val;
                 let monster= getState(dpPrefix + "ProofingDatapoints.MonsterSearch").val;
                 var ohneInstanz = getState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige").val;
                 var endehtmlConst=   "<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\">Letztes File Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"</p>";
                 var endehtmlDPConst=   "<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\">Letztes Table Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"</p>";
                 setState(dpPrefix + "ProofingDatapoints.ScriptVersion",versionNr);
                 htmlHelper="";
                 htmlHelperFile="";
                 setState(dpPrefix + "ProofingDatapoints.HTMLTable",htmlReset+endehtml+htmlError);
                 writeFile(null, "/ProofingDatapoints/htmlputz.html" ,htmlReset+endehtml+htmlError+"</body>", function (error) {mylog('file written'); });
                
                 counterAll=0;
                 instanzArrHelp=[];
                 allInstArr=[];
              
              
              setStateDelayed(dpPrefix + "ProofingDatapoints.RunScript",false,2500);
              
              htmlDP=[];
              htmlMSG=[];
              
              instanzCount();  //überprüft instanzen und stellt allInstArr her
              
              htmlDP.push("-col-<b>INSTANZ INFO</b>"); htmlMSG.push(""); htmlDP.push(""); htmlMSG.push("");
              mylog(instanzArr.length+"==================="+instanzArr.toString());
              
              
              if (monster) {instanzArrHelp=allInstArr;} else {instanzArrHelp=instanzArr}  //ACHTUNG MONSTERSEARCH
              if (directSearch) {instanzArrHelp=[]; instanzArrHelp.push(getState(dpPrefix + "ProofingDatapoints.OrdnerCheck").val);}
              
              for(let name in instanzArrHelp){
                 checkWerte(instanzArrHelp[name]+".*")                   //checkt alle werte in intanzArr
                  mylog("!!!!!!!!!!!!!!!!!!!!:  "+instanzArrHelp[name]);}
              
                  if (instanzAnzahl){
                        htmlDP.unshift(""); htmlMSG.unshift("");htmlDP.unshift("<b>OBJECTE IN INSTANZ</b>"); htmlMSG.unshift("Anzahl"); 
                         
                        for(let name in instanzArrHelp){
                          countDP(instanzArrHelp[name]);mylog("bin in zhlen");}
                          if (java && !monster) countDP("javascript")
                        htmlDP.unshift("-col-<b>GESAMT GEPRÜFTE OBJECTE IN INSTANZEN</b>"); htmlMSG.unshift("-col-<b>"+counterAll.toString()+"</b>"); 
                        
                        }
                        mylog("=============: "+counterAll);
              
              if (java && !monster && !ohneInstanz && !directSearch) checkWerte('javascript.*');                //checkt alle javainstanzen
              
              
               htmlDP.push("-col-<b>ID's OHNE WERT:</b>");
               htmlMSG.push("");
              
              for(let name in instanzArrHelp){
                 checkTypes(instanzArrHelp[name]+".*")
                 mylog("!!!!!!!!!!!!!!!!!!!!:  "+instanzArrHelp[name])};
                   htmlDP.push("");
                   htmlMSG.push("");
                   htmlDP.push("-col-<b>IDs MIT FALSCHEN TYPE:</b>");
                   htmlMSG.push("");
              
              
               if (java && !monster && !ohneInstanz && !directSearch ) checkTypes('javascript.*');
              
              for(var i= htmlDP.length-1; i>-1; i--) {
                  let htmlDPVis; let htmlDPFile;let htmlMSGVis;let htmlMSGFile;
                    if(htmlDP[i].includes("-col-")) {htmlDPVis=htmlDP[i].replace("-col-", (htmlHeadersDP+">"));  htmlDPVis=" "+htmlDPVis } else {htmlDPVis=">"+htmlDP[i]}
                    if(htmlMSG[i].includes("-col-")) {htmlMSGVis=htmlMSG[i].replace("-col-", (htmlHeadersDP+">"));htmlMSGVis=" "+htmlMSGVis } else {htmlMSGVis=">"+htmlMSG[i]}
                    htmlHelper= htmlHelper+"<tr><td"+htmlDPVis+"&ensp;&ensp;</td><td"+htmlMSGVis+"&ensp;&ensp;</td></tr>"
              
                  //  if(htmlDP[i].includes("-col-")) {htmlDP[i]=htmlDP[i].replace("-col-", (htmlHeaders+">")); htmlDPFile=htmlDP[i]; htmlDPFile= " "+htmlDPFile ; } else {htmlDPFile=">"+htmlDP[i]}
                          if(htmlDP[i].includes("-col-")) {htmlDPFile=htmlDP[i].replace("-col-", (htmlHeaders+">"));  htmlDPFile= " "+htmlDPFile ; } else {htmlDPFile=">"+htmlDP[i]}
              
                    if(htmlMSG[i].includes("-col-")) {htmlMSGFile=htmlMSG[i].replace("-col-", (htmlHeaders+">")); htmlMSGFile=" "+htmlMSGFile; } else {htmlMSGFile=">"+htmlMSG[i]}    
                    htmlHelperFile= htmlHelperFile+"<tr><td"+htmlDPFile+"&ensp;&ensp;</td><td"+htmlMSGFile+"&ensp;&ensp;</td></tr>"
              }
                 var   endehtml=endehtmlConst;
                 var   endehtmlDP=endehtmlDPConst;                       
                  
              
                 if (monster){endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Monster Suche wird automatisch  deaktiviert !!!</i></p>"+endehtml;
                           endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! ACHTUNG: SYSTEM WIRD BELASTET !!! </br></br>!!! Monster Suche wird automatisch  deaktiviert !!! </br></br> BERICHT/AUSWERTUNG NUR ÜBER WEBSEITE</i></p>"+endehtmlDP;}
              
              
                 if (!instanzAnzahl){endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne DatenpunktZählung !!! kann enabled werden</i></p>"+endehtml;
                           endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne DatenpunktZählung !!! kann enabled werden</i></p>"+endehtmlDP;}
              
                 if (!java){ endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne Javascript Instanzen !!! kann enabled werden</i></p>"+endehtml;
                           endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne Javascript Instanzen !!! kann enabled werden</i></p>"+endehtmlDP;}
                 
                 if(!monster) { setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP+"<table>"+htmlHelper,900);} else{setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP,900);}
                
                 console.log("================================schreibe file")  ; 
                 if(true)  writeFile(null, "/ProofingDatapoints/htmlputz.html" ,format+endehtml+htmlTable+htmlHelperFile+"</table></body>", function (error) { mylog('file written'); });
              
                // endehtml=endehtmlConst;
                // endehtmlDP=endehtmlDPConst;
              
                 setState(dpPrefix + "ProofingDatapoints.MonsterSearch",false);  //setzt monstersearch zurück
                directSearch=false;
              
              
              });
              
              

              sigi234 1 Reply Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @liv-in-sky last edited by sigi234

                @liv-in-sky

                Html wurde nicht erstellt. Vis schon.

                Das Skript musst 2 Mal gestartet werden, beim 1. Mal kommt das:

                Screenshot (329).png

                liv-in-sky 3 Replies Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @sigi234 last edited by

                  @sigi234 hättest du auch das große log ? ich bekomm den fehler mit zeile 291 nicht zusammen - der fehler kommt beim aktivieren/starten oder beim ausführen des script durch runScript=true?

                  mach doch auch mal bitte einen test mit dem directSearch - siehe erster post

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

                    @sigi234 ich kann den fehler nachvollziehen - arbeite daran

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

                      @sigi234

                      bitte nochmal testen - sorry dafür - aber manchmal ist der wurm drin

                      // @Liv-in-sky Okt.  2019
                      
                      
                      
                      
                                                                // WICHTIG
                                                                // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte    , "alexa2.0"
                                                                //oder auch nur einzelne ornder in der datenstruktur z.b. "javascript.2.WLANUnifi"
                      const instanzArr=[ "EigeneDatenpunkte.0"];    
                                                                // beispiel const instanzArr=[ "eigeneDatenpunkte.0", "ping.0",];
                      
                      var color_in_table="black"         // Farbe text in webseite
                      let schriftart="Helvetica";        // möglich: Helvetica,Serif
                      var color_gradient1="#819FF7";     // Hintergrund webseite 
                      var colorHeadlines="darkblue";     // Farbe Überschriften in der VIS Anzeige
                      var colorHeadlinesDP="#36d5ec ";   // Farbe Überschriften in der WebSeite Anzeige     
                      var warnFarbe = "#36d5ec";         //Farbe für Warnungen in vis und Webseite
                      
                      
                      //------------------------------------------AB HIER NICHTS ÄNDERN--------------------------------------------------------
                      
                      
                      
                      const versionNr = "15102019-1.1"
                      const warnColor = warnFarbe ;
                      
                      const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Putzer</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>";
                      const htmlTable="<table style=\"color:"+color_in_table+";text-align:left; font-family:"+schriftart+";background-image: linear-gradient(67deg,transparent,"+color_gradient1+");\">";
                      const htmlReset="<p style=\"color:red;font-family:"+schriftart+";\"><i>!!! ohne Javascript Instanzen !!! kann enabled werden</i></p>"
                      const htmlHeaders = "style=\"color:"+colorHeadlines+";\""; 
                      const htmlHeadersDP = "style=\"color:"+colorHeadlinesDP+";\""; 
                      
                      //  var htmlOhneAnzahl="<p style=\"color:red;font-family:"+schriftart+";\"><i>!!! ohne DatenpunktZählung !!! kann enabled werden</i></p>"
                      const htmlError="<p style=\"color:red;font-family:"+schriftart+";\"><i>Script hat Fehler - bitte Log checken !!!</i></p>"
                      var allInstArr=[];
                      var  instanzArrHelp=[];
                      const dpPrefix = "javascript."+ instance +".";
                      var mylogs=false;
                      var htmlDP=[];
                      var htmlMSG=[];
                      var counterAll=0;
                      var directSearch=false;
                      var switchOn=false;
                      
                      
                      var htmlHelper="";
                      var htmlHelperFile="";
                      
                      createState(dpPrefix + "ProofingDatapoints.HTMLTable", { name: 'HTMLTable',  type: 'string', read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.ScriptVersion", versionNr,{ name: 'ScriptVersion',  type: 'string', read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.RunScript",false, { name: 'RunScript',  type: 'boolean', role:"switch", read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck", true,{ name: 'JavaInstanzCheck',  type: 'boolean', role:"switch", read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck", true,{ name: 'ObjectAnzahlCheck',  type: 'boolean', role:"switch", read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.MonsterSearch", false,{ name: 'MonsterSearch',  type: 'boolean', role:"switch", read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige", false,{ name: 'ohneInstanzAnzeige',  type: 'boolean', role:"switch", read:  true,  write: true,});
                      createState(dpPrefix + "ProofingDatapoints.OrdnerCheck", "", { name: 'OrdnerCheck',  type: 'string', read:  true,  write: true,});
                      
                      
                      //------------------------------------------CHECK INSTANZEN--------------------------------------------------------
                      
                      function instanzCount(){
                        var ohneInstanz = getState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige").val;
                        
                         var counter=0; var counter2=0;var counter3=0; 
                      $('system.adapter.*.alive').each(function(id, i) {
                      
                      
                          var ida = id.split('.');
                           allInstArr.push(ida[2]+"."+ida[3]);
                      
                        if (!ohneInstanz && !directSearch) {
                         
                         if(!id.includes("vis")){
                         
                      
                         counter++;
                      
                         if (getState(id).val==null) {;counter2++; mylog(ida[2]+ida[3]+"--------------------der hier wurde nie gestartet"); 
                            htmlDP.push(ida[2]+"."+ida[3]);
                            htmlMSG.push("Instanzen ohne Werte");} //else{instanzArr.push(ida[2]+"."+ida[3])}
                         if (getState(id).val==false) {counter3++;mylog(ida[2]+ida[3]+"-----------------------der hier ist ausgeschalten"); 
                            htmlDP.push(ida[2]+"."+ida[3]);
                            htmlMSG.push("nicht aktiviert");} /*else{instanzArr.push(ida[2]+"."+ida[3])}*/
                         }}
                      });
                       if (!ohneInstanz) {
                      mylog("______________________________________________Anzahl Instanzen: " + counter.toString());
                      htmlDP.push("");
                      htmlMSG.push("");
                      htmlDP.push("Anzahl Instanzen");
                      htmlMSG.push(counter.toString());
                      
                      mylog("______________________________________________Anzahl gestoppter Instanzen ohne Werte: " + counter2.toString())
                      htmlDP.push("Instanzen ohne Werte");
                      htmlMSG.push(counter2.toString());
                      htmlDP.push("Instanzen nicht aktiviert");
                      htmlMSG.push(counter3.toString());
                      
                       }
                      
                      }
                      
                      
                      //------------------------------------------CHECK ZUORDNUNG--------------------------------------------------------
                      
                      function checkTypes(select) {
                          mylog("bin in check types");
                         var counter=0; 
                         htmlMSG.push("");
                         htmlDP.push("");
                         var sub= select.substring(select.length-1, select.length); log("---------: "+sub);log("----------select: "+select);
                         mylog(select)
                         $(select).each(function (id, i) {
                             counter++
                      
                             
                                
                         if (!id.includes('scriptEnabled') && !id.includes('scriptProblem')  && getState(id).val !== null /*&& !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
                      
                             if (!JSON.stringify(getObject(id)).includes("type")) {
                            
                                  var valType = typeof getState(id).val;
                                   htmlDP.push(id+": "+valType);
                                   htmlMSG.push("<b>missing TYPE !!</b>" );}
                             
                              else{ var dpType = getObject(id).common.type;
                                    var valType = typeof getState(id).val;
                                    if(dpType != "mixed" ) {
                                    if(dpType !== valType && !(dpType == 'array' && valType == 'object') /*&& !(dpType =='text' && valType=='string') && !(dpType =='string' && valType=='text')*/ ) {
                                       mylog(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                                       htmlDP.push(id+": "+valType);
                                       htmlMSG.push(dpType );
                      
                                       /* später testing)
                                       console.log("======1=============no type: "+id +"object: "+JSON.stringify(getObject(id)));
                                       if(!getObject(id).common.hasOwnProperty("type")) console.log("--------------kein TYPE: "+id) ;
                                       console.log("======2=============no type: "+id +"object: "+JSON.stringify(getObject(id).common));
                                     */
                                       
                                       }
                                     
                             }}
                           /*
                             if(dpType != valType && !(dpType == 'array' && valType == 'object')) {
                                 log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType);
                                 htmlDP.push(dpType);
                                 htmlMSG.push(valType);
                             }*/
                         }
                         });
                         htmlDP.push("<i>ID + IST-WERT</i>");
                         htmlMSG.push("<i>SOLL-WERT</i>");
                         htmlDP.push("-col-<b>geprüfte Instanz</b>");
                         htmlMSG.push("-col-<i><b>"+select+"</b></i>");
                         mylog("fertg" + counter.toString())
                        
                      }
                      
                      //------------------------------------------CHECK  WERTE--------------------------------------------------------
                      
                      function checkWerte(select) {
                         mylog("bin in check Werte");
                         var counter=0; 
                      
                         mylog(select);
                         $(select).each(function (id, i) {
                             counter++
                             
                         if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') /* )  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
                            //var dpType = getObject(id).common.type;
                             
                             var valType =  getState(id).val;
                            
                      
                      
                            // if(dpType != "mixed" ) {}
                      
                                 if(valType === null) {mylog(id + ': Datenpunkttyp: ' /*+ dpType */+ ", Wert: "+valType);
                                     htmlDP.push(id);
                                     var ddd = new Date().getTime()-getObject(id).ts;
                                     htmlMSG.push("missing seit " + Math.floor((ddd)/1000/60/60/24)+"d "+Math.floor((ddd)/1000/60/60 %24)+"h "+Math.floor((ddd)/1000/60 %60)+"m ");
                                 } 
                             
                          
                         }
                         });
                       
                          mylog("bin raus aus check Werte");
                        
                      }
                      //---------------------------------------------------------------------------------------------------------------------
                      
                      
                      function mylog(message) {
                        if(mylogs)
                            console.log(message);
                      }
                      
                      //------------------------------------------Zähle Objecte der  INSTANZEN--------------------------------------------------------
                      function countDP(idb){
                         mylog("bin richtig in count");
                         var counter4=0;
                      
                         $(idb+".*").each(function(id, i) {
                         counter4++; })
                      
                      mylog(idb+counter4);
                      htmlDP.unshift(idb);
                      htmlMSG.unshift(counter4.toString());
                      counterAll=counterAll+counter4;
                      mylog("bin raus aus count");
                      }
                      
                      //----------------------------------------------Direct Suchen
                      
                      on({id:dpPrefix + "ProofingDatapoints.OrdnerCheck", ack: false, change: "any"}, function (obj) {
                       
                          directSearch=true;
                           instanzArrHelp=[];
                          setState(dpPrefix + "ProofingDatapoints.RunScript",true);
                      
                         
                          });
                      
                      //-----------------------------------------------SCHALTER MAIN------------------------------------------------
                      on({id:dpPrefix + "ProofingDatapoints.RunScript", ack: false, val: true}, function (obj) { 
                        
                         let java= getState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck").val;
                         let instanzAnzahl= getState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck").val;
                         let monster= getState(dpPrefix + "ProofingDatapoints.MonsterSearch").val;
                         var ohneInstanz = getState(dpPrefix + "ProofingDatapoints.ohneInstanzAnzeige").val;
                         var endehtmlConst=   "<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\">Letztes File Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"</p>";
                         var endehtmlDPConst=   "<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\">Letztes Table Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"</p>";
                         setState(dpPrefix + "ProofingDatapoints.ScriptVersion",versionNr);
                         htmlHelper="";
                         htmlHelperFile="";
                         setState(dpPrefix + "ProofingDatapoints.HTMLTable",htmlReset+endehtml+htmlError);
                         writeFile(null, "/ProofingDatapoints/htmlputz.html" ,htmlReset+endehtml+htmlError+"</body>", function (error) {mylog('file written'); });
                        
                         counterAll=0;
                         instanzArrHelp=[];
                         allInstArr=[];
                      
                      
                      setStateDelayed(dpPrefix + "ProofingDatapoints.RunScript",false,2500);
                      
                      htmlDP=[];
                      htmlMSG=[];
                      
                      instanzCount();  //überprüft instanzen und stellt allInstArr her
                      
                      htmlDP.push("-col-<b>INSTANZ INFO</b>"); htmlMSG.push(""); htmlDP.push(""); htmlMSG.push("");
                      mylog(instanzArr.length+"==================="+instanzArr.toString());
                      
                      
                      if (monster) {instanzArrHelp=allInstArr;} else {instanzArrHelp=instanzArr}  //ACHTUNG MONSTERSEARCH
                      if (directSearch) {instanzArrHelp=[]; instanzArrHelp.push(getState(dpPrefix + "ProofingDatapoints.OrdnerCheck").val);}
                      
                      for(let name in instanzArrHelp){
                         checkWerte(instanzArrHelp[name]+".*")                   //checkt alle werte in intanzArr
                          mylog("!!!!!!!!!!!!!!!!!!!!:  "+instanzArrHelp[name]);}
                      
                          if (instanzAnzahl){
                                htmlDP.unshift(""); htmlMSG.unshift("");htmlDP.unshift("<b>OBJECTE IN INSTANZ</b>"); htmlMSG.unshift("Anzahl"); 
                                 
                                for(let name in instanzArrHelp){
                                  countDP(instanzArrHelp[name]);mylog("bin in zhlen");}
                                  if (java && !monster) countDP("javascript")
                                htmlDP.unshift("-col-<b>GESAMT GEPRÜFTE OBJECTE IN INSTANZEN</b>"); htmlMSG.unshift("-col-<b>"+counterAll.toString()+"</b>"); 
                                
                                }
                                mylog("=============: "+counterAll);
                      
                      if (java && !monster && !ohneInstanz && !directSearch) checkWerte('javascript.*');                //checkt alle javainstanzen
                      
                      
                       htmlDP.push("-col-<b>ID's OHNE WERT:</b>");
                       htmlMSG.push("");
                      
                      for(let name in instanzArrHelp){
                         checkTypes(instanzArrHelp[name]+".*")
                         mylog("!!!!!!!!!!!!!!!!!!!!:  "+instanzArrHelp[name])};
                           htmlDP.push("");
                           htmlMSG.push("");
                           htmlDP.push("-col-<b>IDs MIT FALSCHEN TYPE:</b>");
                           htmlMSG.push("");
                      
                      
                       if (java && !monster && !ohneInstanz && !directSearch ) checkTypes('javascript.*');
                      
                      for(var i= htmlDP.length-1; i>-1; i--) {
                          let htmlDPVis; let htmlDPFile;let htmlMSGVis;let htmlMSGFile;
                            if(htmlDP[i].includes("-col-")) {htmlDPVis=htmlDP[i].replace("-col-", (htmlHeadersDP+">"));  htmlDPVis=" "+htmlDPVis } else {htmlDPVis=">"+htmlDP[i]}
                            if(htmlMSG[i].includes("-col-")) {htmlMSGVis=htmlMSG[i].replace("-col-", (htmlHeadersDP+">"));htmlMSGVis=" "+htmlMSGVis } else {htmlMSGVis=">"+htmlMSG[i]}
                            htmlHelper= htmlHelper+"<tr><td"+htmlDPVis+"&ensp;&ensp;</td><td"+htmlMSGVis+"&ensp;&ensp;</td></tr>"
                      
                          //  if(htmlDP[i].includes("-col-")) {htmlDP[i]=htmlDP[i].replace("-col-", (htmlHeaders+">")); htmlDPFile=htmlDP[i]; htmlDPFile= " "+htmlDPFile ; } else {htmlDPFile=">"+htmlDP[i]}
                                  if(htmlDP[i].includes("-col-")) {htmlDPFile=htmlDP[i].replace("-col-", (htmlHeaders+">"));  htmlDPFile= " "+htmlDPFile ; } else {htmlDPFile=">"+htmlDP[i]}
                      
                            if(htmlMSG[i].includes("-col-")) {htmlMSGFile=htmlMSG[i].replace("-col-", (htmlHeaders+">")); htmlMSGFile=" "+htmlMSGFile; } else {htmlMSGFile=">"+htmlMSG[i]}    
                            htmlHelperFile= htmlHelperFile+"<tr><td"+htmlDPFile+"&ensp;&ensp;</td><td"+htmlMSGFile+"&ensp;&ensp;</td></tr>"
                      }
                         var   endehtml=endehtmlConst;
                         var   endehtmlDP=endehtmlDPConst;                       
                          
                      
                         if (monster){endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Monster Suche wird automatisch  deaktiviert !!!</i></p>"+endehtml;
                                   endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! ACHTUNG: SYSTEM WIRD BELASTET !!! </br></br>!!! Monster Suche wird automatisch  deaktiviert !!! </br></br> BERICHT/AUSWERTUNG NUR ÜBER WEBSEITE</i></p>"+endehtmlDP;}
                      
                      
                         if (!instanzAnzahl){endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne DatenpunktZählung !!! kann enabled werden</i></p>"+endehtml;
                                   endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne DatenpunktZählung !!! kann enabled werden</i></p>"+endehtmlDP;}
                      
                         if (!java){ endehtml="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne Javascript Instanzen !!! kann enabled werden</i></p>"+endehtml;
                                   endehtmlDP="<p style=\"color:"+warnColor+"; font-family:"+schriftart+";\"><i>!!! Auswertung ohne Javascript Instanzen !!! kann enabled werden</i></p>"+endehtmlDP;}
                         
                         if(!monster) { setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP+"<table>"+htmlHelper,900);} else{setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP,900);}
                        
                         mylog("================================schreibe file")  ; 
                         writeFile(null, "/ProofingDatapoints/htmlputz.html" ,format+endehtml+htmlTable+htmlHelperFile+"</table></body>", function (error) { mylog('file written'); });
                      
                        // endehtml=endehtmlConst;
                        // endehtmlDP=endehtmlDPConst;
                      
                         setState(dpPrefix + "ProofingDatapoints.MonsterSearch",false);  //setzt monstersearch zurück
                         directSearch=false;
                       
                      });
                      
                      

                      sigi234 1 Reply Last reply Reply Quote 0
                      • sigi234
                        sigi234 Forum Testing Most Active @liv-in-sky last edited by

                        @liv-in-sky sagte in Script - Info über Datenpunkte sammeln:

                                                                                                                                                                                                                                          // WICHTIG                                                                                                                                                                                                                      // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte    , "alexa2.0"                                                                                                                                                                                                                      //oder auch nur einzelne ornder in der datenstruktur z.b. "javascript.2.WLANUnifi"                                                                                                                                                                            const instanzArr=[ "EigeneDatenpunkte.0"];                                                                                                                                                                                                                          // beispiel const instanzArr=[ "eigeneDatenpunkte.0", "ping.0",];                                                                                                                                                                                                                                                                                                                                                         // @Liv-in-sky Okt.  2019
                        

                        2 Mal drinnen!

                        
                                                                  // WICHTIG
                                                                  // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte    , "alexa2.0"
                                                                  //oder auch nur einzelne ornder in der datenstruktur z.b. "javascript.2.WLANUnifi"
                        const instanzArr=[ "EigeneDatenpunkte.0"];    
                                                                  // beispiel const instanzArr=[ "eigeneDatenpunkte.0", "ping.0",];
                         
                        // @Liv-in-sky Okt.  2019
                        
                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @sigi234 last edited by

                          @sigi234 bitte rauslöschen - ich mache für heute pause 😞 und habs geändert

                          aber immerhin hab ich schon mal einen fehler im alexa2 adapter gefunden (wird gefixt) - ist doch schon mal was 🙂

                          sigi234 1 Reply Last reply Reply Quote 0
                          • sigi234
                            sigi234 Forum Testing Most Active @liv-in-sky last edited by sigi234

                            @liv-in-sky sagte in Script - Info über Datenpunkte sammeln:

                            bitte rauslöschen

                            ja,schaut besser aus, kein Fehler im Log.

                            HTML - leider nein, wird nicht erstellt.

                            Skript hängt sich auf.....

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

                              @paul53

                              sorry aber ich muss dich nochmal was fragen - ich versuche multistate datenpunkte zu filtern, die keine number im attribut haben sondern string

                              ist diese abfrage richtig - sie macht das mit meinen testpunkten aber ich würde gerne deine meinung haben

                                       if(getObject(id).common.hasOwnProperty("states")){
                              
                                       var helpStates= Object.keys(getObject(id).common.states);
                              
                                       if (true) { //platz für weitere bedingung
                                                  var alarmString=false;
                                                  for (var i=0;  i  < helpStates.length ;i++){
                                                       mylog(typeof helpStates[i]); //damit geht es nicht !
                                                       myog(isNaN(helpStates[i]).toString())  ;
                                                       if (isNaN(helpStates[i])) alarmString=true; 
                                                       }  
                                                  if (alarmString){  htmlDP.push(id);
                                                                     htmlMSG.push("ACHTUNG Multstate must be number")}
                                                  }
                                       
                                       }
                              

                              Image 4.png

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

                                @liv-in-sky :

                                ich versuche multistate datenpunkte zu filtern, die keine number im attribut haben sondern string

                                Auch Datenpunkte vom Typ "boolean" können Zustandstexte (states) haben, z.B.

                                    "states": {
                                      "false": "Aus",
                                      "true": "Ein"
                                    }
                                
                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @paul53 last edited by

                                  @paul53
                                  es gibt aber nur: type number, da müssen im "states" zahlen drin sein
                                  und type boolean - da müssen in "states"logic werte drin sein

                                          if (helpType=="number" || helpType=="boolean") {
                                                     var alarmString=false;var alarmString2=false;
                                                     for (var i=0;  i  < helpStates.length ;i++){
                                                        //  console.log( helpStates[i]);
                                                          mylog(isNaN(helpStates[i]).toString())  ;
                                                          if (isNaN(helpStates[i]) && helpType=="number") alarmString=true; //type number - stehen da nummern drin
                                                          var helpTypeBool= helpStates[i].toString()  + helpType;
                                                          if  (helpType=="boolean") {if (helpTypeBool !="falseboolean" && helpTypeBool != "trueboolean")  alarmString2=true;} //type boolean - stehen da booleans
                                                     }
                                                     if (alarmString){  htmlDP.push(id);
                                                                        htmlMSG.push("ACHTUNG Multstate must be number")}
                                                     if (alarmString2){ htmlDP.push(id);
                                                                        htmlMSG.push("ACHTUNG Multstate must be boolean")}
                                                     } else {htmlDP.push(id);
                                                             htmlMSG.push("ACHTUNG Multstate wrong Def.")}
                                          
                                          }
                                  

                                  Image 5.png

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

                                    @liv-in-sky:

                                    es gibt aber nur: type number, da müssen im "states" zahlen drin sein
                                    und type boolean - da müssen in "states"logic werte drin sein

                                    Richtig.

                                    1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active @liv-in-sky last edited by sigi234

                                      @liv-in-sky sagte in Script - Info über Datenpunkte sammeln:

                                      version 1.2: ProofingDatapoints21-10-19.txt ab "AB HIER NICHTS ÄNDERN" ersetzen - multistates check hinzugefügt

                                      <p style="color:red;font-family:Helvetica;"><i>!!! ohne Javascript Instanzen !!! kann enabled werden</i></p>undefined<p style="color:red;font-family:Helvetica;"><i>Script hat Fehler - bitte Log checken !!!</i></p>

                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at tryOnImmediate (timers.js:676:5)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at runCallback (timers.js:705:18)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at Immediate.setImmediate (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\states\statesInRedis.js:214:41)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at change (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\adapter.js:4546:37)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at Object.stateChange (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:396:25)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at Object.callback (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1055:38)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at Object.<anonymous> (script.js.System.Objekte:285:5)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at checkWerte (script.js.System.Objekte:167:15)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at Object.result.each (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:808:29)
                                      javascript.0	2019-10-22 21:12:27.223	error	(15748) at script.js.System.Objekte:182:26
                                      javascript.0	2019-10-22 21:12:27.222	error	(15748) Error in callback: TypeError: Cannot read property 'common' of null
                                      
                                      liv-in-sky 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @sigi234 last edited by

                                        @sigi234

                                        leider habe ich heute keine zeit mehr - morgen als erstes - poste bitte mal deine settings

                                        sigi234 1 Reply Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active @liv-in-sky last edited by

                                          @liv-in-sky sagte in Script - Info über Datenpunkte sammeln:

                                          @sigi234

                                          leider habe ich heute keine zeit mehr - morgen als erstes - poste bitte mal deine settings

                                          // @Liv-in-sky Okt.  2019
                                            
                                                                                    // WICHTIG
                                                                                    // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte    , "alexa2.0"
                                                                                    //oder auch nur einzelne ornder in der datenstruktur z.b. "javascript.2.WLANUnifi"
                                          const instanzArr=[ "Eigene_Datenpunkte.0", "alexa2.0", "hm-rega.0", "hm-rpc.0"];    
                                                                                    // beispiel const instanzArr=[ "eigeneDatenpunkte.0", "ping.0",];
                                           
                                          var color_in_table="black"         // Farbe text in webseite
                                          let schriftart="Helvetica";        // möglich: Helvetica,Serif
                                          var color_gradient1="#819FF7";     // Hintergrund webseite 
                                          var colorHeadlines="darkblue";     // Farbe Überschriften in der VIS Anzeige
                                          var colorHeadlinesDP="#36d5ec ";   // Farbe Überschriften in der WebSeite Anzeige     
                                          var warnFarbe = "#36d5ec";         //Farbe für Warnungen in vis und Webseite
                                          
                                          liv-in-sky 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @sigi234 last edited by

                                            @sigi234

                                            hab doch noch mal nachgesehen - irgendwie ergeben die fehlermeldungen keinen sinn bzw. ich kann sie nicht richtig deuten - bitte stoppe script, lösche alle datenpunkte des scripts, kopiere die ganze neue version, setze nur deine "eigenen_datenpunkte.0" und starte das script nochmal

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            569
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            11
                                            291
                                            27108
                                            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