// @Liv-in-sky Okt. 2019 // WICHTIG const instanzArr=[ "EigeneDatenpunkte.0"]; // hier muss die instanz der eigenen datenpunkte angegeben werden oder zusätzlich, die man prüfen möchte , "alexa2.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="yellow" // Hintergrund webseite //------------------------------------------AB HIER NICHTS ÄNDERN-------------------------------------------------------- const versionNr = "15102019-1.0" var endehtml= "

Letztes File Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"

"; var endehtmlDP= "

Letztes Table Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"

"; const format = "Putzer"; const htmlTable=""; const htmlReset="

!!! ohne Javascript Instanzen !!! kann enabled werden

" // var htmlOhneAnzahl="

!!! ohne DatenpunktZählung !!! kann enabled werden

" const htmlError="

Script hat Fehler - bitte Log checken !!!

" var allInstArr=[]; const dpPrefix = "javascript."+ instance +"."; var mylogs=false; var htmlDP=[]; var htmlMSG=[]; var counterAll=0; var htmlHelper=""; createState(dpPrefix + "ProofingDatapoints.HTMLTable", { name: 'HTMLTable', type: 'string', read: true, write: true,}); createState(dpPrefix + "ProofingDatapoints.ScriptVersion", versionNr,{ name: 'ScriptVersion', type: 'string', read: true, write: true,}); createState(dpPrefix + "ProofingDatapoints.RunScript", { name: 'RunScript', type: 'boolean', role:"switch", read: true, write: true,}); createState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck", true,{ name: 'JavaInstanzCheck', type: 'boolean', role:"switch", read: true, write: true,}); createState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck", true,{ name: 'ObjectAnzahlCheck', type: 'boolean', role:"switch", read: true, write: true,}); createState(dpPrefix + "ProofingDatapoints.MonsterSearch", false,{ name: 'MonsterSearch', type: 'boolean', role:"switch", read: true, write: true,}); //------------------------------------------Zähle Objecte der INSTANZEN-------------------------------------------------------- function countDP(idb){ var counter4=0; $(idb).each(function(id, i) { counter4++; }) mylog(idb+counter4); htmlDP.unshift(idb); htmlMSG.unshift(counter4.toString()); counterAll=counterAll+counter4; } //------------------------------------------CHECK INSTANZEN-------------------------------------------------------- function instanzCount(){ 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(!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])}*/ } }); 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) { var counter=0; htmlMSG.push(""); htmlDP.push(""); mylog(select) $(select).each(function (id, i) { counter++ if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') /*&& !id.includes('Log-Script') && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){ if (!JSON.stringify(getObject(id)).includes("type")) { console.log("no"+id); htmlDP.push(id+": "+valType); htmlMSG.push("missing TYPE !!" );} else{ var dpType = getObject(id).common.type; var valType = typeof getState(id).val; if(dpType != "mixed" ) { if(dpType !== valType && !(dpType == 'array' && valType == 'object')) { mylog(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType); htmlDP.push(id+": "+valType); htmlMSG.push(dpType );} }} /* if(dpType != valType && !(dpType == 'array' && valType == 'object')) { log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType); htmlDP.push(dpType); htmlMSG.push(valType); }*/ } }); htmlDP.push("ID+IST WERT"); htmlMSG.push("SOLL WERT"); htmlDP.push("geprüfte Instanz"); htmlMSG.push(""+select+""); mylog("fertg" + counter.toString()) } //------------------------------------------CHECK WERTE-------------------------------------------------------- function checkWerte(select) { mylog("bin in check Werte"); var counter=0; mylog(select); $(select).each(function (id, i) { counter++ if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('alexa') /* && !id.includes('Ereignisliste') && !id.includes('GETPROCESS')*/ ){ // var dpType = getObject(id).common.type; var valType = getState(id).val; //if(dpType != "mixed" ) {} if(valType === null) {mylog(id + ': Datenpunkttyp: ' /*+ dpType */+ ", Wert: "+valType); htmlDP.push(id); htmlMSG.push("missing");} } }); mylog("bin raus aus check Werte"); } //--------------------------------------------------------------------------------------------------------------------- function mylog(message) { if(mylogs) console.log(message); } //--------------------------------------------------------------------------------------------------------------------- //-----------------------------------------------SCHALTER MAIN------------------------------------------------ on({id:dpPrefix + "ProofingDatapoints.RunScript", val: true}, function (obj) { let java= getState(dpPrefix + "ProofingDatapoints.JavaInstanzCheck").val; let instanzAnzahl= getState(dpPrefix + "ProofingDatapoints.ObjectAnzahlCheck").val; let monster= getState(dpPrefix + "ProofingDatapoints.MonsterSearch").val; setState(dpPrefix + "ProofingDatapoints.ScriptVersion",versionNr); htmlHelper=""; setState(dpPrefix + "ProofingDatapoints.HTMLTable",htmlReset+endehtml+htmlError); writeFile(null, "/ProofingDatapoints/htmlputz.html" ,htmlReset+endehtml+htmlError+"", function (error) {mylog('file written'); }); htmlHelper=""; setStateDelayed(dpPrefix + "ProofingDatapoints.RunScript",false,2500); htmlDP=[]; htmlMSG=[]; instanzCount(); htmlDP.push("INSTANZ INFO"); htmlMSG.push(""); htmlDP.push(""); htmlMSG.push(""); mylog(instanzArr.length+"==================="+instanzArr.toString()); if (monster) instanzArr=allInstArr; //ACHTUNG MONSTERSEARCH for(let name in instanzArr){ checkWerte(instanzArr[name]+".*") mylog("!!!!!!!!!!!!!!!!!!!!: "+instanzArr[name])}; if (instanzAnzahl){ htmlDP.unshift(""); htmlMSG.unshift("");htmlDP.unshift("Objekte in Instanz"); htmlMSG.unshift("Anzahl"); for(let name in allInstArr){ countDP(allInstArr[name]);} htmlDP.unshift("Gesamt Objekte in Instanzen"); htmlMSG.unshift(""+counterAll.toString()+""); } //console.log("=============: "+counterAll);} if (java) checkWerte('javascript.*'); htmlDP.push("ID ohne WERT"); htmlMSG.push(""); for(let name in instanzArr){ checkTypes(instanzArr[name]+".*") mylog("!!!!!!!!!!!!!!!!!!!!: "+instanzArr[name])}; htmlDP.push("ID falscher TYPE"); htmlMSG.push(""); if (java) checkTypes('javascript.*'); for(var i= htmlDP.length-1; i>-1; i--) { htmlHelper= htmlHelper+"" } if (monster){endehtml="

!!! Monster Suche wird automatisch deaktiviert !!!

"+endehtml; endehtmlDP="

!!! Monster Suche wird automatisch deaktiviert !!! Bericht nur über WebSeite

"+endehtmlDP;} if (!instanzAnzahl){endehtml="

!!! ohne DatenpunktZählung !!! kann enabled werden

"+endehtml; endehtmlDP="

!!! ohne DatenpunktZählung !!! kann enabled werden

"+endehtmlDP;} if (!java){ endehtml="

!!! ohne Javascript Instanzen !!! kann enabled werden

"+endehtml; endehtmlDP="

!!! ohne Javascript Instanzen !!! kann enabled werden

"+endehtmlDP;} if(!monster) { setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP+"
"+htmlDP[i]+"  "+htmlMSG[i]+"  
"+htmlHelper,900);} else{setStateDelayed(dpPrefix + "ProofingDatapoints.HTMLTable",endehtmlDP,900);} if(true) writeFile(null, "/ProofingDatapoints/htmlputz.html" ,format+endehtml+htmlTable+htmlHelper+"
", function (error) { mylog('file written'); }); endehtml=""; setState(dpPrefix + "ProofingDatapoints.MonsterSearch",false); //setzt monstersearch zurück });