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.
    • 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
                                          • sigi234
                                            sigi234 Forum Testing Most Active @liv-in-sky last edited by sigi234

                                            @liv-in-sky

                                            Geht, Copy/Paste Fehler oder wenn ich eine const instanzArr hinzufüge.

                                            HTML wurde nicht erstellt.

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            489
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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