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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script - Info über Datenpunkte sammeln

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    953

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Script - Info über Datenpunkte sammeln

Scheduled Pinned Locked Moved JavaScript
javascripttemplate
291 Posts 11 Posters 39.0k Views 17 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • liv-in-skyL liv-in-sky

    @sigi234

    im datenpunkt ordnerCheck kannst du einzelne ordner durchsuchen

    probier darin mal "alexa2.0" und anschliessend "ping.0" - sobald der wert drin ist, läuft das script los und durchsucht nur diesen ordner

    eins davon sollte durchlaufen

    es scheint du hast einen state, der keinen datenpunkt hat (vermute ich mal) zumindest lt zeile, wo der fehler auftritt

    sigi234S Online
    sigi234S Online
    sigi234
    Forum Testing Most Active
    wrote on last edited by
    #57

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

    ping.0

    Geht aber keine HTML:

    Screenshot (367).png

    alexa2.0 geht nicht

    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Immer Daten sichern!

    1 Reply Last reply
    0
    • sigi234S sigi234

      @liv-in-sky

      So habe weitere instanzArr hinzufügefügt.
      Kommt sofort die Fehlermeldung.

      javascript.0	2019-10-23 18:46:59.473	error	(2400) at tryOnImmediate (timers.js:676:5)
      javascript.0	2019-10-23 18:46:59.473	error	(2400) at runCallback (timers.js:705:18)
      javascript.0	2019-10-23 18:46:59.473	error	(2400) at Immediate.setImmediate (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\states\statesInRedis.js:214:41)
      javascript.0	2019-10-23 18:46:59.473	error	(2400) at change (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\adapter.js:4546:37)
      javascript.0	2019-10-23 18:46:59.472	error	(2400) at Object.stateChange (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:396:25)
      javascript.0	2019-10-23 18:46:59.472	error	(2400) at Object.callback (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1055:38)
      javascript.0	2019-10-23 18:46:59.472	error	(2400) at Object.<anonymous> (script.js.System.Objekte:288:5)
      javascript.0	2019-10-23 18:46:59.472	error	(2400) at checkWerte (script.js.System.Objekte:170:15)
      javascript.0	2019-10-23 18:46:59.472	error	(2400) at Object.result.each (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:808:29)
      javascript.0	2019-10-23 18:46:59.472	error	(2400) at script.js.System.Objekte:185:26
      javascript.0	2019-10-23 18:46:59.472	error	(2400) Error in callback: TypeError: Cannot read property 'common' of null
      
      // @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=[ "alexa2.0", "Eigene_Datenpunkte", "ping.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-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by liv-in-sky
      #58

      @sigi234

      ich versuch mal den fehler abzufangen und einen fehler mit mehr info im iobroker log auszugeben

      du kanns tauch gerne mal dieses script versuchen - ist nur der teil unterm setting

      //------------------------------------------AB HIER NICHTS ÄNDERN--------------------------------------------------------
      
      
      
      const versionNr = "15102019-1.2"
      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 helplogs=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,});
      createState(dpPrefix + "ProofingDatapoints.RunSuccessful", false, { name: 'RunSuccessful',  type: 'boolean', role:"state", read:  true,  write: false,});
      
      
      //------------------------------------------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) {
          helplog("bin in check types");
         var counter=0; 
         htmlMSG.push("");
         htmlDP.push("");
         var sub= select.substring(select.length-1, select.length); log("---------: "+sub);//console.log("----------select: "+select);
         mylog(select)
         $(select).each(function (id, i) {
             counter++
      
           //  console.log("===============id vor null - kein value zu:  "+id);
                
         if (!id.includes('scriptEnabled') && !id.includes('scriptProblem')  && getState(id).val !== null /*&& !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
             //console.log("===============id vor null - kein value zu:  "+id);
            //console.log("status0-checkType");
             if (getState(id).val==null) console.log("===============nullwert - kein value zu:  "+id);
            
            //console.log("status1-checkType");
             if (!JSON.stringify(getObject(id)).includes("type") && !JSON.stringify(getObject(id)).includes("name") /*&& !JSON.stringify(getObject(id)).includes("meta")*/ ) {
            //console.log("===============id nach stringify - kein value zu:  "+id);
                  var valType = typeof getState(id).val;
                   htmlDP.push(id+": "+valType);
                   htmlMSG.push("<b>missing DP-OBEJCT !!</b>" );}
             
              else{ 
               //console.log("status2-checkType");
                  var dpType = getObject(id).common.type;
                    var valType = typeof getState(id).val;
                    if(dpType != "mixed" ) {
                    if(dpType !== valType && !(dpType == 'array' && valType == 'object' &&  dpType == 'meta.user') /*&& !(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("<b>geprüfte Instanz</b>");
        // htmlMSG.push("<i><b>"+select+"</b></i>");
          htmlDP.push("-col-<b>geprüfte Instanz</b>");
         htmlMSG.push("-col-<i><b>"+select+"</b></i>");
         helplog("fertg in checkType mit:" + counter.toString()+ " Durchläufen")
        
      }
      
      //------------------------------------------CHECK  WERTE--------------------------------------------------------
      
      function checkWerte(select) {
         helplog("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;
             
           
                  if (!JSON.stringify(getObject(id)).includes("type") && !JSON.stringify(getObject(id)).includes("name") ) { //CHECK MISSING OBJECT))
                   try{
                   valType = typeof getState(id).val;
                   } catch (e) {console.log("------------ERROR: "+e + "bei id: " + id); }
                   htmlDP.push(id+": "+valType);
                   htmlMSG.push("<b>missing DP-OBEJCT !!</b>" );}
      
                   else {
      
             var valType =  getState(id).val;
      
            // if(dpType != "mixed" ) {}
            //console.log("status1");
                 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 ");
                 } 
                    //console.log("status2");
              if(getObject(id).common.hasOwnProperty("states") /*&& JSON.stringify(getObject(id).common.states)!=null && JSON.stringify(getObject(id).common.states)!=undefined */){
                 // console.log("======2=============no type: "+id +"object: "+JSON.stringify(getObject(id).common.states));
                 //console.log("der hier: " +id);
                 try{
                 var helpStates= Object.keys(getObject(id).common.states);
                 } catch (e) {console.log("------------ERROR: "+e + "bei id: " + id); extendObject(id, {common: {states:{"0":"script"}}})}
                 var helpType= getObject(id).common.type;
                
               
               //  console.log(helpType);
              //console.log(helpStates.toString());
             // console.log(helpStates[0] + helpStates[1] );
              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("-col-<b>ACHTUNG Multstate must be number</b>")}
                         if (alarmString2){ htmlDP.push(id);
                                            htmlMSG.push("-col-<b>ACHTUNG Multstate must be boolean</b>")}
                         } else {htmlDP.push(id);
                                 htmlMSG.push("-col-<b>ACHTUNG Multstate wrong Def.</b>")}
              
              } //ende states check
             /* else {            htmlDP.push(id);
                                 htmlMSG.push("ACHTUNG Multstate wrong Def.")}*/
         } //ende check missing object
         } // ende script enabled check
         }); // ende selct.each
       
          helplog("bin raus aus check Werte");
        
      }
      //---------------------------------------------------------------------------------------------------------------------
      
      
      function mylog(message) {
        if(mylogs)
            console.log(message);
      }function helplog(message) {
        if(helplogs)
            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) { 
         setState(dpPrefix + "ProofingDatapoints.RunSuccessful",false); 
         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.*');
      
       //console.log(htmlMSG.length+"--"+htmlDP.length)
      for(var i= htmlDP.length-1; i>-1; i--) {
         //console.log(htmlDP[i]+"anerer :"+htmlMSG[i]);
           //  if (htmlMSG[i].includes("-col-")) console.log(htmlMSG[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;
          setState(dpPrefix + "ProofingDatapoints.RunSuccessful",true); 
      });
      
      

      mit etwas glück kommt damit eine fehlermeldung mit der id !

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

      sigi234S 2 Replies Last reply
      0
      • liv-in-skyL liv-in-sky

        @sigi234

        ich versuch mal den fehler abzufangen und einen fehler mit mehr info im iobroker log auszugeben

        du kanns tauch gerne mal dieses script versuchen - ist nur der teil unterm setting

        //------------------------------------------AB HIER NICHTS ÄNDERN--------------------------------------------------------
        
        
        
        const versionNr = "15102019-1.2"
        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 helplogs=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,});
        createState(dpPrefix + "ProofingDatapoints.RunSuccessful", false, { name: 'RunSuccessful',  type: 'boolean', role:"state", read:  true,  write: false,});
        
        
        //------------------------------------------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) {
            helplog("bin in check types");
           var counter=0; 
           htmlMSG.push("");
           htmlDP.push("");
           var sub= select.substring(select.length-1, select.length); log("---------: "+sub);//console.log("----------select: "+select);
           mylog(select)
           $(select).each(function (id, i) {
               counter++
        
             //  console.log("===============id vor null - kein value zu:  "+id);
                  
           if (!id.includes('scriptEnabled') && !id.includes('scriptProblem')  && getState(id).val !== null /*&& !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
               //console.log("===============id vor null - kein value zu:  "+id);
              //console.log("status0-checkType");
               if (getState(id).val==null) console.log("===============nullwert - kein value zu:  "+id);
              
              //console.log("status1-checkType");
               if (!JSON.stringify(getObject(id)).includes("type") && !JSON.stringify(getObject(id)).includes("name") /*&& !JSON.stringify(getObject(id)).includes("meta")*/ ) {
              //console.log("===============id nach stringify - kein value zu:  "+id);
                    var valType = typeof getState(id).val;
                     htmlDP.push(id+": "+valType);
                     htmlMSG.push("<b>missing DP-OBEJCT !!</b>" );}
               
                else{ 
                 //console.log("status2-checkType");
                    var dpType = getObject(id).common.type;
                      var valType = typeof getState(id).val;
                      if(dpType != "mixed" ) {
                      if(dpType !== valType && !(dpType == 'array' && valType == 'object' &&  dpType == 'meta.user') /*&& !(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("<b>geprüfte Instanz</b>");
          // htmlMSG.push("<i><b>"+select+"</b></i>");
            htmlDP.push("-col-<b>geprüfte Instanz</b>");
           htmlMSG.push("-col-<i><b>"+select+"</b></i>");
           helplog("fertg in checkType mit:" + counter.toString()+ " Durchläufen")
          
        }
        
        //------------------------------------------CHECK  WERTE--------------------------------------------------------
        
        function checkWerte(select) {
           helplog("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;
               
             
                    if (!JSON.stringify(getObject(id)).includes("type") && !JSON.stringify(getObject(id)).includes("name") ) { //CHECK MISSING OBJECT))
                     try{
                     valType = typeof getState(id).val;
                     } catch (e) {console.log("------------ERROR: "+e + "bei id: " + id); }
                     htmlDP.push(id+": "+valType);
                     htmlMSG.push("<b>missing DP-OBEJCT !!</b>" );}
        
                     else {
        
               var valType =  getState(id).val;
        
              // if(dpType != "mixed" ) {}
              //console.log("status1");
                   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 ");
                   } 
                      //console.log("status2");
                if(getObject(id).common.hasOwnProperty("states") /*&& JSON.stringify(getObject(id).common.states)!=null && JSON.stringify(getObject(id).common.states)!=undefined */){
                   // console.log("======2=============no type: "+id +"object: "+JSON.stringify(getObject(id).common.states));
                   //console.log("der hier: " +id);
                   try{
                   var helpStates= Object.keys(getObject(id).common.states);
                   } catch (e) {console.log("------------ERROR: "+e + "bei id: " + id); extendObject(id, {common: {states:{"0":"script"}}})}
                   var helpType= getObject(id).common.type;
                  
                 
                 //  console.log(helpType);
                //console.log(helpStates.toString());
               // console.log(helpStates[0] + helpStates[1] );
                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("-col-<b>ACHTUNG Multstate must be number</b>")}
                           if (alarmString2){ htmlDP.push(id);
                                              htmlMSG.push("-col-<b>ACHTUNG Multstate must be boolean</b>")}
                           } else {htmlDP.push(id);
                                   htmlMSG.push("-col-<b>ACHTUNG Multstate wrong Def.</b>")}
                
                } //ende states check
               /* else {            htmlDP.push(id);
                                   htmlMSG.push("ACHTUNG Multstate wrong Def.")}*/
           } //ende check missing object
           } // ende script enabled check
           }); // ende selct.each
         
            helplog("bin raus aus check Werte");
          
        }
        //---------------------------------------------------------------------------------------------------------------------
        
        
        function mylog(message) {
          if(mylogs)
              console.log(message);
        }function helplog(message) {
          if(helplogs)
              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) { 
           setState(dpPrefix + "ProofingDatapoints.RunSuccessful",false); 
           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.*');
        
         //console.log(htmlMSG.length+"--"+htmlDP.length)
        for(var i= htmlDP.length-1; i>-1; i--) {
           //console.log(htmlDP[i]+"anerer :"+htmlMSG[i]);
             //  if (htmlMSG[i].includes("-col-")) console.log(htmlMSG[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;
            setState(dpPrefix + "ProofingDatapoints.RunSuccessful",true); 
        });
        
        

        mit etwas glück kommt damit eine fehlermeldung mit der id !

        sigi234S Online
        sigi234S Online
        sigi234
        Forum Testing Most Active
        wrote on last edited by
        #59

        @liv-in-sky

        Hmm, irgendetwas stimmt nicht.

        Skript Grün, aber angezeigt wird Instanz ist deaktiviert. Das dauert so 2-5 Minuten dann geht die Meldung weg.

        Screenshot (371).png

        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Immer Daten sichern!

        liv-in-skyL 1 Reply Last reply
        0
        • liv-in-skyL liv-in-sky

          @sigi234

          ich versuch mal den fehler abzufangen und einen fehler mit mehr info im iobroker log auszugeben

          du kanns tauch gerne mal dieses script versuchen - ist nur der teil unterm setting

          //------------------------------------------AB HIER NICHTS ÄNDERN--------------------------------------------------------
          
          
          
          const versionNr = "15102019-1.2"
          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 helplogs=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,});
          createState(dpPrefix + "ProofingDatapoints.RunSuccessful", false, { name: 'RunSuccessful',  type: 'boolean', role:"state", read:  true,  write: false,});
          
          
          //------------------------------------------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) {
              helplog("bin in check types");
             var counter=0; 
             htmlMSG.push("");
             htmlDP.push("");
             var sub= select.substring(select.length-1, select.length); log("---------: "+sub);//console.log("----------select: "+select);
             mylog(select)
             $(select).each(function (id, i) {
                 counter++
          
               //  console.log("===============id vor null - kein value zu:  "+id);
                    
             if (!id.includes('scriptEnabled') && !id.includes('scriptProblem')  && getState(id).val !== null /*&& !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){
                 //console.log("===============id vor null - kein value zu:  "+id);
                //console.log("status0-checkType");
                 if (getState(id).val==null) console.log("===============nullwert - kein value zu:  "+id);
                
                //console.log("status1-checkType");
                 if (!JSON.stringify(getObject(id)).includes("type") && !JSON.stringify(getObject(id)).includes("name") /*&& !JSON.stringify(getObject(id)).includes("meta")*/ ) {
                //console.log("===============id nach stringify - kein value zu:  "+id);
                      var valType = typeof getState(id).val;
                       htmlDP.push(id+": "+valType);
                       htmlMSG.push("<b>missing DP-OBEJCT !!</b>" );}
                 
                  else{ 
                   //console.log("status2-checkType");
                      var dpType = getObject(id).common.type;
                        var valType = typeof getState(id).val;
                        if(dpType != "mixed" ) {
                        if(dpType !== valType && !(dpType == 'array' && valType == 'object' &&  dpType == 'meta.user') /*&& !(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("<b>geprüfte Instanz</b>");
            // htmlMSG.push("<i><b>"+select+"</b></i>");
              htmlDP.push("-col-<b>geprüfte Instanz</b>");
             htmlMSG.push("-col-<i><b>"+select+"</b></i>");
             helplog("fertg in checkType mit:" + counter.toString()+ " Durchläufen")
            
          }
          
          //------------------------------------------CHECK  WERTE--------------------------------------------------------
          
          function checkWerte(select) {
             helplog("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;
                 
               
                      if (!JSON.stringify(getObject(id)).includes("type") && !JSON.stringify(getObject(id)).includes("name") ) { //CHECK MISSING OBJECT))
                       try{
                       valType = typeof getState(id).val;
                       } catch (e) {console.log("------------ERROR: "+e + "bei id: " + id); }
                       htmlDP.push(id+": "+valType);
                       htmlMSG.push("<b>missing DP-OBEJCT !!</b>" );}
          
                       else {
          
                 var valType =  getState(id).val;
          
                // if(dpType != "mixed" ) {}
                //console.log("status1");
                     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 ");
                     } 
                        //console.log("status2");
                  if(getObject(id).common.hasOwnProperty("states") /*&& JSON.stringify(getObject(id).common.states)!=null && JSON.stringify(getObject(id).common.states)!=undefined */){
                     // console.log("======2=============no type: "+id +"object: "+JSON.stringify(getObject(id).common.states));
                     //console.log("der hier: " +id);
                     try{
                     var helpStates= Object.keys(getObject(id).common.states);
                     } catch (e) {console.log("------------ERROR: "+e + "bei id: " + id); extendObject(id, {common: {states:{"0":"script"}}})}
                     var helpType= getObject(id).common.type;
                    
                   
                   //  console.log(helpType);
                  //console.log(helpStates.toString());
                 // console.log(helpStates[0] + helpStates[1] );
                  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("-col-<b>ACHTUNG Multstate must be number</b>")}
                             if (alarmString2){ htmlDP.push(id);
                                                htmlMSG.push("-col-<b>ACHTUNG Multstate must be boolean</b>")}
                             } else {htmlDP.push(id);
                                     htmlMSG.push("-col-<b>ACHTUNG Multstate wrong Def.</b>")}
                  
                  } //ende states check
                 /* else {            htmlDP.push(id);
                                     htmlMSG.push("ACHTUNG Multstate wrong Def.")}*/
             } //ende check missing object
             } // ende script enabled check
             }); // ende selct.each
           
              helplog("bin raus aus check Werte");
            
          }
          //---------------------------------------------------------------------------------------------------------------------
          
          
          function mylog(message) {
            if(mylogs)
                console.log(message);
          }function helplog(message) {
            if(helplogs)
                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) { 
             setState(dpPrefix + "ProofingDatapoints.RunSuccessful",false); 
             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.*');
          
           //console.log(htmlMSG.length+"--"+htmlDP.length)
          for(var i= htmlDP.length-1; i>-1; i--) {
             //console.log(htmlDP[i]+"anerer :"+htmlMSG[i]);
               //  if (htmlMSG[i].includes("-col-")) console.log(htmlMSG[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;
              setState(dpPrefix + "ProofingDatapoints.RunSuccessful",true); 
          });
          
          

          mit etwas glück kommt damit eine fehlermeldung mit der id !

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          wrote on last edited by
          #60

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

          du kanns tauch gerne mal dieses script versuchen - ist nur der teil unterm setting

          Hab ich gemacht. Soll ich es mit alexa2 testen?

          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Immer Daten sichern!

          liv-in-skyL 1 Reply Last reply
          0
          • sigi234S sigi234

            @liv-in-sky

            Hmm, irgendetwas stimmt nicht.

            Skript Grün, aber angezeigt wird Instanz ist deaktiviert. Das dauert so 2-5 Minuten dann geht die Meldung weg.

            Screenshot (371).png

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            wrote on last edited by
            #61

            @sigi234 ich kenn so was nur, wenn ich viele tabs offen habe und der chrome browser mal einen neustart braucht - dann reagiert er sehr langsam

            außerdem muss ich immer wieder mal das log unter dem script löschen - scheint bei dir aber leer zu sein

            prüfe bitte nur einzeln mit "ordnerCheck " datenpunkt

            wenn du lust hast, könnten wir auch teamviewer nutzen

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

            sigi234S 1 Reply Last reply
            0
            • sigi234S sigi234

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

              du kanns tauch gerne mal dieses script versuchen - ist nur der teil unterm setting

              Hab ich gemacht. Soll ich es mit alexa2 testen?

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              wrote on last edited by
              #62

              @sigi234 ja - wenn ein problem auftritt durchsuche das log - vielleicht steht dann die id drin

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

              1 Reply Last reply
              0
              • liv-in-skyL liv-in-sky

                @sigi234 ich kenn so was nur, wenn ich viele tabs offen habe und der chrome browser mal einen neustart braucht - dann reagiert er sehr langsam

                außerdem muss ich immer wieder mal das log unter dem script löschen - scheint bei dir aber leer zu sein

                prüfe bitte nur einzeln mit "ordnerCheck " datenpunkt

                wenn du lust hast, könnten wir auch teamviewer nutzen

                sigi234S Online
                sigi234S Online
                sigi234
                Forum Testing Most Active
                wrote on last edited by sigi234
                #63

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

                teamviewer

                Ok!

                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Immer Daten sichern!

                1 Reply Last reply
                0
                • liv-in-skyL liv-in-sky
                  • suche tester, anregungen

                  • dieses script soll u.a. zum auffinden falsch beschriebener oder leerer datenpunkte dienen. es kann für scripter helfen, eigene script- oder adpater datenpunkte zu überprüfen

                  • unter umständen kann es dabei viele daten geben und deshalb wird zu einem datenpunkt (html formatiert für html widget-vis) eine webseite erzeugt um einen besseren überblick zu bekommen

                  • das script wird mit einem boolean wert ausgeführt (RunScript=true) - so wird nach der aktivierung des scripts nichts zu sehen sein

                  was geht sonst noch:

                  feature to do
                  datenpunkte per instanz zählen kann über dp abgeschalten werden (setzen: javascript.0.ProofingDatapoints.ObjectAnzahlCheck)
                  Alias Kontrolle der neue controllerv2 hat aliase - diese werden auf fehlende datenpunktzuweisung überprüft
                  letzte Änderung DP es kann die "letze Änderung" von datenpunkte angezeigt werden mit taage einstellung über "LatestChangeDP_Factor" 1 ist 1 Tag
                  nur spezielle ornder abfragen es können auch nur einzelne ordner abgefragt werden - z.b. "javascript.2.WLANUnifi"
                  eigene instanzen definieren z.b für die eignenDatenpunkte - muss vor scriptausführung angepaßt werden (const instanzArr im script)
                  standard javascript.* disable scripte legen datenpunkte unter javascript ab -. daher standard (kann über dp abgeschalten werden)(setzen: javascript.0.ProofingDatapoints.JavaInstanzCheck)
                  eigene webseite erreichbar: http://<ip iobroker>:8082/javascript/ProofingDatapoints/htmlputz.html - zur leichteren auswertung/übersicht. dabei ist 8082 der port des web-adapters
                  eigene farben definieren für webseite bei variable definition im script
                  monster-search es gibt einen dp (javascript.0.ProofingDatapoints.MonsterSearch), mit dem kann man eine suche durch alle instanzen machen. nach dessen durchlauf wird der datenpunkt wieder automatisch auf false gestellt - es wird auch kein htm-datenpunkt geschrieben, sondern nur die webseite erstellt - das system wird stark belastet !!! in dieser suche werden die Eigenendatenpunkte nicht berücksichtigt (keine verwendung von const instanzArr).
                  directSearch es gibt einen datenpunkt "directSearch - damit kann man direkt einen pfad zu einem ordner eingeben. in der vis mit dem input-widget realisiert
                  blacklist es können einzelen datenpunkte oder ganze breiche ausgeschlossen werden
                  Smart Devices es können die smarthome devices geprüft werden - im raw des dp unter "common.smartName" definiert - z.b um doppelte einträge zu finden
                  • wer das script von mic nutzt (logfile auswertung) sollte es bei einer "monstersuche" deaktivieren
                  • beim aufsuchen der datenpunkte kann es zu vielen warnungen im log kommen - ist nicht verhinderbar
                  • script kann auch abbrechen durch error - wird dann angezeigt

                  beispiel vis:

                  Image 10.png

                  beispiel "directSearch"
                  Image 5.png

                  beispiel webseite:

                  Image 3.png

                  script für export:

                  version 1.0: ProofingDatapoints16-10-19.txt
                  version 1.1: ProofingDatapoints18-10-19.txt bitte alles unter const instanzArr=... ersetzen
                  version 1.2: ProofingDatapoints22-10-19.txt bitte alles unter "const instanzArr=..." ersetzen - multistates check hinzugefügt
                  version 1.5: ProofingDatapoints26-10-19.txt bitte alles unter "const instanzArr=..." ersetzen und auch die datenpunkte des scripts löschen - letzte Änderung DP checken, Aliase (controllerv2) check
                  version 1.6: ProofingDatapoints1-11-19.txt
                  version 1.7: ProofingDatapoints7-11-19.txt
                  version 1.8 ProofingDatapoints9-11-19.txt
                  version 1.9 ProofingDatapoints10-11-19.txt
                  version 2.0 ProofingDatapoints12-11-19.txt
                  version 2.1 ProofingDatapoints13-11-19.txt
                  version 2.3 ProofingDatapoints15-11-19.txt mit smart devices
                  version 2.4 ProofingDatapoints17-11-19.txt mit history devices

                  widgets export( 15.11.2019):

                  [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.ProofingDatapoints.HTMLTable}"},"style":{"left":"939px","top":"189px","color":"#20f824 ","width":"744px","height":"797px","font-size":"12px","overflow-y":"scroll","border-width":"1px","border-radius":"15px","border-style":"solid","border-color":"#20f824 ","background-color":"","background":"{val:javascript.0.ProofingDatapoints.RunSuccessful; val == \"true\"  ?   \"#000000\":  \"#3E3B3B\"}"},"widgetSet":"basic"},{"tpl":"tplBulbOnOffCtrl","data":{"oid":"javascript.0.ProofingDatapoints.RunScript","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","icon_off":"/vis.0/armin/img/play.png","icon_on":"/vis.0/armin/img/ADAPTER/javascript.png","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"min":"false","max":"true","class":"{val:controll-own.0.mount.CPULuefter;val==\"true\"? \"anime\":  \"\"}"},"style":{"left":"1325px","top":"131px","width":"42px","height":"42px","z-index":1},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.JavaInstanzCheck","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1406px","top":"54px","z-index":"115","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.ObjectAnzahlCheck","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1407px","top":"82px","z-index":"115","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>DP Zählen</b>"},"style":{"left":"1232px","top":"83px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>mit js-instanz</b>"},"style":{"left":"1232px","top":"54px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.MonsterSearch","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1635px","top":"30px","z-index":"115"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>Monster Suche</b>"},"style":{"left":"1461px","top":"30px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#15931f","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>ohne gesamt Instanz Anzeige</b>"},"style":{"left":"1155px","top":"31px","font-size":"smaller","width":"232px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.ohneInstanzAnzeige","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1405px","top":"30px","z-index":"115","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplJquiInputSet","data":{"oid":"javascript.0.ProofingDatapoints.OrdnerCheck","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"DirectSearch","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"class":"menuown","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","title":""},"style":{"left":"946px","top":"140px","width":"293px","height":"25px","font-size":"small","background-color":"#000000","z-index":"20","background":"","border-radius":"15px"},"widgetSet":"jqui"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.RunSuccessful","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1635px","top":"144px","z-index":"115"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>Successful</b>"},"style":{"left":"1511px","top":"144px","font-size":"smaller","width":"111px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.LatestChangeDP","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1635px","top":"82px","z-index":"115","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>letzte Änderung DPs</b>&ensp;&ensp;>&ensp;","html_append":"{javascript.0.ProofingDatapoints.LatestChangeDP_Factor}&ensp;&ensp;days"},"style":{"left":"1467px","top":"82px","font-size":"smaller","width":"152px","height":"41px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>Alias Prüfung</b>","html_append":""},"style":{"left":"949px","top":"108px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.CheckAliase","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1116px","top":"107px","z-index":"115","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>RUN</b>"},"style":{"left":"1363px","top":"144px","font-size":"smaller","width":"70px","height":"24px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#63f2e2","line-height":"1.2","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplFrame","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"title":"","title_color":"white","title_top":"-2","title_left":"2","header_height":"0","header_color":"#ffffff","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"939px","top":"10px","z-index":"0","width":"744px","height":"168px","border-color":"#20f824 ","border-radius":"15px","border-width":"1px","background-color":"#414e43","font-size":"small","background":""},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.WertAnalyse","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1116px","top":"25px","z-index":"115"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.TypeAnalyse","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1116px","top":"55px","z-index":"115"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>mit Type-analyse</b>"},"style":{"left":"949px","top":"54px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"21","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>mit Wert-Analyse</b>"},"style":{"left":"949px","top":"29px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>SmartName Prüfung</b>","html_append":""},"style":{"left":"949px","top":"83px","font-size":"smaller","width":"152px","height":"19px","font-style":"normal","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","z-index":"5","color":"#20f824 ","line-height":"1.2","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.ProofingDatapoints.SmartHomeAnalyse","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"1117px","top":"82px","z-index":"115","text-align":"right"},"widgetSet":"basic"}]
                  

                  • bisher erfolgreich bei adaptern angewandt
                  adapter beispiel
                  alexa2 datenpunkt fehler - state existierte - aber kein datenpunkt-object
                  plex falsche datenpunkt-type-definition, da adapter datenpunktdefinition von plex automatisch übernahm
                  pi-hole falsche datenpunkt-type-definition
                  sigi234S Online
                  sigi234S Online
                  sigi234
                  Forum Testing Most Active
                  wrote on last edited by
                  #64

                  @liv-in-sky

                  Hab mir jetzt einen Link mit:

                  file:///C:/Program%20Files/iobroker/Test/iobroker-data/files/javascript/ProofingDatapoints/htmlputz.html
                  

                  auf den Desktop und als Favorit angelegt , so funktioniert es.

                  Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Immer Daten sichern!

                  liv-in-skyL 3 Replies Last reply
                  0
                  • sigi234S sigi234

                    @liv-in-sky

                    Hab mir jetzt einen Link mit:

                    file:///C:/Program%20Files/iobroker/Test/iobroker-data/files/javascript/ProofingDatapoints/htmlputz.html
                    

                    auf den Desktop und als Favorit angelegt , so funktioniert es.

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #65

                    @sigi234 hab dich nicht vergessen - arbeite schon wieder an einer besseren fehler findung (auffang-routine) - übers wochenende können wir wieder testen, wenn du lust dazu hast - wir werden schon irgendwie rausfinden, welcher datenpunkt da "ärger" macht

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

                    1 Reply Last reply
                    0
                    • sigi234S sigi234

                      @liv-in-sky

                      Hab mir jetzt einen Link mit:

                      file:///C:/Program%20Files/iobroker/Test/iobroker-data/files/javascript/ProofingDatapoints/htmlputz.html
                      

                      auf den Desktop und als Favorit angelegt , so funktioniert es.

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      wrote on last edited by
                      #66

                      UPDATE SCRIPT erster post

                      bitte alles unter der const=instanzArr.. löschen und auch die datenpunkte des scripts löschen bevor es aktiviert wird

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

                      1 Reply Last reply
                      0
                      • sigi234S sigi234

                        @liv-in-sky

                        Hab mir jetzt einen Link mit:

                        file:///C:/Program%20Files/iobroker/Test/iobroker-data/files/javascript/ProofingDatapoints/htmlputz.html
                        

                        auf den Desktop und als Favorit angelegt , so funktioniert es.

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        wrote on last edited by
                        #67

                        @sigi234 wollen wir nochmal eine session machen umzu testen was das script bei dir macht ?

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

                        sigi234S 1 Reply Last reply
                        0
                        • liv-in-skyL liv-in-sky

                          @sigi234 wollen wir nochmal eine session machen umzu testen was das script bei dir macht ?

                          sigi234S Online
                          sigi234S Online
                          sigi234
                          Forum Testing Most Active
                          wrote on last edited by sigi234
                          #68

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

                          @sigi234 wollen wir nochmal eine session machen umzu testen was das script bei dir macht ?

                          Gerne, Wann?

                          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Immer Daten sichern!

                          liv-in-skyL 1 Reply Last reply
                          0
                          • sigi234S sigi234

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

                            @sigi234 wollen wir nochmal eine session machen umzu testen was das script bei dir macht ?

                            Gerne, Wann?

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            wrote on last edited by
                            #69

                            @sigi234 wann es dir paßt - jetzt späteer morgen ?

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

                            sigi234S 1 Reply Last reply
                            0
                            • liv-in-skyL liv-in-sky

                              @sigi234 wann es dir paßt - jetzt späteer morgen ?

                              sigi234S Online
                              sigi234S Online
                              sigi234
                              Forum Testing Most Active
                              wrote on last edited by
                              #70

                              @liv-in-sky
                              Jetzt

                              Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                              Immer Daten sichern!

                              liv-in-skyL 1 Reply Last reply
                              0
                              • sigi234S sigi234

                                @liv-in-sky
                                Jetzt

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                wrote on last edited by
                                #71

                                @sigi234 ok

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

                                1 Reply Last reply
                                0
                                • crunchipC Away
                                  crunchipC Away
                                  crunchip
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #72

                                  @liv-in-sky würde auch gerne mal testen, gibt es etwas besonderes noch zu beachten, ausser wie im oben erwähnt, logskript(mic) zu deaktivieren
                                  Gruss

                                  umgestiegen von Proxmox auf Unraid

                                  liv-in-skyL 2 Replies Last reply
                                  0
                                  • crunchipC crunchip

                                    @liv-in-sky würde auch gerne mal testen, gibt es etwas besonderes noch zu beachten, ausser wie im oben erwähnt, logskript(mic) zu deaktivieren
                                    Gruss

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    wrote on last edited by
                                    #73

                                    @crunchip würd mich freuen noch mehr feedback zu bekommen - eigentlich ist nur die monstersuche bei großen systemen etwas resourcen intensiv - standard oder direkte suche kann man ohne bedenken machen

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

                                    ? 1 Reply Last reply
                                    0
                                    • crunchipC crunchip

                                      @liv-in-sky würde auch gerne mal testen, gibt es etwas besonderes noch zu beachten, ausser wie im oben erwähnt, logskript(mic) zu deaktivieren
                                      Gruss

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      wrote on last edited by
                                      #74

                                      @crunchip lade dir das widget vom ersten post runter - habe gerade auch mit sigi getestet - dass macht es einfacher als nur mit den dp zu arbeiten

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

                                      crunchipC 1 Reply Last reply
                                      0
                                      • liv-in-skyL liv-in-sky

                                        @crunchip würd mich freuen noch mehr feedback zu bekommen - eigentlich ist nur die monstersuche bei großen systemen etwas resourcen intensiv - standard oder direkte suche kann man ohne bedenken machen

                                        ? Offline
                                        ? Offline
                                        A Former User
                                        wrote on last edited by
                                        #75

                                        @liv-in-sky Hi, vielen Dank für das Script, läuft hier soweit, nur die Monstersuche beendet sich zwar, setzt aber den Datenpunkt sucessfullrun nicht auf true - es wird auch keine Tabelle angelegt.. hab 18777 Objects.. hmm?

                                        Die normale Prüfung klappt, habs in Habpanel angelegt, macht man ja nicht jeden Tag, so ein Check..

                                        5a7fd1b4-4036-4ff3-ab17-6024b4032f68-image.png

                                        liv-in-skyL 1 Reply Last reply
                                        0
                                        • ? A Former User

                                          @liv-in-sky Hi, vielen Dank für das Script, läuft hier soweit, nur die Monstersuche beendet sich zwar, setzt aber den Datenpunkt sucessfullrun nicht auf true - es wird auch keine Tabelle angelegt.. hab 18777 Objects.. hmm?

                                          Die normale Prüfung klappt, habs in Habpanel angelegt, macht man ja nicht jeden Tag, so ein Check..

                                          5a7fd1b4-4036-4ff3-ab17-6024b4032f68-image.png

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          wrote on last edited by
                                          #76

                                          @ilovegym ja - das problem hatte auch sigi- große datenmenge und einige instanzen, die unbeschrieben waren - werd da nochmal nacharbeiten

                                          für tägliche prüfung würde sich der alias check evtl ganz gut machen - müßte ich noch ein schedule einführen und eine en extra datenpunkt für einen alarm bei änderung oder evtl für die vis-anzeige

                                          erstmal gut das die standard und directe suche funktioniert - der monster check ist eh nur für "ab und zu" gedacht -

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

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          412

                                          Online

                                          32.5k

                                          Users

                                          81.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe