<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[gelöst: wie vorgehen JavaScript Update viele Script Fehler]]></title><description><![CDATA[<p dir="auto">Ich möchte von JavaScript 5.1.3 auf 5.2.13 updaten. Hatte es auch versucht und bin wieder zurückgegangen.<br />
Warum, ich hatte in fast allen Scripten Fehler ohne Ende und kam nicht weiter. Einige konnte ich selber lösen aber nicht alle.</p>
<p dir="auto">Ich möchte das jetzt Stück für Stück angehen, wie gehe ich am besten vor?<br />
Script Engine auf Debug, updaten über die Oberfläche und dann jedes einzelne Script angehen mit Hilfe aus dem Forum?<br />
Die meisten Scripte sind hier im Forum mit Hilfe entstanden oder waren schon fertig und sind von mir angepasst worden.<br />
Diese liefen mit 5.1.3 ohne Fehler.</p>
<p dir="auto">Ich bin nicht der Experte (auch wenn die Ansicht auf Experte steht!), benötige also vermutlich bei den Scripten Schützenhilfe und möchte falls nötig alle wichtigen Informationen vorliegen haben.</p>
]]></description><link>https://forum.iobroker.net/topic/50241/gelöst-wie-vorgehen-javascript-update-viele-script-fehler</link><generator>RSS for Node</generator><lastBuildDate>Tue, 26 May 2026 15:45:16 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/50241.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Dec 2021 16:34:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:18:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a> nein habe ich nicht, Danke nochmal...</p>
]]></description><link>https://forum.iobroker.net/post/720108</link><guid isPermaLink="true">https://forum.iobroker.net/post/720108</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:18:13 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:17:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a> wenn du keine weiteren ical dp in irgendeinem script ausliest, wird dieser fehler nicht nochmal vorkommen :-)</p>
<p dir="auto">viel spaß</p>
]]></description><link>https://forum.iobroker.net/post/720107</link><guid isPermaLink="true">https://forum.iobroker.net/post/720107</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:17:33 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:17:14 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a> danke, das leuchtet ein... dann mach ich ich mal an die nächsten Problem die im Logfile stehen</p>
<p dir="auto">dieses Problem ist gelöst und der Kalendereintrag schon mal in der VIS aufgetaucht. Super</p>
]]></description><link>https://forum.iobroker.net/post/720106</link><guid isPermaLink="true">https://forum.iobroker.net/post/720106</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:14:41 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a></p>
<p dir="auto">weil auch gleichzeitig der ical adapter seine daten neu schrieb, kam es für 1-3 wochen zu diesem problem, weil der js-controller auch die daten anders gelesen hat - aber so funktioniert es  und wird wohl auch so bleiben</p>
<p dir="auto">je nachdem, was man upgedatet hatte, mußten die daten unterschiedlich gelesen werden</p>
]]></description><link>https://forum.iobroker.net/post/720103</link><guid isPermaLink="true">https://forum.iobroker.net/post/720103</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:14:41 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:14:38 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a> , wow so schnell... hab es eingesetzt und neu gestartet, jetzt ohne Fehler. Zu mindestens sehe ich keine mehr.<br />
Gibt es einen Grund warum das mit der Version 5.1.3 noch lief und jetzt nicht mehr?<br />
Ich bin nicht der Experte möchte nur ganz grob verstehen wenn man das grob erklären kann.</p>
<p dir="auto">ich synce gerade mein Outlook und anschl. die Adapter, mal sehen ob er den neuen Kalendereintrag übernimmt. ich sage hier bescheid</p>
]]></description><link>https://forum.iobroker.net/post/720100</link><guid isPermaLink="true">https://forum.iobroker.net/post/720100</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:14:38 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:08:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a> sagte in <a href="/post/720092">wie vorgehen JavaScript Update mit vielen Script Fehlern</a>:</p>
<p dir="auto">zeile 233 muss so sein:</p>
<pre><code>   let myDpInput=getState(dpTSJson[i]).val
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1639480036391-image-1.png" alt="Image 1.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.iobroker.net/post/720096</link><guid isPermaLink="true">https://forum.iobroker.net/post/720096</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:01:16 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/thomas-braun" aria-label="Profile: thomas-braun">@<bdi>thomas-braun</bdi></a> hier das Script (ich hoffe sind keine Daten drin die keiner sehen soll) ;)</p>
<pre><code> /*@liv-in-sky 2020  29.1.2021 12:18
  genutzt für Material-Design -&gt; let weiter unten

 *** HauptScript löst Kalenderaufbereitungen ab ***

 für das Widgets der wichtigsten Ereignisse in der VIS
 mit Blacklist und Sonderfarbe

 --&gt; 0_userdata.0.Tabellen.ical.

 */
//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.Tabellen.ical.Termine";         //WICHTIG wenn "braucheEinVISWidget" auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
//let dpTSJson=["ical.0.data.table","ical.1.data.table"];                        //mehrere Instanzen zusammenfügen
let dpTSJson=["ical.0.data.table","ical.1.data.table","ical.2.data.table","ical.3.data.table",];
let dpTSJsonCalName=["Rosemeyer","nächste Kalender"];                        //mehrere Instanzen zusammenfügen
let   braucheMaterialDesignWidgetTable=true;        // bei true wird ein json in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
let dpMaterialWidgetTable="0_userdata.0.Tabellen.ical.MaterialWidgetTable";  // WICHTIG wenn braucheMaterialDesignWidgetTable auf true MATERIALDESIGN Table Widget - datenpunkt anlegen: zeichenkette 
 
// seting für extra datenpunkte
let ichWillDpNextRunning=true;
let dpTerminNext="0_userdata.0.Tabellen.ical.TerminNext";                    // WICHTIG wenn ichWillDpNextRunning auf true  - datenpunkt anlegen: zeichenkette
let dpTerminRunning="0_userdata.0.Tabellen.ical.TerminRunning";               // WICHTIG wenn ichWillDpNextRunning auf true - datenpunkt anlegen: zeichenkette  
let dpTerminNextGanzerTag="0_userdata.0.Tabellen.ical.TerminNextGanzerTag";   // WICHTIG wenn ichWillDpNextRunning auf true  - datenpunkt anlegen: zeichenkette 
 
 let wievielTage=50
 let styleEinTagHTML="span"                                  // style der zeile wenn unter einem tag:  möglich b fett; i kursiv; span normal
                                                            // Original span - zeigt mit b die markierten Einträge fett
 let sortedByInstanz=false;
 let nurAnfangsZeit=false;
let ganzTaegigAusdruck="&amp;RightArrowLeftArrow;";             // "ganztägig" oder "den ganzen Tag" oder &amp;laquo; &amp;RightArrowLeftArrow;
 let bisVariable="&amp;longmapsto;"                              // wenn gerade läuft - running event zeichen
 let ersetze0MitWert="0"                                     // z.b. "heute" 
 let ersetze1MitWert="morgen"                                // z.b "morgen"
 
 // regex zum event-text ändern
 //let myFilterRegexEvent=/Biathlon(: .*)/;                  // Regex für EventAnzeige: event=event.replace(myFilterRegexEvent,myFilterRegexEvent2)
 //let myFilterRegexEvent2="Biat$1";                         // z.b. Geburtstag':   myFilterRegexEvent=/(.*) Geburtstag/; myFilterRegexEvent2="$1"
 
 let myFilterRegexEvent5=[/Biathlon(: .*)/,/(GELBE)R SACK/];                        // Regex für EventAnzeige: event=event.replace(myFilterRegexEvent,myFilterRegexEvent2)
 let myFilterRegexEvent6=["Biat$1","$1 Tonne"];                               // z.b. Geburtstag':   myFilterRegexEvent5=[/(.*) Geburtstag/];  let myFilterRegexEvent6=[""$1"]; 
                                                                         // WICHTIG : gleiche anzahl in den beide Variablen
 
 let mySchedule3="  */30 * * * * ";                       //alle 30 minuten //eigentlich unnötig, da das script auf änderung des ical datenpunktes triggert
  
 let wiederholAnzeige="true";                                // es werden pfeile am ende des event-eintraägs hinzugefügt, wenn es eine wiederholung ist
 let myWhiteListArray=[];                                    // momentan ohne [] whitelist sonst z.b ["URLAUB","frei"]  auf großschreibung achten
 let myBlackListArray=["Simvastatin", "Abfuhr", "Gelber Sack","Biotonne","Papiersammlung","Glassammlung","Hausmüll 2W","Hausmüll 4W"]; // momentan ohne [] blacklist sonst z.b ["Biathlon",Tabletten nehmen]  auf großschreibung achten
 
 let mySonderFarbeArr=["Ralf:"];               //  ohne [] termine, die besonders hervorgehoben werden sollen sonst z.b ["Biathlon",Tabletten nehmen] am besten mit sortedByInstanz=false;
 let mySonderSymbol="&amp;#9055;"+"&amp;ensp;";        //  🔸 🚘 ⚪  ⚫ ⭕  🔴 🔵 🟠 ⏱ 💀 👍 👎 📑 💲 👀   mehr: https://emojiterra.com/de/ oder https://unicode-table.com/de/html-entities/
                                               //  (⌾ &amp;#9022;) (🔹 &amp;#128313;) (🍏 &amp;#127823;) 💰 💸 (❗ &amp;#10071;) (⬩ &amp;#11049;) (● &amp;#9679;)  (⍟ &amp;#9734;-&gt;Stern) 
                                               //  (⌾ &amp;#9055;) (⧇ &amp;#10695;) (🎂 &amp;#127874;) (🟡 &amp;#128993;) (🔵 &amp;#128309;) (🟢 &amp;#128994;) (🔴 &amp;#128308;)
                                               //  (ℜ &amp;#8476;) (ℛ &amp;#8475;)
let mySonderFarbeArrRiko=["Riko:"];
let mySonderSymbolRiko="&amp;#9022;"+"&amp;ensp;"; 

let mySonderFarbeArrTUEV=["TÜV:","Steuer"];
let mySonderSymbolTUEV="⬩"+"&amp;ensp;"; 

let mySonderFarbeArrErnte=["Ernte:"];
let mySonderSymbolErnte="&amp;#127823;"+"&amp;ensp;"; 

let mySonderFarbeArrArzt=["Arzt:"];
let mySonderSymbolArzt="&amp;#9734;"+"&amp;ensp;"; 

let mySonderFarbeArrUrlaub=["Urlaub:"];
let mySonderSymbolUrlaub="&amp;#128313;"+"&amp;ensp;"; 

let mySonderFarbeArrConny=["Conny:"];
let mySonderSymbolConny="&amp;#128309;"+"&amp;ensp;"; 

let mySonderFarbeArrRebecca=["Rebecca:"];
let mySonderSymbolRebecca="&amp;#128993;"+"&amp;ensp;"; 

let mySonderFarbeArrGeburtstag=["Geburtstag von"];
let mySonderSymbolGeburtstag="&amp;#127874;"+"&amp;ensp;"; 

let mySonderFarbeArrWichtig=["WICHTIG:"];
let mySonderSymbolWichtig="&amp;#10071;"+"&amp;ensp;"; 

// let mySonderFarbeArrUrlaub=["Urlaub:"];
// let mySonderSymbolUrlaub="&amp;#9734;"+"&amp;ensp;"; 
//---------------------------------------
 
//HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 4
var htmlFeld1='EVENT';       var Feld1lAlign="left";          // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
var htmlFeld2='ZEIT';        var Feld2lAlign="center";        // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
var htmlFeld3='DATUM';         var Feld3lAlign="center";      // überschrift Tabellen Spalte3 und  Ausrichtung left,right or center
var htmlFeld4='WTAG';        var Feld4lAlign="center";        // überschrift Tabellen Spalte4 und  Ausrichtung left,right or center
var htmlFeld5='TAGE';        var Feld5lAlign="center";        // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
//-----------------------------------
 
 
//ÜBERSCHRIFT ÜBER TABELLE
let   htmlUberschrift=false;                // mit Überschrift über der tabelle
let   htmlSignature=false;                  // anstatt der Überscghrift eine signature: - kleiner - anliegend
const htmlFeldUeber='Ical';                 // Überschrift und Signature
const htmlFarbUber="green";                 // Farbe der Überschrift
const htmlSchriftWeite="normal";            // bold, normal - Fettschrift für Überschrift
const htmlUeberFontGroesse="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 htmlFarbZweiteTabelle="black";        // Farbe der Überschrift bei jeder 2.ten Tabelle
const htmlFarbTableColorUber="black";       // Überschrift in der tabelle - der einzelnen Spalten BDBDBD
//ÜBERSCHRIFT SPALTEN
const UeberSchriftHoehe=25;                  //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
const LinieUnterUeberschrift="2";           // Linie nur unter Spaltenüberschrift - 
const farbetrennungsLinie="white";
const farbeLinieUnterUeberschrift="black";
const groesseUeberschrift=16;
const UeberschriftStyle="normal"            // möglich "bold"
//GANZE TABELLE
let abstandZelle="3";
let farbeUngeradeZeilen="#333333"//"#1C1C1C";        //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
let farbeGeradeZeilen="black"//"black";              //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=""     //"Jura-DemiBold"   //"RobotoCondensed-Bold"   //"Helvetica";
const htmlSchriftgroesse="16px";
//FELDER UND RAHMEN
let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
const htmlFarbFelderschrift="#D8D8D8";                  // SchriftFarbe der Felder
const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
const htmlFarbTableColorGradient1="orange";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
const htmlFarbTableColorGradient2="green";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
const htmlFarbTableBorderColor="transparent";             // 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='&lt;center&gt;'
const htmlStart=    "&lt;!DOCTYPE html&gt;&lt;html lang=\"de\"&gt;&lt;head&gt;&lt;title&gt;Vorlage&lt;/title&gt;&lt;meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"&gt;"+
                   "&lt;style&gt; * {  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+"}"+
                   " &lt;/style&gt;&lt;/head&gt;&lt;body&gt; &lt;div&gt;";
//const htmlUeber=    "&lt;p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\"&gt;"+htmlFeldUeber+"&lt;/p&gt;";                    
const htmlTabStyle= "&lt;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+");\"&gt;";
const htmlTabUeber1="&lt;tr height=\""+UeberSchriftHoehe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \"&gt;";
const htmlTabUeber3="&lt;/tr&gt;";
 
 
//NICHTS ÄNDERN - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 5
 
var htmlTabUeber2="&lt;td width="+htmlSpalte1Weite+" align="+Feld1lAlign+"&gt;&amp;ensp;"+htmlFeld1+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld2lAlign+"&gt;&amp;ensp;"+htmlFeld2+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld3lAlign+"&gt;&amp;ensp;"+htmlFeld3+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;&amp;ensp;"+htmlFeld4+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld5lAlign+"&gt;&amp;ensp;"+htmlFeld5+"&amp;ensp;&lt;/td&gt;";
var htmlTabUeber2_1="&lt;td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld1+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld3+
                   "&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld3+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld4+
                   "&amp;ensp;&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld5+"&amp;ensp;&lt;/td&gt;";
                       //------------------------------------------------------
 
//im MD List Widget
 let farbeNurEinTag="yellow"                               //statusBarColor im MD List Widget wenn nur noch ein tag
 let farbeStandardBar="#d5d3b4"                            //// nicht benutzt!! statusBarColor im MD List Widget wenn normal
//im HTML Widget
//let bildergröße=24
 let farbeEinTagHTML="#CB9529"                             // wird nicht mehr genutzt!!  Farbe der zeile in html tabelle wenn unter einem tag:
let   braucheMaterialDesignWidget=false;             // bei true wird ein json in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
 
let dpMaterialWidget="0_userdata.0.Tabellen.ical.MaterialWidget";    // WICHTIG wenn braucheMaterialDesignWidget auf true MATERIALDESIGN List Widget - datenpunkt anlegen : zeichenkette  
 
var htmlOut="";
var mix;
var counter;
var val1; var val2; var val0; var val3; var val4;
var htmlTabUeber="";
//var wochentag = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag' ]
var myJsonWidget=[]; 
var myJsonWidget2=[];
var json1; var json2; var json3; var json4; var json44; var json5;
let oldID="";
let inDpNext="";
let inDpRunning=[];
let inDpRunning2="";
let inDpGanzTag="";
let helperTerminNext="";
function writeHTML(){
 
oldID="";
 
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!!!------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------
let myData=[];
let myData2=[];
let myData3=[];
inDpNext=""
inDpRunning=[];
 inDpRunning2="";
 
inDpGanzTag="";
 
for (let i=0;i&lt;dpTSJson.length;i++) {
   //20210809 nach Fehler, gelöst aus Forum: vorher let myDpInput=(getState(dpTSJson[i]).val);
   let myDpInput=(JSON.parse(getState(dpTSJson[i]).val));
  

// hier kann der Kalendername abgefangen werden   - RRO

     for  (let b=0;b&lt;myDpInput.length;b++) { myDpInput[b].myIDID=dpTSJsonCalName[i];}
  
   myData=myData.concat(myDpInput)          //myData=myData.concat(getState(dpTSJson[i]).val)
  
}
 


//WHITELIST FILTER
 
if (myWhiteListArray.length&gt;0){
for(let myind in myWhiteListArray) { for (let rr=0;rr&lt;myData.length;rr++) {
                                          if (myData[rr].event.includes(myWhiteListArray[myind]) ) { myData2.push(myData[rr])}
                                                 }}
//log(JSON.stringify(myData2))
 
myData=[];
myData=JSON.parse(JSON.stringify(myData2))
}
 
 
 
//BLACKLIST FILTER
 
if (myBlackListArray.length&gt;0){let oldStuff=""
for (let rr=0;rr&lt;myData.length;rr++) { let mycount=0;
                                       for(let myind in myBlackListArray){
                                        //log(myData[rr].event+" ---- "+myBlackListArray[myind]+" -----"+myData[rr].event.includes(myBlackListArray[myind]) )
                                          if (myData[rr].event.includes(myBlackListArray[myind]) ) { mycount++  }}
                                                if(mycount==0) {  myData3.push(myData[rr]);}
                                                                            
                                          }
                                                                                                   
myData=[];
myData=JSON.parse(JSON.stringify(myData3))

}

 // class = Kalender -RRO hier evtl. Abfrage aus ical2Calender-FarbScala einfügen

if (!sortedByInstanz){
myData.sort(function(a, b){
                               return new Date(a._date).getTime() - new Date(b._date).getTime();      // return parseInt(new Date(b.date).getTime()) - parseInt(a.date);
                              });}
if (false){
myData.sort(function (alpha, beta) {
             if (alpha.event.toUpperCase() &gt; beta.event.toUpperCase())
                return 1;
             if (beta.event.toUpperCase() &gt; alpha.event.toUpperCase())
                return -11;
             return 0;
            });      
}                         

// NEXT TERMIN
   for (let x=0;x&lt;myData.length;x++ ) {
           if (!myData[x].date.includes("&amp;#8594;") &amp;&amp; myData[x].date.includes(":") &amp;&amp; !myData[x].date.includes("01:00-00:00"))
               {   helperTerminNext=myData[x].date
                   helperTerminNext=helperTerminNext.replace(/(.+?\..*?\.).* (\d\d\:\d\d)-\d\d\:\d\d/,"$1 $2: ");  
                             
                if(   formatDate(getDateObject(myData[x]._date), "DD.MM") == formatDate(getDateObject((new Date().getTime())), "DD.MM") ) {helperTerminNext=helperTerminNext.replace(/.+? (\d\d\:\d\d)/,"Heute $1: ")} // : helperTerminNext=helperTerminNext.replace(/(.+?\..*?\.).* (\d\d\:\d\d)-\d\d\:\d\d/,"$1 $2")   
             
           //  log(  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM") +"  "+formatDate(getDateObject((new Date().getTime())), "DD.MM"))
               if (  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM") == formatDate(getDateObject(myData[x]._date), "DD.MM") ) {
                     helperTerminNext=helperTerminNext.replace(/.+? (\d\d\:\d\d)/,"Morgen $1: "); }
      
                   inDpNext=helperTerminNext+" "+myData[x].event;
                                     
                break;}
   }
//NEXT GANZER TAG
 
   for (let x=0;x&lt;myData.length;x++ ) {
           if ((!myData[x].date.includes("&amp;#8594;") &amp;&amp; !myData[x].date.includes(":") &amp;&amp;  formatDate(getDateObject(myData[x]._date), "DD.MM") != formatDate(getDateObject((new Date().getTime())), "DD.MM")) || 
                   (!myData[x].date.includes("&amp;#8594;") &amp;&amp; myData[x].date.includes("01:00") &amp;&amp;  formatDate(getDateObject(myData[x]._date), "DD.MM") != formatDate(getDateObject((new Date().getTime())), "DD.MM")) )
              { helperTerminNext=myData[x].date
               // log(helperTerminNext)
                let morgen =  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM"); //log(morgen)
                
                if (  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM") == formatDate(getDateObject(myData[x]._date), "DD.MM") ) {
                      helperTerminNext="Morgen: " ;
                   //   log("-"+helperTerminNext)
                      }
               
                                  
           inDpGanzTag=helperTerminNext+" "+myData[x].event ; 
                   
           break;}
   }   
 
// LÄUFT GERADE
 
   for (let x=0;x&lt;myData.length;x++ ) {
           if (myData[x].date.includes("&amp;#8594;")   &amp;&amp; myData[x].date.includes(":") &amp;&amp; !myData[x].date.includes("00:00") )
 
               {   helperTerminNext=myData[x].date.replace("&amp;#8594;","")
               helperTerminNext=helperTerminNext.replace(/.+? (.?)/,"bis: $1")
               inDpRunning.push(helperTerminNext+" "+myData[x].event)
               
                } }
     inDpRunning.length&gt;0 ? inDpRunning2=inDpRunning[inDpRunning.length-1]  :  inDpRunning2=""          
   
 
//myData=getState(dpTSJson).val;
//log(JSON.stringify(myData)) 
for (var index in myData ) {             // hier eigene schleife definieren
 
if(oldID!=myData[index].myIDID &amp;&amp; sortedByInstanz) {
 
    counter++;
    val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;b&gt;"+myData[index].myIDID;
    val1="";
    val2="";
    val3="";
    val4="";
    oldID= myData[index].myIDID
    tabelleBind();
     matDes(true,myData[index]._calColor);
} //else {
val1="";val2="";
 
     if(Math.ceil(Math.floor( ((new Date(myData[index]._date).getTime() - new Date().getTime())/60/60/24) )/1000 )-1 &lt;=wievielTage){
        counter++
       val0=myData[index].event
       if (myFilterRegexEvent5.length==myFilterRegexEvent6.length){
       for(let z=0;z&lt;myFilterRegexEvent5.length;z++){val0=val0.replace(myFilterRegexEvent5[z],myFilterRegexEvent6[z])}}
     //  val0=val0.replace(myFilterRegexEvent,myFilterRegexEvent2)
       let val2help=myData[index].date
     //  log(val2help+"  ---  "+myData[index].event)
 
 
       nurAnfangsZeit ? val1=val2help.replace(/.+? (\d\d\:\d\d)-\d\d\:\d\d/,"$1") : val1=val2help.replace(/.+? (.+)/,"$1") //ZEIT
    //   log(val1.includes(".")+ " val1= "+val1)
      
       val1.includes(".") &amp;&amp; nurAnfangsZeit ? val1=ganzTaegigAusdruck : val1=val1             //&amp;&amp; !nurAnfangsZeit
       !val2help.includes(":") &amp;&amp; !nurAnfangsZeit ? val1=ganzTaegigAusdruck : val1=val1  
       val2=val2help.replace(/(.+?) .+/,"$1") //DATUM
       
        let val3help=false; // zuständig für Farbe heute
        let helpi=false;
        if (myData[index]._rule==" ") helpi=true
    // log("---- "+val2+" ---val2help:  "+val2help+"      ++++"+myData[index]._allDay+"    +++++  "+val0+"  rrule-!"+myData[index]._rule+"!"+helpi)
//////////// IST GERADE AM LAUFEN - anderes Format 
       if ( myData[index].date.includes("&amp;#8594;") &amp;&amp; myData[index].rule!=" " &amp;&amp; myData[index].date.includes(":") ) {val1=ganzTaegigAusdruck;                                 val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")} 
       if ( val2.includes("&amp;#8594;") &amp;&amp; !myData[index]._allDay )                                      {val1=ganzTaegigAusdruck;                                 val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")}       
        if ( myData[index].date.includes("&amp;#8594;") &amp;&amp; myData[index].rule!=" " &amp;&amp; !myData[index].date.includes("00:00") )                     {val1=val2help.replace(/.+? .+? (.+)/, bisVariable+"$1"); val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")}
      //  log("val1 : "+val1+"  val2: "+val2)
        
/////////// HEUTE       
       // log(formatDate(getDateObject(myData[index]._date), "DD.MM") +"   "+ formatDate(getDateObject((new Date().getTime())), "DD.MM"))
        if (formatDate(getDateObject(myData[index]._date), "DD.MM") == formatDate(getDateObject((new Date().getTime())), "DD.MM") ) {
               val3help=true;        //FARBE HEUTE       
               
               val4=0;               // TAGE HEUTE  
////////// AB MORGEN               
        } else{
              let val44help=Math.floor( ((new Date(myData[index]._date).getTime() - new Date().getTime())/60/60/24) )/1000
             // log(val44help.toString())
 
              val4=Math.ceil(Math.floor( ((new Date(myData[index]._date).getTime() - new Date().getTime())/60/60/24) )/1000 )-1
            //  log((Number(formatDate(getDateObject(myData[index]._date), "hh"))*60) + Number(formatDate(getDateObject(myData[index]._date), "mm")).toString() +"--------"+(Number(formatDate(getDateObject((new Date().getTime())), "hh"))*60) + Number(formatDate(getDateObject((new Date().getTime())), "mm")).toString())
              if (   (Number(formatDate(getDateObject(myData[index]._date), "hh"))*60) + Number(formatDate(getDateObject(myData[index]._date), "mm"))  &lt;  (Number(formatDate(getDateObject((new Date().getTime())), "hh"))*60) + Number(formatDate(getDateObject((new Date().getTime())), "mm")) ) 
                     {if(!myData[index]._date.includes("&amp;#8594;")) val4=Math.ceil(Math.floor( ((new Date(myData[index]._date).getTime() - new Date().getTime())/60/60/24) )/1000 );
                  //   log(myData[index].date.replace(/.*? (01\:00\-00\:00)/,"$1"))
                    // if(myData[index].date.replace(/.*? (01\:00\-00\:00)/,"$1")=="01:00-00:00") val1=ganzTaegigAusdruck;
                    if(myData[index].date.includes("01:00-00:00")) val1=ganzTaegigAusdruck
                     }
              }
 
        val3=formatDate(getDateObject(myData[index]._date), "W")
       if (myData[index]._rule==" rrule " &amp;&amp; wiederholAnzeige) val0=val0+" &amp;#8595;"
 
        if (val4.toString()=="0") val4=ersetze0MitWert;
        if (val4.toString()=="1") val4=ersetze1MitWert;
 
       
         let istSonderfarbe=false;
         let val01=val0; let val02=val2; let val03=val3; let val04=val4; let val11=val1;
         if (mySonderFarbeArr.length&gt;0 ){ for(let myind in mySonderFarbeArr){if(val0.includes(mySonderFarbeArr[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }   
         if (mySonderFarbeArrRiko.length&gt;0 ){ for(let myind in mySonderFarbeArrRiko){if(val0.includes(mySonderFarbeArrRiko[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolRiko+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }   
        if (mySonderFarbeArrTUEV.length&gt;0 ){ for(let myind in mySonderFarbeArrTUEV){if(val0.includes(mySonderFarbeArrTUEV[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolTUEV+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }                                          
        if (mySonderFarbeArrErnte.length&gt;0 ){ for(let myind in mySonderFarbeArrErnte){if(val0.includes(mySonderFarbeArrErnte[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolErnte+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }      
        if (mySonderFarbeArrArzt.length&gt;0 ){ for(let myind in mySonderFarbeArrArzt){if(val0.includes(mySonderFarbeArrArzt[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolArzt+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }      
        if (mySonderFarbeArrUrlaub.length&gt;0 ){ for(let myind in mySonderFarbeArrUrlaub){if(val0.includes(mySonderFarbeArrUrlaub[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolUrlaub+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }      
       if (mySonderFarbeArrConny.length&gt;0 ){ for(let myind in mySonderFarbeArrConny){if(val0.includes(mySonderFarbeArrConny[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolConny+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }                                             
       if (mySonderFarbeArrRebecca.length&gt;0 ){ for(let myind in mySonderFarbeArrRebecca){if(val0.includes(mySonderFarbeArrRebecca[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolRebecca+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }      
       if (mySonderFarbeArrGeburtstag.length&gt;0 ){ for(let myind in mySonderFarbeArrGeburtstag){if(val0.includes(mySonderFarbeArrGeburtstag[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolGeburtstag+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }                                            
      if (mySonderFarbeArrWichtig.length&gt;0 ){ for(let myind in mySonderFarbeArrWichtig){if(val0.includes(mySonderFarbeArrWichtig[myind]) ){
                                                            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                                                            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+"&lt;/font&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";  // val0="&lt;font color=\""+mySonderFarbe +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbolWichtig+"&lt;/font&gt;"+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
                                                            istSonderfarbe=true;
                                                            }}
                                       }      
           //istSonderfarbe=false                           
           //console.log(myData[index]._calColor); -&gt; Farbcode
        if(val3help &amp;&amp; sortedByInstanz ){
            val3="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
            val4="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
            val1="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
            val2="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";
           !istSonderfarbe ?  val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val0+"&lt;\/"+styleEinTagHTML+"&gt;" : val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
             } 
        if (val3help &amp;&amp; !sortedByInstanz ){
                 val3="&lt;font color=\""+myData[0]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val03+"&lt;\/"+styleEinTagHTML+"&gt;";
                 val4="&lt;font color=\""+myData[0]._calColor  +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val04+"&lt;\/"+styleEinTagHTML+"&gt;";
                 val1="&lt;font color=\""+myData[0]._calColor  +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val11+"&lt;\/"+styleEinTagHTML+"&gt;";
                 val2="&lt;font color=\""+myData[0]._calColor  +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val02+"&lt;\/"+styleEinTagHTML+"&gt;";
            !istSonderfarbe ?  val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+val0+"&lt;\/"+styleEinTagHTML+"&gt;" : val0="&lt;font color=\""+myData[index]._calColor +"\"&gt;&lt;"+styleEinTagHTML+"&gt;"+mySonderSymbol+val01+"&lt;\/"+styleEinTagHTML+"&gt;"
             } 
 
     
 
       oldID= myData[index].myIDID
 
       matDes(val3help,myData[index]._calColor);
 
  
   
     tabelleBind(); //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------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------------------
 
      tabelleFinish(); // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
                   setState(dpTerminRunning,inDpRunning2)
                   setState(dpTerminNext,inDpNext)
                   setState(dpTerminNextGanzerTag,inDpGanzTag);
} // function ende
 
//MAIN:
 
schedule(mySchedule3,  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+"&lt;tr bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;"; break; } else
                                  {  htmlOut=htmlOut+"&lt;tr bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;"; break; } 
       
        case 2: if(counter%4==0){
                   if(counter%2==0)  {htmlOut = htmlOut+"&lt;tr bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"  align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;"; } 
                              else {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;";} break;
               }else{
                              if(counter%2==0)  {htmlOut = htmlOut+"&lt;tr bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;"; } 
                              else {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;";} break;}
                                   
        case 3:  if(counter%2==0)   {
                 if(counter%3==0 )  {htmlOut = htmlOut+"&lt;tr bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;"; } 
                              else { if(counter%3==1 )  { htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;";} 
                                               else    {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;";}
                                         } break;} else{
                 if(counter%3==0 )  {htmlOut = htmlOut+"&lt;tr bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;"; } 
                              else { if(counter%3==1 )  { htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;";} 
                                               else    {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;";}
                                         } break; }
 
        case 4:  if(counter%8==0)   {
                 if(counter%4==0)  {htmlOut = htmlOut+"&lt;tr bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val4+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val3+"&lt;/td&gt;"; } 
                                  else {if(counter%4==1 )  { htmlOut = htmlOut+"&lt;td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;";} 
                                               else    {if(counter%4==3)  { htmlOut= htmlOut+"&lt;td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;";} 
                                                                 else    {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;";}}
                                         } break;} else{
                 if(counter%4==0)  {htmlOut = htmlOut+"&lt;tr bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val3+"&lt;/td&gt;"; } 
                                  else {if(counter%4==1 )  { htmlOut = htmlOut+"&lt;td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;";} 
                                               else    {if(counter%4==3)  { htmlOut= htmlOut+"&lt;td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val3+"&lt;/td&gt;&lt;td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val4+"&lt;/td&gt;&lt;/tr&gt;";} 
                                                                 else    {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" &gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;td align="+Feld4lAlign+"&gt;"+val3+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+"&gt;"+val4+"&lt;/td&gt;";}}
                                         } break; }
 
     } //switch ende
 
 
 
}
 
function tabelleFinish() {
 
      // tabelle fertigstellen
switch (mehrfachTabelle) {  
       case 1:    break;
 
       case 2:    
                  if(counter%2==0)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, '&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;');
                
                  break;
 
       case 3:   if(counter%3==2)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;/tr&gt;");
                 if(counter%3==1)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");        
                 if(counter%3==0)      htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td  style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");
               
                  break;
       case 4:   if(counter%4==3)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;/tr&gt;");
                 if(counter%4==2)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");
                 if(counter%4==1)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");    
                 if(counter%4==0)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");      
                 break; }
     
                    var htmlUeber=    "&lt;p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlUeberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\"&gt;"+htmlFeldUeber+"&amp;ensp;&amp;ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"&lt;/p&gt;"; 
       var htmlUnter= "&lt;div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" &gt;"+htmlFeldUeber+"&amp;ensp;&amp;ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"&lt;/div&gt;"
        
        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+"&lt;/table&gt;" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;";
            if (htmlUberschrift) 
                { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter ;
 
              } else { 
               zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter;
 
                 }
 
// log("bin raus aus tabelleBind");
           if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
 
 var htmlUnter= "&lt;div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" &gt;"+htmlFeldUeber+"&amp;ensp;&amp;ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"&lt;/div&gt;"
 
 if (!htmlSignature) htmlUnter="";
var htmlEnd="&lt;/table&gt;"+htmlUnter+"&lt;/div&gt;&lt;/body&gt;";
 //mit oder ohne überschrift - zentriert oder links
htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd;
 //log(htmlOut);
 
if (braucheMaterialDesignWidget) {
     
       setState(dpMaterialWidget,JSON.stringify(myJsonWidget2)); 
       myJsonWidget2=[];
}
if (braucheMaterialDesignWidgetTable) {
  
  setState(dpMaterialWidgetTable,JSON.stringify(myJsonWidget)); 
     myJsonWidget=[];
}
}
 
 
 
 
function makeJsonWidget(vax1,vax2,vax3,vax4,vax44,vax5) {
//log(vax5+vax3)

   if ( braucheMaterialDesignWidgetTable) {
  myJsonWidget.push({
    /*  Originaleinträge  abgeändert RRO
      Event : vax1,
      Zeit : vax2,
      Datum : vax3,
      W_tag : vax4, 
      Tage : vax44
     */
      W_tag : vax4, 
      Datum : vax3,
      Zeit : vax2,
      Event : vax1,
      Tage : vax44
  }
 
  );}
 
//	log(myJsonWidget)
if (braucheMaterialDesignWidget) {
let mysubText = `&lt;div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;"&gt;
                &lt;div style="flex: 1;"&gt;${vax4}&lt;/div&gt;
                &lt;div style="color: black; font-size: 18px; font-family: RobotoCondensed-LightItalic; text-align: right;"&gt;${vax3}&lt;/div&gt;
                &lt;/div&gt;`
       if(vax3&lt;=1)   vax5=farbeNurEinTag               
  
     myJsonWidget2.push({
               text: vax2,
               subText: mysubText,
               statusBarColor: vax5,
               image: vax1,
               imageColor: "",
               listType: "text",
               showValueLabel: false,
               name: vax2,
               status: vax3,
               Wert : vax3,
               Hersteller : vax4
           });
}
 }
 
on({id: dpTSJson, change: "ne"}, function (obj) { 
       //log(getState(dpANLEGEN).val+"----refresh");
     
       var timeout2 = setTimeout(function () {
         
   writeHTML();
  
    }, 1500);
});
 
function matDes(val3help,color) {
    if (braucheMaterialDesignWidget || braucheMaterialDesignWidgetTable) {
            if(val3help &amp;&amp; sortedByInstanz){json5=color;}
            if (val3help &amp;&amp; !sortedByInstanz){}
           json1=val0; json2=val1; json3=val2; json4=val3;json44=val4;json5=farbeStandardBar;
            makeJsonWidget(json1,json2,json3,json4,json44,json5);
}
};
 
 
</code></pre>
]]></description><link>https://forum.iobroker.net/post/720092</link><guid isPermaLink="true">https://forum.iobroker.net/post/720092</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 10:59:09 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a> sagte in <a href="/post/720077">wie vorgehen JavaScript Update mit vielen Script Fehlern</a>:</p>
<blockquote>
<p dir="auto">Kalenderaufbereitungen-mit_vielen_Sonderfarben</p>
</blockquote>
<p dir="auto">Was steht denn da drin?</p>
]]></description><link>https://forum.iobroker.net/post/720088</link><guid isPermaLink="true">https://forum.iobroker.net/post/720088</guid><dc:creator><![CDATA[Thomas Braun]]></dc:creator><pubDate>Tue, 14 Dec 2021 10:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 10:44:09 GMT]]></title><description><![CDATA[<p dir="auto">so habe jetzt das Update JavaScript auf 5.2.13 durchgeführt, jetzt kommen die Fehler unten, wo und wie kann ich jetzt ansetzen?</p>
<p dir="auto">im Logfile auf ERROR</p>
<pre><code>javascript.0	2021-12-14 11:39:27.697	error	(4641) at Script.runInContext (vm.js:144:12)
javascript.0	2021-12-14 11:39:27.696	error	(4641) at script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:724:3
javascript.0	2021-12-14 11:39:27.696	error	(4641) at script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:552:2
javascript.0	2021-12-14 11:39:27.695	error	(4641) at writeHTML (script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:233:24)
javascript.0	2021-12-14 11:39:27.694	error	(4641) at JSON.parse (&lt;anonymous&gt;)
javascript.0	2021-12-14 11:39:27.694	error	(4641) script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben: SyntaxError: Unexpected token o in JSON at position 1
javascript.0	2021-12-14 11:39:26.981	error	(4641) at Script.runInContext (vm.js:144:12)
javascript.0	2021-12-14 11:39:26.980	error	(4641) at script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:724:3
javascript.0	2021-12-14 11:39:26.980	error	(4641) at script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:552:2
javascript.0	2021-12-14 11:39:26.979	error	(4641) at writeHTML (script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:233:24)
javascript.0	2021-12-14 11:39:26.978	error	(4641) at JSON.parse (&lt;anonymous&gt;)
javascript.0	2021-12-14 11:39:26.969	error	(4641) script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben: SyntaxError: Unexpected token o in JSON at position 1
</code></pre>
<p dir="auto">im Scriptfenster nach neustarten des Scripts</p>
<pre><code>11:40:48.986	error	javascript.0 (4641) script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben: SyntaxError: Unexpected token o in JSON at position 1
11:40:48.988	error	javascript.0 (4641) at writeHTML (script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:233:24)
11:40:48.989	error	javascript.0 (4641) at script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:552:2
11:40:48.989	error	javascript.0 (4641) at script.js.VIS.kalender.Kalenderaufbereitungen-mit_vielen_Sonderfarben:724:3
</code></pre>
]]></description><link>https://forum.iobroker.net/post/720077</link><guid isPermaLink="true">https://forum.iobroker.net/post/720077</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Tue, 14 Dec 2021 10:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Mon, 13 Dec 2021 16:54:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/thomas-braun" aria-label="Profile: thomas-braun">@<bdi>thomas-braun</bdi></a> okay, dann werde ich jetzt erstmal sichern und dann langsam loslegen. Danke</p>
]]></description><link>https://forum.iobroker.net/post/719769</link><guid isPermaLink="true">https://forum.iobroker.net/post/719769</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Mon, 13 Dec 2021 16:54:15 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Mon, 13 Dec 2021 16:53:22 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a><br />
Auf debug wirst du wohl erschlagen mit Meldungen. Also zuerst mal auf Error setzen und die dann erledigen und dann das loglevel wieder auf Info drehen.</p>
]]></description><link>https://forum.iobroker.net/post/719766</link><guid isPermaLink="true">https://forum.iobroker.net/post/719766</guid><dc:creator><![CDATA[Thomas Braun]]></dc:creator><pubDate>Mon, 13 Dec 2021 16:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Mon, 13 Dec 2021 16:51:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/thomas-braun" aria-label="Profile: thomas-braun">@<bdi>thomas-braun</bdi></a> okay, den Adapter auf Debug stellen oder so lassen, was ist besser?<br />
Im Scriptfenster waren auf jeden Fall alle Meldungen rot</p>
]]></description><link>https://forum.iobroker.net/post/719762</link><guid isPermaLink="true">https://forum.iobroker.net/post/719762</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Mon, 13 Dec 2021 16:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Mon, 13 Dec 2021 16:50:27 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a></p>
<p dir="auto">Ich würde den Adapter wieder hochziehen und dann die Dinge peu a peu angehen. Vermutlich sind das auch überwiegend keine Fehler sondern nur Hinweise.</p>
]]></description><link>https://forum.iobroker.net/post/719759</link><guid isPermaLink="true">https://forum.iobroker.net/post/719759</guid><dc:creator><![CDATA[Thomas Braun]]></dc:creator><pubDate>Mon, 13 Dec 2021 16:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Mon, 13 Dec 2021 16:49:17 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/thomas-braun" aria-label="Profile: thomas-braun">@<bdi>thomas-braun</bdi></a> meist gin es um falsche Datentypen o wie ich das gesehen hatte. Ich habe bei der Menge der Logeinträge alles gelöscht (über die Oberfläche, auf dem Server müssten sie noch sein) und würde jetzt quasi neu starten mit dem update und dann gezielt die Dinge raussuchen.<br />
Ja du hast Recht, es sah aus als wenn alle das gleiche Problem hatten.</p>
]]></description><link>https://forum.iobroker.net/post/719757</link><guid isPermaLink="true">https://forum.iobroker.net/post/719757</guid><dc:creator><![CDATA[Rosi8818]]></dc:creator><pubDate>Mon, 13 Dec 2021 16:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to gelöst: wie vorgehen JavaScript Update viele Script Fehler on Tue, 14 Dec 2021 11:12:51 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rosi8818" aria-label="Profile: rosi8818">@<bdi>rosi8818</bdi></a></p>
<p dir="auto">Welche Fehler waren es denn?<br />
Ich vermute, dass die alle aus einer ähnlichen Ecke kommen.</p>
]]></description><link>https://forum.iobroker.net/post/719755</link><guid isPermaLink="true">https://forum.iobroker.net/post/719755</guid><dc:creator><![CDATA[Thomas Braun]]></dc:creator><pubDate>Tue, 14 Dec 2021 11:12:51 GMT</pubDate></item></channel></rss>