Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. HTML Tabelle für FritzDect Thermostate

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    883

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

HTML Tabelle für FritzDect Thermostate

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
17 Beiträge 2 Kommentatoren 1.1k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #1

    hier eine tabelle für interessierte

    • warum gibt es diese tabelle - anzeige der thermostate und einstellen der soll-temp möglich

    • grundlage des scriptes ist: https://forum.iobroker.net/topic/28021/html-table-für-vis-oder-iqontrol-js-und-blockly

    • wie üblich müssen datenpunkte selbst angelegt werden und im script eingegeben werden dpVIS und dpSchalter im script setting

    • im setting bereich des scriptes können die html settings auf wunsch geändert werden (darstellung farbe, ...)

    • das schedule kann selbst eingestellt werden - es wird aber auch auf die änderung der soll-temp getriggert

    • die anzeige der tabelle folgt über html-widget mit binding (https://forum.iobroker.net/post/558025)

    AApossis (106).gif

     /**
    * Zweck:   Tabelle für Fritz!Dect Thermostate
    * Datum:   27.8.2021 13:16
    * Autor:   @liv-in-sky
    */
    
    
    
    //HIER WIRD PFAD UND FILENAME DEFINIERT
    const path = "/htmlexample.html";                   //FIlenamen definieren
    const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
    let   braucheEinFile=false;                          // bei true wird ein file geschrieben
    let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
    let dpVIS="0_userdata.0.CONTROL-OWN.TABELLEN.Heizung"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
    let dpSchalter="0_userdata.0.CONTROL-OWN.TABELLEN.HeizungSchalten";   //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
    let mySchedule="   */10 * * * * ";                       //jede minute 
    let colorHeating="#A0C2A0" ;
    let colorOffset="lightgreen"
    //---------------------------------------
    
    //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 5
    var htmlFeld1='RAUM';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
    var htmlFeld2='IST-TEMP';        var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
    var htmlFeld3='SOLL-TEMP';         var Feld3lAlign="center";                    // überschrift Tabellen Spalte3 und  Ausrichtung left,right or center
    var htmlFeld4='COMFORT';        var Feld4lAlign="center";                    // überschrift Tabellen Spalte4 und  Ausrichtung left,right or center
    var htmlFeld5='ECO-MODE';        var Feld5lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
    var htmlFeld6='MODUS';        var Feld6lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
    var htmlFeld7='BOOST';        var Feld7lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
    var htmlFeld8='BATT';        var Feld8lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
    
    //-----------------------------------
    
    
    
    //hier werden die styles für die tabelle definiert
    //ÜBERSCHRIFT ÜBER TABELLE
    let   htmlUberschrift=true;                           // mit Überschrift über der tabelle
    let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
    const htmlFeldUeber='Frit!Dect Thermostat';              // Überschrift und Signature
    const htmlFarbUber="white";                         // Farbe der Überschrift
    const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
    const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
    //MEHRERE TABELLEN NEBENEINANDER
    let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
    const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
    const farbetrennungsLinie="white";
    const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
    const htmlFarbTableColorUber="white";               // Überschrift in der tabelle - der einzelnen Spalten
    //ÜBERSCHRIFT SPALTEN
    const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
    const LinieUnterUeberschrift="2";                   // Linie nur unter Spaltenüberschrift - 
    const farbeLinieUnterUeberschrift="white";
    const groesseUeberschrift=16;
    const UeberschriftStyle="bold"                     // möglich "bold"
    //GANZE TABELLE
    let abstandZelle="4";
    let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
    let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
    let weite="auto";                                     //Weite der Tabelle
    let zentriert=true;                                   //ganze tabelle zentriert
    const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
    const htmlSchriftart="Helvetica";
    const htmlSchriftgroesse="17px";
    //FELDER UND RAHMEN
    let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
    const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
    const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
    const htmlFarbTableColorGradient1="#424242";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
    const htmlFarbTableColorGradient2="lightgreen"//"#298A08";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
    const htmlFarbTableBorderColor="grey";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
    let htmlRahmenLinien="cols";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
    const htmlSpalte1Weite="auto";                    //  Weite der ersten beiden  Spalten oder z.b. 115px
    
    // HIER NICHTS  ÄNDERN
    
    let borderHelpBottum;
    let borderHelpRight;
    let htmlcenterHelp;
    let htmlcenterHelp2;
    
    if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
    if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
    if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
    if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
    zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
    zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
    
    
    const htmlZentriert='<center>'
    const htmlStart=    "<!DOCTYPE html><html lang=\"de\"><head><title>Vorlage</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"+
                       "<style> * {  margin: 0;} body {background-color: "+backgroundAll+"; margin: 0 auto;  }"+
                       " p {padding-top: 10px; padding-bottom: 10px; text-align: "+htmlcenterHelp2+"}"+
                      // " div { margin: 0 auto;  margin-left: auto; margin-right: auto;}"+
                       " td { padding:"+abstandZelle+"px; border:0px solid "+htmlFarbTableBorderColor+";  border-right:"+borderHelpRight+"px solid "+htmlFarbTableBorderColor+";border-bottom:"+borderHelpBottum+"px solid "+htmlFarbTableBorderColor+";}"+ 
                       " table { width: "+weite+";  margin: 0 "+htmlcenterHelp+"; border:1px solid "+htmlFarbTableBorderColor+"; border-spacing=\""+abstandZelle+"0px\" ; }"+   // margin macht center
                       " td:nth-child(1) {width: "+htmlSpalte1Weite+"}"+"td:nth-child(2) {width:"+htmlSpalte1Weite+"}"+
                       `.myselect { color: red !important; background-color: green !important; -webkit-appearance: none;}`
                       " </style></head><body> <div>";
    //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
    const htmlTabStyle= "<table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                          "; font-family:"+htmlSchriftart+";background-image: linear-gradient(42deg,"+htmlFarbTableColorGradient2+","+htmlFarbTableColorGradient1+");\">";
    const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
    const htmlTabUeber3="</tr>";
    
    let visScript=`<script>
    $(document).ready(function(){
    $("[class*='Bosch']").css("background-color", "black");
    $("[class*='Bosch']").css("color", "white");
    $("[class*='Boost_Fritz']").css("background-color", "black");
    $("[class*='Boost_Fritz']").css("color", "white");
    })
         $(document).ready(function(){
             $("[class*='Bosch']").change(function(){                                  
           var selectedCountry = $(this).children("option:selected").val();
          
           var index = this.className.split('-')[1];
          vis.setValue('${dpSchalter}',selectedCountry+','+index+','+"Bosch")
          /* alert("You have selected the country - " + selectedCountry+"----"+index);*/})
           });
            $(document).ready(function(){
             $("[class*='Boost_Fritz']").change(function(){                                  
           var selectedCountry1 = $(this).children("option:selected").val();
           var index1 = this.className.split('-')[1];
          vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Boost_Fritz')
           /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
           });
           $(document).ready(function(){
             $("[class*='Soll_Temp_Fritz']").change( function(){                                  
           var selectedCountry1 = $(this).val();
         /*  console.log($(this))*/
           var index1 = this.className.split('-')[1];
          vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Soll_Temp_Fritz')
           /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
           });
           $(document).ready(function(){
             $("[class*='Com_Temp_Fritz']").change( function(){                                  
           var selectedCountry1 = $(this).val();
         /*  console.log($(this))*/
           var index1 = this.className.split('-')[1];
          vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Com_Temp_Fritz')
           /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
           });
           $(document).ready(function(){
             $("[class*='Eco_Temp']").change( function(){                                  
           var selectedCountry1 = $(this).val();
         /*  console.log($(this))*/
           var index1 = this.className.split('-')[1];
          vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Eco_Temp')
           /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
           });
      </script>`
    
    
    //NICHTS ÄNDERN - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 5
    
    
    var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td><td  align="+Feld3lAlign+">&ensp;"+htmlFeld3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+htmlFeld4+"&ensp;</td><td  align="+Feld5lAlign+">&ensp;"+htmlFeld5+"&ensp;</td><td  align="+Feld6lAlign+">&ensp;"+htmlFeld6+"&ensp;</td><td  align="+Feld7lAlign+">&ensp;"+htmlFeld7+"&ensp;</td><td  align="+Feld8lAlign+">&ensp;"+htmlFeld8+"&ensp;</td>";
    var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+
                       "&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld4+
                       "&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld5+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld6+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld7+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld8+"&ensp;</td>";
                           //------------------------------------------------------
    
    
    
    var htmlOut="";
    var mix;
    var counter;
    
    let arrForjQuer=[]
    let arrForjQuer2=[]
    let arrForjQuerSoll=[]
    let arrForjQuerCom=[]
    let arrForjQuerEco=[]
    let myObject=[];
    let offsetHelp=9999;
    let boostHelp;
    let sollHelp;
    let istHelp;
    
    
    var val1; var val2; var val0; var val3; var val4; var val5; var val6; var val7;
    var htmlTabUeber="";
    function writeHTML(){
    
    
    
    htmlOut="";
    
    counter=-1;
    htmlTabUeber="";
    switch (mehrfachTabelle) { 
       case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
       case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
       case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2+htmlTabUeber2+htmlTabUeber3; break;
       case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
    }; 
    if (!UeberschriftSpalten) {htmlTabUeber=""}  
    
    //--------------------------------------------------------------------------------------------------------------------------------------------------
    //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
    //---------alle valx werte müssen von euch bestimmt werden - val0,val1,val2,val3,val4!!!------------------------------------------------------------
    //--------------------------------------------------------------------------------------------------------------------------------------------------
    arrForjQuer=[]; arrForjQuer2=[] ;arrForjQuerSoll=[]; arrForjQuerCom=[];arrForjQuerEco=[];myObject=[];
    
    $('fritzdect.*.DECT_*.tist').each(function(id, i) {           // hier eigene schleife definieren
            var ida = id.split('.');
           
              counter++;                                 // SEHR WICHTIG - MUSS IN JEDER SCHLEIFE INTEGRIERT SEIN
            
            val0=getState(id.replace("tist","name")).val
           
            //  log(String(getState(id).val)+" "+String(getState(id.replace("tist","offset")).val) +" "+ String(getState(id.replace("tist","tsoll")).val))
            if(existsState(id.replace("tist","boostactive"))) {getState(id.replace("tist","boostactive")).val ?  val6="Ja" :  val6="Nein";} else {val6="NA"}  
           
           if(existsState(id.replace("tist","offset"))){ offsetHelp=getState(id.replace("tist","offset")).val} else {offsetHelp=9999}
            
        
      // log(val0)
             istHelp=getState(id).val
             existsState(id.replace("tist","offset")) ? val1=getState(id).val+" °C"+" <sub><font color=\""+colorOffset +"\">("+getState(id.replace("tist","offset")).val+")</sub>" :  val1=" " ;
    
              sollHelp=getState(id.replace("tist","tsoll")).val; 
             val2=sollHelp+" °C";
              val3=getState(id.replace("tist","komfort")).val+" °C"; 
              val4=getState(id.replace("tist","absenk")).val+" °C"; 
              val5=getState(id.replace("tist","operationmode")).val
            if(existsState(id.replace("tist","boostactive"))) { getState(id.replace("tist","boostactive")).val ?  val6="Ja" :  val6="Nein";
                                                                boostHelp=val6;
                                                              } else {boostHelp="NA";
                                                                      val6="NA"} 
            
             if(existsState(id.replace("tist","battery"))) {if (getState(id.replace("tist","battery")).val>20) val7="<font color=\""+colorHeating +"\">"+getState(id.replace("tist","battery")).val+" %";} else {val7=""}
            /*  getState(id.replace("tist","RoomClimateControl.ventilationMode")).val ?  val7="Ja" :  val7="Nein"; */
                     
    
     let setter1="" ;let setter2="";let setter3="";let setter4=""; let idMaker="Bosch-"+String(counter);
     /*
     arrForjQuer.push({  "number":"Bosch-"+String(counter),"id":id.replace("tist","RoomClimateControl.operationMode")})
     if (val5=="MANUAL") setter1="selected"
      if (val5=="AUTOMATIC") setter2="selected"
       if (val5=="OFF") setter3="selected"
        if (val5=="UNKNOWN") setter4="selected"
     val5=
       ` <select  class="  ${"Bosch-"+String(counter)}" name="BoschMode" size="1" >
        <option ${setter1} value="MANUAL">MANUAL</option>
        <option ${setter2} value="AUTOMATIC">AUTOMATIC</option>
        <option ${setter3} value="OFF">OFF</option>
        <option ${setter4} value="UNKNOWN">'UNKNOWN</option></select>`
     */
       if(existsState(id.replace("tist","boostactive"))){
        setter1="";setter2="";idMaker="Boost_Fritz-"+String(counter);
        arrForjQuer2.push({  "number":"Boost_Fritz-"+String(counter),"id":id.replace("tist","boostactive")})
        if(val6=="Ja") setter1="selected"
        if(val6=="Nein") setter2="selected"
        val6= `<select class="${"Boost_Fritz-"+String(counter)}" name="Boost_FritzMode" size="1" background="#ff0">
        <option ${setter1} value="JA">JA</option>
        <option ${setter2} value="NEIN">NEIN</option>
        </select>`
      }
       
       idMaker="Soll_Temp_Fritz-"+String(counter);
       arrForjQuerSoll.push({  "number":"Soll_Temp_Fritz-"+String(counter),"id":id.replace("tist","tsoll")})
    val2=`<input type="text" class="${idMaker}" value = ${val2} style="border:0px; text-align:center; font-size:100%; width:35px; background-color:black; color:white;" >°C `
    /*
     idMaker="Com_Temp_Fritz-"+String(counter);
     arrForjQuerCom.push({  "number":"Com_Temp_Fritz-"+String(counter),"id":id.replace("tist","komfort")})
    val3=`<form  onsubmit="return false"><input type="text" class="${idMaker}" value = ${val3} style="border:0px; text-align:center; font-size:100%; width:35px; background-color:black; color:white;" >°C </form>`
    
     idMaker="Eco_Temp-"+String(counter);
     arrForjQuerEco.push({  "number":"Eco_Temp-"+String(counter),"id":id.replace("tist","RoomClimateControl.setpointTemperatureForLevelEco")})
    val4=`<form  onsubmit="return false"><input type="text" class="${idMaker}" value = ${val4} style="border:0px; text-align:center; font-size:100%; width:35px; background-color:black; color:white;" >  °C </form>`
    */
    makeTheFirstObject();
    
        //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
        
      }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
    
    //-------------------------------------------------------------------------------------------------------------------------------------------------
    //--------------------------------------------------Ende der schleife------------------------------------------------------------------------------
    //-------------------------------------------------------------------------------------------------------------------------------------------------
    
    myObject.sort(function (alpha, beta) {
                if ((alpha.value0.toString().toUpperCase()).trim() > (beta.value0.toString().toUpperCase()).trim())
                   return 1;
                if ((beta.value0.toString().toUpperCase()).trim()> (alpha.value0.toUpperCase().toString()).trim())
                   return -1;
                return 0;
               }) 
    
    
                counter=-1;
      for (let i=0;i<myObject.length;i++){
          counter++;
         // log(myObject[i].value0)
         //  log(myObject[i].valueBoost)
         //  log(myObject[i].valueIst+"  "+myObject[i].valueOffset+"  "+myObject[i].value2)
            if(Number(myObject[i].valueOffset)<9999){
              if(((Number(myObject[i].valueIst)+Number(myObject[i].valueOffset) <Number(myObject[i].valueSoll)) && myObject[i].value5!="Summer")
                 || ( myObject[i].value5!="Summer" && myObject[i].valueBoost=="Ja"))  {val0="<font color=\""+colorHeating +"\">"+myObject[i].value0+" &#9650;"}
                 else {val0=myObject[i].value0}
            }else{ val0="<font color=\""+"white" +"\">"+myObject[i].value0 ;}
    
         //  val0=myObject[i].value0;
           val1=myObject[i].value1; 
           val2=myObject[i].value2;
           val3=myObject[i].value3;
           val4=myObject[i].value4;
           val5=myObject[i].value5;
           val6=myObject[i].value6;
           val7=myObject[i].value7;
    
    tabelleBind(); 
      }
    
          tabelleFinish(); // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
    //  log(JSON.stringify(arrForjQuer))   
    } // function ende
    
    
    
    //MAIN:
     
    schedule(mySchedule,  function () {
     writeHTML();
     if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
    }); 
     writeHTML();
    
       				 function tabelleBind(){
         //HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - hat man oben 5 Felder definiert, braucht man hier 5 Werte
       
           switch (mehrfachTabelle) {  
             case 1:  if(counter%2==0){  htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>"; break;} else 
                                      {  htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>"; break;}
    
            case 2:  if(counter%4==0) {
                      if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                  else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;
                           }else{  
                      if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                  else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;}
    
    
    
    
            case 3: if(counter%2==0 ) {
                       if(counter%3==0)           {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                  else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";} 
                                                   else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                             } break; }else{
                       if(counter%3==0)                {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                  else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                   else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                             } break;      }
    
    
    
    
            case 4: if(counter%8==0)  {
                       if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                      else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                   else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\>&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                     else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                             } break;  }else{
                       if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                      else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                   else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                     else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                             } break;       }
    
         } //switch ende
    
    
    
    }
    
    function tabelleFinish() {
    
          // tabelle fertigstellen
          switch (mehrfachTabelle) {  
           case 1:    break;
    
           case 2:    
                     if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                    
                      break;
    
           case 3:   if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                     if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');         
                     if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                   
                      break;
           case 4:   if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                     if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                     if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                     if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>"); 
                     break; }
         
                        var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
           var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
            
            if (!htmlSignature) htmlUnter="";
              //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
               var htmlOutVIS="";
             //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                if (htmlUberschrift) 
                    { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter +visScript: htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+visScript ;
    
                  } else {
                   zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+visScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+visScript;
    
                     }
    
    // log("bin raus aus tabelleBind");
               if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
    
     var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
    
     if (!htmlSignature) htmlUnter="";
     var htmlEnd="</table>"+htmlUnter+"</div></body>";
     //mit oder ohne überschrift - zentriert oder links
    htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd;
     //log(htmlOut);
     
    
    
    }
    
    
    
     on({id: dpSchalter, ack: false, change: "any"}, function (obj) { 
         //  log(obj.id)
         let value = obj.state.val; 
          /*  log("------------"+obj.state.val)
            log("------------"+value.split(",")[0])
            log(value.split(",")[1]+"------------"+arrForjQuerSoll[(Number(value.split(",")[1]))].id)
            log(value.split(",")[1]+"------------"+arrForjQuerCom[(Number(value.split(",")[1]))].id)
            log(value.split(",")[1]+"------------"+arrForjQuerEco[(Number(value.split(",")[1]))].id)
           */ 
         //   if(value.split(",")[2]=="Bosch")  setState(arrForjQuer[(Number(value.split(",")[1]))].id,value.split(",")[0])
    
            if(value.split(",")[2]=="Boost_Fritz")  {let helper;//log(value.split(",")[0])
                                                 value.split(",")[0]=="JA" ? helper=true : helper=false;
                                                 setState(arrForjQuer2[(Number(value.split(",")[1]))].id,helper);
                                                 setTimeout(function () {writeHTML();  }, 2050);}
            if(value.split(",")[2]=="Soll_Temp_Fritz") setState(arrForjQuerSoll[(Number(value.split(",")[1]))].id,Number(value.split(",")[0]));
          //  if(value.split(",")[2]=="Com_Temp_Fritz")  setState(arrForjQuerCom [(Number(value.split(",")[1]))].id,Number(value.split(",")[0]));
           // if(value.split(",")[2]=="Eco_Temp")  setState(arrForjQuerEco [(Number(value.split(",")[1]))].id,Number(value.split(",")[0]));
       // setTimeout(function () {writeHTML();  }, 2050);
        
    
         
       });
    
    
    function makeTheFirstObject(){
          
            myObject.push({                "value0" : val0,            //  "INSTANCE"
                                           "value1" : val1,            //  "SINCE"
                                           "value2" : val2,            //  "STATUS"
                                           "value3" : val3,            //  "INSTANCE"
                                           "value4" : val4,            //  "SINCE"
                                           "value5" : val5,
                                           "value6":  val6,
                                           "value7":  val7,
                                           "valueOffset": offsetHelp,
                                           "valueBoost":boostHelp,
                                           "valueSoll":sollHelp,
                                           "valueIst":istHelp})   }
    
     let triggerArr=[]
     $('fritzdect.*.DECT_*.tsoll').each(function(id, i) {   
      triggerArr.push(id);
      triggerArr.push(id.replace("tsoll","battery"));
      });    
                            
    on({id: triggerArr,  change: "ne"}, async function (obj) {
      setTimeout(function () {writeHTML();  }, 2050);
    });
    
    
    
    
    
    

    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 Antwort Letzte Antwort
    1
    • liv-in-skyL liv-in-sky

      hier eine tabelle für interessierte

      • warum gibt es diese tabelle - anzeige der thermostate und einstellen der soll-temp möglich

      • grundlage des scriptes ist: https://forum.iobroker.net/topic/28021/html-table-für-vis-oder-iqontrol-js-und-blockly

      • wie üblich müssen datenpunkte selbst angelegt werden und im script eingegeben werden dpVIS und dpSchalter im script setting

      • im setting bereich des scriptes können die html settings auf wunsch geändert werden (darstellung farbe, ...)

      • das schedule kann selbst eingestellt werden - es wird aber auch auf die änderung der soll-temp getriggert

      • die anzeige der tabelle folgt über html-widget mit binding (https://forum.iobroker.net/post/558025)

      AApossis (106).gif

       /**
      * Zweck:   Tabelle für Fritz!Dect Thermostate
      * Datum:   27.8.2021 13:16
      * Autor:   @liv-in-sky
      */
      
      
      
      //HIER WIRD PFAD UND FILENAME DEFINIERT
      const path = "/htmlexample.html";                   //FIlenamen definieren
      const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
      let   braucheEinFile=false;                          // bei true wird ein file geschrieben
      let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
      let dpVIS="0_userdata.0.CONTROL-OWN.TABELLEN.Heizung"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
      let dpSchalter="0_userdata.0.CONTROL-OWN.TABELLEN.HeizungSchalten";   //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
      let mySchedule="   */10 * * * * ";                       //jede minute 
      let colorHeating="#A0C2A0" ;
      let colorOffset="lightgreen"
      //---------------------------------------
      
      //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 5
      var htmlFeld1='RAUM';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
      var htmlFeld2='IST-TEMP';        var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
      var htmlFeld3='SOLL-TEMP';         var Feld3lAlign="center";                    // überschrift Tabellen Spalte3 und  Ausrichtung left,right or center
      var htmlFeld4='COMFORT';        var Feld4lAlign="center";                    // überschrift Tabellen Spalte4 und  Ausrichtung left,right or center
      var htmlFeld5='ECO-MODE';        var Feld5lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
      var htmlFeld6='MODUS';        var Feld6lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
      var htmlFeld7='BOOST';        var Feld7lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
      var htmlFeld8='BATT';        var Feld8lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
      
      //-----------------------------------
      
      
      
      //hier werden die styles für die tabelle definiert
      //ÜBERSCHRIFT ÜBER TABELLE
      let   htmlUberschrift=true;                           // mit Überschrift über der tabelle
      let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
      const htmlFeldUeber='Frit!Dect Thermostat';              // Überschrift und Signature
      const htmlFarbUber="white";                         // Farbe der Überschrift
      const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
      const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
      //MEHRERE TABELLEN NEBENEINANDER
      let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
      const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
      const farbetrennungsLinie="white";
      const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
      const htmlFarbTableColorUber="white";               // Überschrift in der tabelle - der einzelnen Spalten
      //ÜBERSCHRIFT SPALTEN
      const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
      const LinieUnterUeberschrift="2";                   // Linie nur unter Spaltenüberschrift - 
      const farbeLinieUnterUeberschrift="white";
      const groesseUeberschrift=16;
      const UeberschriftStyle="bold"                     // möglich "bold"
      //GANZE TABELLE
      let abstandZelle="4";
      let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
      let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
      let weite="auto";                                     //Weite der Tabelle
      let zentriert=true;                                   //ganze tabelle zentriert
      const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
      const htmlSchriftart="Helvetica";
      const htmlSchriftgroesse="17px";
      //FELDER UND RAHMEN
      let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
      const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
      const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
      const htmlFarbTableColorGradient1="#424242";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
      const htmlFarbTableColorGradient2="lightgreen"//"#298A08";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
      const htmlFarbTableBorderColor="grey";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
      let htmlRahmenLinien="cols";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
      const htmlSpalte1Weite="auto";                    //  Weite der ersten beiden  Spalten oder z.b. 115px
      
      // HIER NICHTS  ÄNDERN
      
      let borderHelpBottum;
      let borderHelpRight;
      let htmlcenterHelp;
      let htmlcenterHelp2;
      
      if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
      if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
      if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
      if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
      zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
      zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
      
      
      const htmlZentriert='<center>'
      const htmlStart=    "<!DOCTYPE html><html lang=\"de\"><head><title>Vorlage</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"+
                         "<style> * {  margin: 0;} body {background-color: "+backgroundAll+"; margin: 0 auto;  }"+
                         " p {padding-top: 10px; padding-bottom: 10px; text-align: "+htmlcenterHelp2+"}"+
                        // " div { margin: 0 auto;  margin-left: auto; margin-right: auto;}"+
                         " td { padding:"+abstandZelle+"px; border:0px solid "+htmlFarbTableBorderColor+";  border-right:"+borderHelpRight+"px solid "+htmlFarbTableBorderColor+";border-bottom:"+borderHelpBottum+"px solid "+htmlFarbTableBorderColor+";}"+ 
                         " table { width: "+weite+";  margin: 0 "+htmlcenterHelp+"; border:1px solid "+htmlFarbTableBorderColor+"; border-spacing=\""+abstandZelle+"0px\" ; }"+   // margin macht center
                         " td:nth-child(1) {width: "+htmlSpalte1Weite+"}"+"td:nth-child(2) {width:"+htmlSpalte1Weite+"}"+
                         `.myselect { color: red !important; background-color: green !important; -webkit-appearance: none;}`
                         " </style></head><body> <div>";
      //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
      const htmlTabStyle= "<table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                            "; font-family:"+htmlSchriftart+";background-image: linear-gradient(42deg,"+htmlFarbTableColorGradient2+","+htmlFarbTableColorGradient1+");\">";
      const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
      const htmlTabUeber3="</tr>";
      
      let visScript=`<script>
      $(document).ready(function(){
      $("[class*='Bosch']").css("background-color", "black");
      $("[class*='Bosch']").css("color", "white");
      $("[class*='Boost_Fritz']").css("background-color", "black");
      $("[class*='Boost_Fritz']").css("color", "white");
      })
           $(document).ready(function(){
               $("[class*='Bosch']").change(function(){                                  
             var selectedCountry = $(this).children("option:selected").val();
            
             var index = this.className.split('-')[1];
            vis.setValue('${dpSchalter}',selectedCountry+','+index+','+"Bosch")
            /* alert("You have selected the country - " + selectedCountry+"----"+index);*/})
             });
              $(document).ready(function(){
               $("[class*='Boost_Fritz']").change(function(){                                  
             var selectedCountry1 = $(this).children("option:selected").val();
             var index1 = this.className.split('-')[1];
            vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Boost_Fritz')
             /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
             });
             $(document).ready(function(){
               $("[class*='Soll_Temp_Fritz']").change( function(){                                  
             var selectedCountry1 = $(this).val();
           /*  console.log($(this))*/
             var index1 = this.className.split('-')[1];
            vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Soll_Temp_Fritz')
             /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
             });
             $(document).ready(function(){
               $("[class*='Com_Temp_Fritz']").change( function(){                                  
             var selectedCountry1 = $(this).val();
           /*  console.log($(this))*/
             var index1 = this.className.split('-')[1];
            vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Com_Temp_Fritz')
             /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
             });
             $(document).ready(function(){
               $("[class*='Eco_Temp']").change( function(){                                  
             var selectedCountry1 = $(this).val();
           /*  console.log($(this))*/
             var index1 = this.className.split('-')[1];
            vis.setValue('${dpSchalter}',selectedCountry1+','+index1+','+'Eco_Temp')
             /*alert("You have selected the country - " + selectedCountry1+"----"+index1);*/})
             });
        </script>`
      
      
      //NICHTS ÄNDERN - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 5
      
      
      var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td><td  align="+Feld3lAlign+">&ensp;"+htmlFeld3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+htmlFeld4+"&ensp;</td><td  align="+Feld5lAlign+">&ensp;"+htmlFeld5+"&ensp;</td><td  align="+Feld6lAlign+">&ensp;"+htmlFeld6+"&ensp;</td><td  align="+Feld7lAlign+">&ensp;"+htmlFeld7+"&ensp;</td><td  align="+Feld8lAlign+">&ensp;"+htmlFeld8+"&ensp;</td>";
      var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+
                         "&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld4+
                         "&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld5+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld6+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld7+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld8+"&ensp;</td>";
                             //------------------------------------------------------
      
      
      
      var htmlOut="";
      var mix;
      var counter;
      
      let arrForjQuer=[]
      let arrForjQuer2=[]
      let arrForjQuerSoll=[]
      let arrForjQuerCom=[]
      let arrForjQuerEco=[]
      let myObject=[];
      let offsetHelp=9999;
      let boostHelp;
      let sollHelp;
      let istHelp;
      
      
      var val1; var val2; var val0; var val3; var val4; var val5; var val6; var val7;
      var htmlTabUeber="";
      function writeHTML(){
      
      
      
      htmlOut="";
      
      counter=-1;
      htmlTabUeber="";
      switch (mehrfachTabelle) { 
         case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
         case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
         case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2+htmlTabUeber2+htmlTabUeber3; break;
         case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
      }; 
      if (!UeberschriftSpalten) {htmlTabUeber=""}  
      
      //--------------------------------------------------------------------------------------------------------------------------------------------------
      //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
      //---------alle valx werte müssen von euch bestimmt werden - val0,val1,val2,val3,val4!!!------------------------------------------------------------
      //--------------------------------------------------------------------------------------------------------------------------------------------------
      arrForjQuer=[]; arrForjQuer2=[] ;arrForjQuerSoll=[]; arrForjQuerCom=[];arrForjQuerEco=[];myObject=[];
      
      $('fritzdect.*.DECT_*.tist').each(function(id, i) {           // hier eigene schleife definieren
              var ida = id.split('.');
             
                counter++;                                 // SEHR WICHTIG - MUSS IN JEDER SCHLEIFE INTEGRIERT SEIN
              
              val0=getState(id.replace("tist","name")).val
             
              //  log(String(getState(id).val)+" "+String(getState(id.replace("tist","offset")).val) +" "+ String(getState(id.replace("tist","tsoll")).val))
              if(existsState(id.replace("tist","boostactive"))) {getState(id.replace("tist","boostactive")).val ?  val6="Ja" :  val6="Nein";} else {val6="NA"}  
             
             if(existsState(id.replace("tist","offset"))){ offsetHelp=getState(id.replace("tist","offset")).val} else {offsetHelp=9999}
              
          
        // log(val0)
               istHelp=getState(id).val
               existsState(id.replace("tist","offset")) ? val1=getState(id).val+" °C"+" <sub><font color=\""+colorOffset +"\">("+getState(id.replace("tist","offset")).val+")</sub>" :  val1=" " ;
      
                sollHelp=getState(id.replace("tist","tsoll")).val; 
               val2=sollHelp+" °C";
                val3=getState(id.replace("tist","komfort")).val+" °C"; 
                val4=getState(id.replace("tist","absenk")).val+" °C"; 
                val5=getState(id.replace("tist","operationmode")).val
              if(existsState(id.replace("tist","boostactive"))) { getState(id.replace("tist","boostactive")).val ?  val6="Ja" :  val6="Nein";
                                                                  boostHelp=val6;
                                                                } else {boostHelp="NA";
                                                                        val6="NA"} 
              
               if(existsState(id.replace("tist","battery"))) {if (getState(id.replace("tist","battery")).val>20) val7="<font color=\""+colorHeating +"\">"+getState(id.replace("tist","battery")).val+" %";} else {val7=""}
              /*  getState(id.replace("tist","RoomClimateControl.ventilationMode")).val ?  val7="Ja" :  val7="Nein"; */
                       
      
       let setter1="" ;let setter2="";let setter3="";let setter4=""; let idMaker="Bosch-"+String(counter);
       /*
       arrForjQuer.push({  "number":"Bosch-"+String(counter),"id":id.replace("tist","RoomClimateControl.operationMode")})
       if (val5=="MANUAL") setter1="selected"
        if (val5=="AUTOMATIC") setter2="selected"
         if (val5=="OFF") setter3="selected"
          if (val5=="UNKNOWN") setter4="selected"
       val5=
         ` <select  class="  ${"Bosch-"+String(counter)}" name="BoschMode" size="1" >
          <option ${setter1} value="MANUAL">MANUAL</option>
          <option ${setter2} value="AUTOMATIC">AUTOMATIC</option>
          <option ${setter3} value="OFF">OFF</option>
          <option ${setter4} value="UNKNOWN">'UNKNOWN</option></select>`
       */
         if(existsState(id.replace("tist","boostactive"))){
          setter1="";setter2="";idMaker="Boost_Fritz-"+String(counter);
          arrForjQuer2.push({  "number":"Boost_Fritz-"+String(counter),"id":id.replace("tist","boostactive")})
          if(val6=="Ja") setter1="selected"
          if(val6=="Nein") setter2="selected"
          val6= `<select class="${"Boost_Fritz-"+String(counter)}" name="Boost_FritzMode" size="1" background="#ff0">
          <option ${setter1} value="JA">JA</option>
          <option ${setter2} value="NEIN">NEIN</option>
          </select>`
        }
         
         idMaker="Soll_Temp_Fritz-"+String(counter);
         arrForjQuerSoll.push({  "number":"Soll_Temp_Fritz-"+String(counter),"id":id.replace("tist","tsoll")})
      val2=`<input type="text" class="${idMaker}" value = ${val2} style="border:0px; text-align:center; font-size:100%; width:35px; background-color:black; color:white;" >°C `
      /*
       idMaker="Com_Temp_Fritz-"+String(counter);
       arrForjQuerCom.push({  "number":"Com_Temp_Fritz-"+String(counter),"id":id.replace("tist","komfort")})
      val3=`<form  onsubmit="return false"><input type="text" class="${idMaker}" value = ${val3} style="border:0px; text-align:center; font-size:100%; width:35px; background-color:black; color:white;" >°C </form>`
      
       idMaker="Eco_Temp-"+String(counter);
       arrForjQuerEco.push({  "number":"Eco_Temp-"+String(counter),"id":id.replace("tist","RoomClimateControl.setpointTemperatureForLevelEco")})
      val4=`<form  onsubmit="return false"><input type="text" class="${idMaker}" value = ${val4} style="border:0px; text-align:center; font-size:100%; width:35px; background-color:black; color:white;" >  °C </form>`
      */
      makeTheFirstObject();
      
          //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
          
        }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
      
      //-------------------------------------------------------------------------------------------------------------------------------------------------
      //--------------------------------------------------Ende der schleife------------------------------------------------------------------------------
      //-------------------------------------------------------------------------------------------------------------------------------------------------
      
      myObject.sort(function (alpha, beta) {
                  if ((alpha.value0.toString().toUpperCase()).trim() > (beta.value0.toString().toUpperCase()).trim())
                     return 1;
                  if ((beta.value0.toString().toUpperCase()).trim()> (alpha.value0.toUpperCase().toString()).trim())
                     return -1;
                  return 0;
                 }) 
      
      
                  counter=-1;
        for (let i=0;i<myObject.length;i++){
            counter++;
           // log(myObject[i].value0)
           //  log(myObject[i].valueBoost)
           //  log(myObject[i].valueIst+"  "+myObject[i].valueOffset+"  "+myObject[i].value2)
              if(Number(myObject[i].valueOffset)<9999){
                if(((Number(myObject[i].valueIst)+Number(myObject[i].valueOffset) <Number(myObject[i].valueSoll)) && myObject[i].value5!="Summer")
                   || ( myObject[i].value5!="Summer" && myObject[i].valueBoost=="Ja"))  {val0="<font color=\""+colorHeating +"\">"+myObject[i].value0+" &#9650;"}
                   else {val0=myObject[i].value0}
              }else{ val0="<font color=\""+"white" +"\">"+myObject[i].value0 ;}
      
           //  val0=myObject[i].value0;
             val1=myObject[i].value1; 
             val2=myObject[i].value2;
             val3=myObject[i].value3;
             val4=myObject[i].value4;
             val5=myObject[i].value5;
             val6=myObject[i].value6;
             val7=myObject[i].value7;
      
      tabelleBind(); 
        }
      
            tabelleFinish(); // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
      //  log(JSON.stringify(arrForjQuer))   
      } // function ende
      
      
      
      //MAIN:
       
      schedule(mySchedule,  function () {
       writeHTML();
       if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
      }); 
       writeHTML();
      
         				 function tabelleBind(){
           //HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - hat man oben 5 Felder definiert, braucht man hier 5 Werte
         
             switch (mehrfachTabelle) {  
               case 1:  if(counter%2==0){  htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>"; break;} else 
                                        {  htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>"; break;}
      
              case 2:  if(counter%4==0) {
                        if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                    else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;
                             }else{  
                        if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                    else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;}
      
      
      
      
              case 3: if(counter%2==0 ) {
                         if(counter%3==0)           {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                    else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";} 
                                                     else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                               } break; }else{
                         if(counter%3==0)                {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                    else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                     else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                               } break;      }
      
      
      
      
              case 4: if(counter%8==0)  {
                         if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                        else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                     else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\>&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                       else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                               } break;  }else{
                         if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                        else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                     else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                       else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                               } break;       }
      
           } //switch ende
      
      
      
      }
      
      function tabelleFinish() {
      
            // tabelle fertigstellen
            switch (mehrfachTabelle) {  
             case 1:    break;
      
             case 2:    
                       if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                      
                        break;
      
             case 3:   if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                       if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');         
                       if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                     
                        break;
             case 4:   if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                       if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                       if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                       if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>"); 
                       break; }
           
                          var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
             var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
              
              if (!htmlSignature) htmlUnter="";
                //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
                 var htmlOutVIS="";
               //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                  if (htmlUberschrift) 
                      { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter +visScript: htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+visScript ;
      
                    } else {
                     zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+visScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+visScript;
      
                       }
      
      // log("bin raus aus tabelleBind");
                 if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
      
       var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
      
       if (!htmlSignature) htmlUnter="";
       var htmlEnd="</table>"+htmlUnter+"</div></body>";
       //mit oder ohne überschrift - zentriert oder links
      htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd;
       //log(htmlOut);
       
      
      
      }
      
      
      
       on({id: dpSchalter, ack: false, change: "any"}, function (obj) { 
           //  log(obj.id)
           let value = obj.state.val; 
            /*  log("------------"+obj.state.val)
              log("------------"+value.split(",")[0])
              log(value.split(",")[1]+"------------"+arrForjQuerSoll[(Number(value.split(",")[1]))].id)
              log(value.split(",")[1]+"------------"+arrForjQuerCom[(Number(value.split(",")[1]))].id)
              log(value.split(",")[1]+"------------"+arrForjQuerEco[(Number(value.split(",")[1]))].id)
             */ 
           //   if(value.split(",")[2]=="Bosch")  setState(arrForjQuer[(Number(value.split(",")[1]))].id,value.split(",")[0])
      
              if(value.split(",")[2]=="Boost_Fritz")  {let helper;//log(value.split(",")[0])
                                                   value.split(",")[0]=="JA" ? helper=true : helper=false;
                                                   setState(arrForjQuer2[(Number(value.split(",")[1]))].id,helper);
                                                   setTimeout(function () {writeHTML();  }, 2050);}
              if(value.split(",")[2]=="Soll_Temp_Fritz") setState(arrForjQuerSoll[(Number(value.split(",")[1]))].id,Number(value.split(",")[0]));
            //  if(value.split(",")[2]=="Com_Temp_Fritz")  setState(arrForjQuerCom [(Number(value.split(",")[1]))].id,Number(value.split(",")[0]));
             // if(value.split(",")[2]=="Eco_Temp")  setState(arrForjQuerEco [(Number(value.split(",")[1]))].id,Number(value.split(",")[0]));
         // setTimeout(function () {writeHTML();  }, 2050);
          
      
           
         });
      
      
      function makeTheFirstObject(){
            
              myObject.push({                "value0" : val0,            //  "INSTANCE"
                                             "value1" : val1,            //  "SINCE"
                                             "value2" : val2,            //  "STATUS"
                                             "value3" : val3,            //  "INSTANCE"
                                             "value4" : val4,            //  "SINCE"
                                             "value5" : val5,
                                             "value6":  val6,
                                             "value7":  val7,
                                             "valueOffset": offsetHelp,
                                             "valueBoost":boostHelp,
                                             "valueSoll":sollHelp,
                                             "valueIst":istHelp})   }
      
       let triggerArr=[]
       $('fritzdect.*.DECT_*.tsoll').each(function(id, i) {   
        triggerArr.push(id);
        triggerArr.push(id.replace("tsoll","battery"));
        });    
                              
      on({id: triggerArr,  change: "ne"}, async function (obj) {
        setTimeout(function () {writeHTML();  }, 2050);
      });
      
      
      
      
      
      

      ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von Ein ehemaliger Benutzer
      #2

      @liv-in-sky

      Hi, super, das kommt wie gerufen!
      Kann man die IST-Temp bei den Gruppen ausblenden?
      Kann man die Räume alphabetisch sortieren lassen?

      14c93ffc-ad42-4588-a278-6151a399edd3-grafik.png

      Ansonsten klappt auf anhieb!
      DANKE

      liv-in-skyL 2 Antworten Letzte Antwort
      0
      • ? Ein ehemaliger Benutzer

        @liv-in-sky

        Hi, super, das kommt wie gerufen!
        Kann man die IST-Temp bei den Gruppen ausblenden?
        Kann man die Räume alphabetisch sortieren lassen?

        14c93ffc-ad42-4588-a278-6151a399edd3-grafik.png

        Ansonsten klappt auf anhieb!
        DANKE

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #3

        @ilovegym

        gruppen ? kenn ich garnicht - lass mich das mal checken

        das sortieren schau ich mir auch nochmal an

        wenn du noch machbare ideen hast - lass es mich wissen

        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 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @liv-in-sky

          Hi, super, das kommt wie gerufen!
          Kann man die IST-Temp bei den Gruppen ausblenden?
          Kann man die Räume alphabetisch sortieren lassen?

          14c93ffc-ad42-4588-a278-6151a399edd3-grafik.png

          Ansonsten klappt auf anhieb!
          DANKE

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #4

          @ilovegym

          andere frage - nutzt du firefox ?

          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 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @ilovegym

            andere frage - nutzt du firefox ?

            ? Offline
            ? Offline
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von
            #5

            @liv-in-sky zum Anzeigen am PC, ja.

            Script mit Chrome kopiert. Warum?

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • ? Ein ehemaliger Benutzer

              @liv-in-sky zum Anzeigen am PC, ja.

              Script mit Chrome kopiert. Warum?

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von liv-in-sky
              #6

              @ilovegym weil die auswahl bei boost bei dir einen weißen hintergrund hat - bei mir ist der hintergrund schwarz

              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 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @ilovegym weil die auswahl bei boost bei dir einen weißen hintergrund hat - bei mir ist der hintergrund schwarz

                ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von
                #7

                @liv-in-sky das liegt an meiner View, ich hab das mal schnell in Minuvis eingebunden...
                ist auch mit Chrome so, da muss ich mal in der CSS schauen..

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • ? Ein ehemaliger Benutzer

                  @liv-in-sky das liegt an meiner View, ich hab das mal schnell in Minuvis eingebunden...
                  ist auch mit Chrome so, da muss ich mal in der CSS schauen..

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von liv-in-sky
                  #8

                  @ilovegym kannst du tatsächlich auch den soll wert ändern oder einen boost einstellen - und ändern sich die dp im object tab

                  evtl kann deine vis kein jquery - dass ist für den hintergrund zuständig und für das direkte schalten

                  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 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @ilovegym kannst du tatsächlich auch den soll wert ändern oder einen boost einstellen - und ändern sich die dp im object tab

                    evtl kann deine vis kein jquery - dass ist für den hintergrund zuständig und für das direkte schalten

                    ? Offline
                    ? Offline
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von
                    #9

                    @liv-in-sky

                    ich weiss, jquery geht damit leider nicht, ich teste immer erstmal damit, wie das überhaupt aussieht und was geht.. der Rest kommt später.. :-)

                    übrigens hat mir das Script ein paar Warnings rausgehauen..

                    2021-08-27 10:40:00.045  - info: javascript.0 (3263961) script.js.common.View.IcalMinuVIS: Update Wochenplan
                    2021-08-27 10:40:00.104  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B598D28A.offset" not found (3)
                    2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                    2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.111  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B598D28A.offset" not found (3)
                    2021-08-27 10:40:00.112  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                    2021-08-27 10:40:00.112  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.114  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B598D28A.battery" not found (3)
                    2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                    2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.118  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B5E8CC62.offset" not found (3)
                    2021-08-27 10:40:00.119  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                    2021-08-27 10:40:00.119  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.119  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.121  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.121  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.121  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B5E8CC62.offset" not found (3)
                    2021-08-27 10:40:00.122  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                    2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.124  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.124  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.124  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.124  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B5E8CC62.battery" not found (3)
                    2021-08-27 10:40:00.128  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                    2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.130  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3BFDC427C.offset" not found (3)
                    2021-08-27 10:40:00.132  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                    2021-08-27 10:40:00.132  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.132  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.134  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.134  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.134  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3BFDC427C.offset" not found (3)
                    2021-08-27 10:40:00.135  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                    2021-08-27 10:40:00.135  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.137  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.137  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.137  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.137  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3BFDC427C.battery" not found (3)
                    2021-08-27 10:40:00.138  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                    2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.156  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.156  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3C00BBF97.offset" not found (3)
                    2021-08-27 10:40:00.158  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                    2021-08-27 10:40:00.158  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.158  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.160  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.160  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3C00BBF97.offset" not found (3)
                    2021-08-27 10:40:00.161  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                    2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.163  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3C00BBF97.battery" not found (3)
                    2021-08-27 10:40:00.168  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                    2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                    2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                    2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                    2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                    2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                    2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                    2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                    2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                    2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                    2021-08-27 10:40:00.194  - info: javascript.0 (3263961) script.js.common.Message.LebensmittelwarnungTabelle: RSS-Feed https://www.lebensmittelwarnung.de/bvl-lmw-de/opensaga/feed/alle/hessen.rss eingelesen
                    
                    
                    liv-in-skyL 1 Antwort Letzte Antwort
                    0
                    • ? Ein ehemaliger Benutzer

                      @liv-in-sky

                      ich weiss, jquery geht damit leider nicht, ich teste immer erstmal damit, wie das überhaupt aussieht und was geht.. der Rest kommt später.. :-)

                      übrigens hat mir das Script ein paar Warnings rausgehauen..

                      2021-08-27 10:40:00.045  - info: javascript.0 (3263961) script.js.common.View.IcalMinuVIS: Update Wochenplan
                      2021-08-27 10:40:00.104  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B598D28A.offset" not found (3)
                      2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                      2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.109  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.110  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.111  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B598D28A.offset" not found (3)
                      2021-08-27 10:40:00.112  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                      2021-08-27 10:40:00.112  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.113  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.114  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.114  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B598D28A.battery" not found (3)
                      2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                      2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.116  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.117  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.118  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B5E8CC62.offset" not found (3)
                      2021-08-27 10:40:00.119  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                      2021-08-27 10:40:00.119  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.119  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.120  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.121  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.121  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.121  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B5E8CC62.offset" not found (3)
                      2021-08-27 10:40:00.122  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                      2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.123  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.124  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.124  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.124  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.124  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3B5E8CC62.battery" not found (3)
                      2021-08-27 10:40:00.128  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                      2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.129  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.130  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.130  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3BFDC427C.offset" not found (3)
                      2021-08-27 10:40:00.132  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                      2021-08-27 10:40:00.132  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.132  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.133  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.134  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.134  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.134  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3BFDC427C.offset" not found (3)
                      2021-08-27 10:40:00.135  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                      2021-08-27 10:40:00.135  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.136  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.137  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.137  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.137  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.137  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3BFDC427C.battery" not found (3)
                      2021-08-27 10:40:00.138  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                      2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.139  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.155  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.156  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.156  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3C00BBF97.offset" not found (3)
                      2021-08-27 10:40:00.158  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:210:33
                      2021-08-27 10:40:00.158  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.158  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.159  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.160  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.160  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3C00BBF97.offset" not found (3)
                      2021-08-27 10:40:00.161  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:212:82
                      2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.162  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.163  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.163  - warn: javascript.0 (3263961) getState "fritzdect.0.DECT_grp7A1AB5-3C00BBF97.battery" not found (3)
                      2021-08-27 10:40:00.168  - warn: javascript.0 (3263961)     at script.js.common.View.FritzDect2HTML:219:13
                      2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
                      2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at writeHTML (script.js.common.View.FritzDect2HTML:201:30)
                      2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at Object.<anonymous> (script.js.common.View.FritzDect2HTML:303:2)
                      2021-08-27 10:40:00.169  - warn: javascript.0 (3263961)     at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                      2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                      2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                      2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                      2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at listOnTimeout (internal/timers.js:557:17)
                      2021-08-27 10:40:00.170  - warn: javascript.0 (3263961)     at processTimers (internal/timers.js:500:7)
                      2021-08-27 10:40:00.194  - info: javascript.0 (3263961) script.js.common.Message.LebensmittelwarnungTabelle: RSS-Feed https://www.lebensmittelwarnung.de/bvl-lmw-de/opensaga/feed/alle/hessen.rss eingelesen
                      
                      
                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #10

                      @ilovegym sind die gruppen - habe ich jetzt mal definiert und teste gerade - wird gefixt :-)

                      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 Antwort Letzte Antwort
                      0
                      • liv-in-skyL liv-in-sky

                        @ilovegym sind die gruppen - habe ich jetzt mal definiert und teste gerade - wird gefixt :-)

                        ? Offline
                        ? Offline
                        Ein ehemaliger Benutzer
                        schrieb am zuletzt editiert von
                        #11

                        @liv-in-sky habs auch grad gelesen.. heut nich so fit.. :-()

                        liv-in-skyL 1 Antwort Letzte Antwort
                        0
                        • ? Ein ehemaliger Benutzer

                          @liv-in-sky habs auch grad gelesen.. heut nich so fit.. :-()

                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von
                          #12

                          @ilovegym offset, battery und ist-wert machen bei guppen keinen sinn - die muss ich filtern

                          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 Antwort Letzte Antwort
                          0
                          • liv-in-skyL liv-in-sky

                            @ilovegym offset, battery und ist-wert machen bei guppen keinen sinn - die muss ich filtern

                            ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von
                            #13

                            @liv-in-sky Super, damit kann man arbeiten!
                            Danke!

                            6cb90e74-d5ad-4b07-9f00-37539fff9b93-grafik.png

                            liv-in-skyL 2 Antworten Letzte Antwort
                            0
                            • liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #14

                              im ersten post ist ein neues script

                              • gruppen sind enthalten und werden "richtig" angezeigt
                              • sortiert wird nach thermostat-namen

                              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 Antwort Letzte Antwort
                              0
                              • ? Ein ehemaliger Benutzer

                                @liv-in-sky Super, damit kann man arbeiten!
                                Danke!

                                6cb90e74-d5ad-4b07-9f00-37539fff9b93-grafik.png

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von
                                #15

                                @ilovegym

                                aber das schalten bzw die eingabe des sollwertes in die tabelle funktioniert nicht bei dir?

                                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 Antwort Letzte Antwort
                                0
                                • ? Ein ehemaliger Benutzer

                                  @liv-in-sky Super, damit kann man arbeiten!
                                  Danke!

                                  6cb90e74-d5ad-4b07-9f00-37539fff9b93-grafik.png

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #16

                                  @ilovegym

                                  kannst du noch bitte testen, was passiert, wenn du bei einem thermostat die solltemp erhöhst (über fritzbox, da dies in der tabelle nicht funkt.)

                                  thermostate, die heizen, also wo der sollwert höher als der ist-wert ist, sollten in einer anderen farbe dargestellt werden

                                  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 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @ilovegym

                                    aber das schalten bzw die eingabe des sollwertes in die tabelle funktioniert nicht bei dir?

                                    ? Offline
                                    ? Offline
                                    Ein ehemaliger Benutzer
                                    schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                                    #17

                                    @liv-in-sky nee mit Minuvis nicht.

                                    In der VIS hab ich es noch nicht eingebunden.

                                    Ja, funktioniert, Farbe ändert sich auf grün, wenn ich es aus dem Minuvis-Widget oder in Fritz direct ändere.

                                    4580d81b-8391-478e-b119-b0b4ba4e617a-grafik.png

                                    1 Antwort Letzte Antwort
                                    1
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    768

                                    Online

                                    32.6k

                                    Benutzer

                                    82.1k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe