Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. gelöst: wie vorgehen JavaScript Update viele Script Fehler

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    598

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.0k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    877

gelöst: wie vorgehen JavaScript Update viele Script Fehler

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
16 Beiträge 3 Kommentatoren 951 Aufrufe 2 Beobachtet
  • Ä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.
  • Thomas BraunT Thomas Braun

    @rosi8818

    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.

    R Offline
    R Offline
    Rosi8818
    schrieb am zuletzt editiert von
    #5

    @thomas-braun okay, den Adapter auf Debug stellen oder so lassen, was ist besser?
    Im Scriptfenster waren auf jeden Fall alle Meldungen rot

    Thomas BraunT 1 Antwort Letzte Antwort
    0
    • R Rosi8818

      @thomas-braun okay, den Adapter auf Debug stellen oder so lassen, was ist besser?
      Im Scriptfenster waren auf jeden Fall alle Meldungen rot

      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      schrieb am zuletzt editiert von
      #6

      @rosi8818
      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.

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      R 1 Antwort Letzte Antwort
      0
      • Thomas BraunT Thomas Braun

        @rosi8818
        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.

        R Offline
        R Offline
        Rosi8818
        schrieb am zuletzt editiert von
        #7

        @thomas-braun okay, dann werde ich jetzt erstmal sichern und dann langsam loslegen. Danke

        R 1 Antwort Letzte Antwort
        0
        • R Rosi8818

          @thomas-braun okay, dann werde ich jetzt erstmal sichern und dann langsam loslegen. Danke

          R Offline
          R Offline
          Rosi8818
          schrieb am zuletzt editiert von
          #8

          so habe jetzt das Update JavaScript auf 5.2.13 durchgeführt, jetzt kommen die Fehler unten, wo und wie kann ich jetzt ansetzen?

          im Logfile auf ERROR

          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 (<anonymous>)
          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 (<anonymous>)
          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
          

          im Scriptfenster nach neustarten des Scripts

          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
          
          Thomas BraunT 1 Antwort Letzte Antwort
          0
          • R Rosi8818

            so habe jetzt das Update JavaScript auf 5.2.13 durchgeführt, jetzt kommen die Fehler unten, wo und wie kann ich jetzt ansetzen?

            im Logfile auf ERROR

            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 (<anonymous>)
            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 (<anonymous>)
            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
            

            im Scriptfenster nach neustarten des Scripts

            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
            
            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            schrieb am zuletzt editiert von
            #9

            @rosi8818 sagte in wie vorgehen JavaScript Update mit vielen Script Fehlern:

            Kalenderaufbereitungen-mit_vielen_Sonderfarben

            Was steht denn da drin?

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            R 1 Antwort Letzte Antwort
            1
            • Thomas BraunT Thomas Braun

              @rosi8818 sagte in wie vorgehen JavaScript Update mit vielen Script Fehlern:

              Kalenderaufbereitungen-mit_vielen_Sonderfarben

              Was steht denn da drin?

              R Offline
              R Offline
              Rosi8818
              schrieb am zuletzt editiert von
              #10

              @thomas-braun hier das Script (ich hoffe sind keine Daten drin die keiner sehen soll) ;)

               /*@liv-in-sky 2020  29.1.2021 12:18
                genutzt für Material-Design -> let weiter unten
              
               *** HauptScript löst Kalenderaufbereitungen ab ***
              
               für das Widgets der wichtigsten Ereignisse in der VIS
               mit Blacklist und Sonderfarbe
              
               --> 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="&RightArrowLeftArrow;";             // "ganztägig" oder "den ganzen Tag" oder &laquo; &RightArrowLeftArrow;
               let bisVariable="&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="&#9055;"+"&ensp;";        //  🔸 🚘 ⚪  ⚫ ⭕  🔴 🔵 🟠 ⏱ 💀 👍 👎 📑 💲 👀   mehr: https://emojiterra.com/de/ oder https://unicode-table.com/de/html-entities/
                                                             //  (⌾ &#9022;) (🔹 &#128313;) (🍏 &#127823;) 💰 💸 (❗ &#10071;) (⬩ &#11049;) (● &#9679;)  (⍟ &#9734;->Stern) 
                                                             //  (⌾ &#9055;) (⧇ &#10695;) (🎂 &#127874;) (🟡 &#128993;) (🔵 &#128309;) (🟢 &#128994;) (🔴 &#128308;)
                                                             //  (ℜ &#8476;) (ℛ &#8475;)
              let mySonderFarbeArrRiko=["Riko:"];
              let mySonderSymbolRiko="&#9022;"+"&ensp;"; 
              
              let mySonderFarbeArrTUEV=["TÜV:","Steuer"];
              let mySonderSymbolTUEV="⬩"+"&ensp;"; 
              
              let mySonderFarbeArrErnte=["Ernte:"];
              let mySonderSymbolErnte="&#127823;"+"&ensp;"; 
              
              let mySonderFarbeArrArzt=["Arzt:"];
              let mySonderSymbolArzt="&#9734;"+"&ensp;"; 
              
              let mySonderFarbeArrUrlaub=["Urlaub:"];
              let mySonderSymbolUrlaub="&#128313;"+"&ensp;"; 
              
              let mySonderFarbeArrConny=["Conny:"];
              let mySonderSymbolConny="&#128309;"+"&ensp;"; 
              
              let mySonderFarbeArrRebecca=["Rebecca:"];
              let mySonderSymbolRebecca="&#128993;"+"&ensp;"; 
              
              let mySonderFarbeArrGeburtstag=["Geburtstag von"];
              let mySonderSymbolGeburtstag="&#127874;"+"&ensp;"; 
              
              let mySonderFarbeArrWichtig=["WICHTIG:"];
              let mySonderSymbolWichtig="&#10071;"+"&ensp;"; 
              
              // let mySonderFarbeArrUrlaub=["Urlaub:"];
              // let mySonderSymbolUrlaub="&#9734;"+"&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='<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+"}"+
                                 " </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=\""+UeberSchriftHoehe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
              const htmlTabUeber3="</tr>";
               
               
              //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  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>";
              var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td  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>";
                                     //------------------------------------------------------
               
              //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<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<myDpInput.length;b++) { myDpInput[b].myIDID=dpTSJsonCalName[i];}
                
                 myData=myData.concat(myDpInput)          //myData=myData.concat(getState(dpTSJson[i]).val)
                
              }
               
              
              
              //WHITELIST FILTER
               
              if (myWhiteListArray.length>0){
              for(let myind in myWhiteListArray) { for (let rr=0;rr<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>0){let oldStuff=""
              for (let rr=0;rr<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() > beta.event.toUpperCase())
                              return 1;
                           if (beta.event.toUpperCase() > alpha.event.toUpperCase())
                              return -11;
                           return 0;
                          });      
              }                         
              
              // NEXT TERMIN
                 for (let x=0;x<myData.length;x++ ) {
                         if (!myData[x].date.includes("&#8594;") && myData[x].date.includes(":") && !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<myData.length;x++ ) {
                         if ((!myData[x].date.includes("&#8594;") && !myData[x].date.includes(":") &&  formatDate(getDateObject(myData[x]._date), "DD.MM") != formatDate(getDateObject((new Date().getTime())), "DD.MM")) || 
                                 (!myData[x].date.includes("&#8594;") && myData[x].date.includes("01:00") &&  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<myData.length;x++ ) {
                         if (myData[x].date.includes("&#8594;")   && myData[x].date.includes(":") && !myData[x].date.includes("00:00") )
               
                             {   helperTerminNext=myData[x].date.replace("&#8594;","")
                             helperTerminNext=helperTerminNext.replace(/.+? (.?)/,"bis: $1")
                             inDpRunning.push(helperTerminNext+" "+myData[x].event)
                             
                              } }
                   inDpRunning.length>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 && sortedByInstanz) {
               
                  counter++;
                  val0="<font color=\""+myData[index]._calColor +"\"><b>"+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 <=wievielTage){
                      counter++
                     val0=myData[index].event
                     if (myFilterRegexEvent5.length==myFilterRegexEvent6.length){
                     for(let z=0;z<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(".") && nurAnfangsZeit ? val1=ganzTaegigAusdruck : val1=val1             //&& !nurAnfangsZeit
                     !val2help.includes(":") && !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("&#8594;") && myData[index].rule!=" " && myData[index].date.includes(":") ) {val1=ganzTaegigAusdruck;                                 val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")} 
                     if ( val2.includes("&#8594;") && !myData[index]._allDay )                                      {val1=ganzTaegigAusdruck;                                 val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")}       
                      if ( myData[index].date.includes("&#8594;") && myData[index].rule!=" " && !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"))  <  (Number(formatDate(getDateObject((new Date().getTime())), "hh"))*60) + Number(formatDate(getDateObject((new Date().getTime())), "mm")) ) 
                                   {if(!myData[index]._date.includes("&#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 " && wiederholAnzeige) val0=val0+" &#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>0 ){ for(let myind in mySonderFarbeArr){if(val0.includes(mySonderFarbeArr[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbol+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }   
                       if (mySonderFarbeArrRiko.length>0 ){ for(let myind in mySonderFarbeArrRiko){if(val0.includes(mySonderFarbeArrRiko[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolRiko+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }   
                      if (mySonderFarbeArrTUEV.length>0 ){ for(let myind in mySonderFarbeArrTUEV){if(val0.includes(mySonderFarbeArrTUEV[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolTUEV+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }                                          
                      if (mySonderFarbeArrErnte.length>0 ){ for(let myind in mySonderFarbeArrErnte){if(val0.includes(mySonderFarbeArrErnte[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolErnte+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }      
                      if (mySonderFarbeArrArzt.length>0 ){ for(let myind in mySonderFarbeArrArzt){if(val0.includes(mySonderFarbeArrArzt[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolArzt+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }      
                      if (mySonderFarbeArrUrlaub.length>0 ){ for(let myind in mySonderFarbeArrUrlaub){if(val0.includes(mySonderFarbeArrUrlaub[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolUrlaub+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }      
                     if (mySonderFarbeArrConny.length>0 ){ for(let myind in mySonderFarbeArrConny){if(val0.includes(mySonderFarbeArrConny[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolConny+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }                                             
                     if (mySonderFarbeArrRebecca.length>0 ){ for(let myind in mySonderFarbeArrRebecca){if(val0.includes(mySonderFarbeArrRebecca[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolRebecca+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }      
                     if (mySonderFarbeArrGeburtstag.length>0 ){ for(let myind in mySonderFarbeArrGeburtstag){if(val0.includes(mySonderFarbeArrGeburtstag[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolGeburtstag+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }                                            
                    if (mySonderFarbeArrWichtig.length>0 ){ for(let myind in mySonderFarbeArrWichtig){if(val0.includes(mySonderFarbeArrWichtig[myind]) ){
                                                                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                          val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolWichtig+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                          istSonderfarbe=true;
                                                                          }}
                                                     }      
                         //istSonderfarbe=false                           
                         //console.log(myData[index]._calColor); -> Farbcode
                      if(val3help && sortedByInstanz ){
                          val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val03+"<\/"+styleEinTagHTML+">";
                          val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val04+"<\/"+styleEinTagHTML+">";
                          val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val11+"<\/"+styleEinTagHTML+">";
                          val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val02+"<\/"+styleEinTagHTML+">";
                         !istSonderfarbe ?  val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val0+"<\/"+styleEinTagHTML+">" : val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                           } 
                      if (val3help && !sortedByInstanz ){
                               val3="<font color=\""+myData[0]._calColor +"\"><"+styleEinTagHTML+">"+val03+"<\/"+styleEinTagHTML+">";
                               val4="<font color=\""+myData[0]._calColor  +"\"><"+styleEinTagHTML+">"+val04+"<\/"+styleEinTagHTML+">";
                               val1="<font color=\""+myData[0]._calColor  +"\"><"+styleEinTagHTML+">"+val11+"<\/"+styleEinTagHTML+">";
                               val2="<font color=\""+myData[0]._calColor  +"\"><"+styleEinTagHTML+">"+val02+"<\/"+styleEinTagHTML+">";
                          !istSonderfarbe ?  val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val0+"<\/"+styleEinTagHTML+">" : val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                           } 
               
                   
               
                     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+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>"; break; } else
                                                {  htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>"; break; } 
                     
                      case 2: if(counter%4==0){
                                 if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"  align="+Feld5lAlign+">"+val4+"</td>"; } 
                                            else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>";} break;
                             }else{
                                            if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>"; } 
                                            else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val4+"</td></tr>";} break;}
                                                 
                      case 3:  if(counter%2==0)   {
                               if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td  align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>"; } 
                                            else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                             else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>";}
                                                       } break;} else{
                               if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>"; } 
                                            else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                             else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>";}
                                                       } break; }
               
                      case 4:  if(counter%8==0)   {
                               if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val4+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val3+"</td>"; } 
                                                else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                             else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val4+"</td></tr>";} 
                                                                               else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>";}}
                                                       } break;} else{
                               if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val3+"</td>"; } 
                                                else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                             else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val4+"</td></tr>";} 
                                                                               else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</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></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></tr>");        
                               if(counter%3==0)      htmlOut = htmlOut.replace(/<\/td>$/, "</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></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></tr>");
                               if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</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></tr>");    
                               if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</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 style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&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: "+htmlUeberFontGroesse+"; 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 : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter ;
               
                            } else { 
                             zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter;
               
                               }
               
              // 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);
               
              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 = `<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                              <div style="flex: 1;">${vax4}</div>
                              <div style="color: black; font-size: 18px; font-family: RobotoCondensed-LightItalic; text-align: right;">${vax3}</div>
                              </div>`
                     if(vax3<=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 && sortedByInstanz){json5=color;}
                          if (val3help && !sortedByInstanz){}
                         json1=val0; json2=val1; json3=val2; json4=val3;json44=val4;json5=farbeStandardBar;
                          makeJsonWidget(json1,json2,json3,json4,json44,json5);
              }
              };
               
               
              
              liv-in-skyL 1 Antwort Letzte Antwort
              0
              • R Rosi8818

                @thomas-braun hier das Script (ich hoffe sind keine Daten drin die keiner sehen soll) ;)

                 /*@liv-in-sky 2020  29.1.2021 12:18
                  genutzt für Material-Design -> let weiter unten
                
                 *** HauptScript löst Kalenderaufbereitungen ab ***
                
                 für das Widgets der wichtigsten Ereignisse in der VIS
                 mit Blacklist und Sonderfarbe
                
                 --> 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="&RightArrowLeftArrow;";             // "ganztägig" oder "den ganzen Tag" oder &laquo; &RightArrowLeftArrow;
                 let bisVariable="&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="&#9055;"+"&ensp;";        //  🔸 🚘 ⚪  ⚫ ⭕  🔴 🔵 🟠 ⏱ 💀 👍 👎 📑 💲 👀   mehr: https://emojiterra.com/de/ oder https://unicode-table.com/de/html-entities/
                                                               //  (⌾ &#9022;) (🔹 &#128313;) (🍏 &#127823;) 💰 💸 (❗ &#10071;) (⬩ &#11049;) (● &#9679;)  (⍟ &#9734;->Stern) 
                                                               //  (⌾ &#9055;) (⧇ &#10695;) (🎂 &#127874;) (🟡 &#128993;) (🔵 &#128309;) (🟢 &#128994;) (🔴 &#128308;)
                                                               //  (ℜ &#8476;) (ℛ &#8475;)
                let mySonderFarbeArrRiko=["Riko:"];
                let mySonderSymbolRiko="&#9022;"+"&ensp;"; 
                
                let mySonderFarbeArrTUEV=["TÜV:","Steuer"];
                let mySonderSymbolTUEV="⬩"+"&ensp;"; 
                
                let mySonderFarbeArrErnte=["Ernte:"];
                let mySonderSymbolErnte="&#127823;"+"&ensp;"; 
                
                let mySonderFarbeArrArzt=["Arzt:"];
                let mySonderSymbolArzt="&#9734;"+"&ensp;"; 
                
                let mySonderFarbeArrUrlaub=["Urlaub:"];
                let mySonderSymbolUrlaub="&#128313;"+"&ensp;"; 
                
                let mySonderFarbeArrConny=["Conny:"];
                let mySonderSymbolConny="&#128309;"+"&ensp;"; 
                
                let mySonderFarbeArrRebecca=["Rebecca:"];
                let mySonderSymbolRebecca="&#128993;"+"&ensp;"; 
                
                let mySonderFarbeArrGeburtstag=["Geburtstag von"];
                let mySonderSymbolGeburtstag="&#127874;"+"&ensp;"; 
                
                let mySonderFarbeArrWichtig=["WICHTIG:"];
                let mySonderSymbolWichtig="&#10071;"+"&ensp;"; 
                
                // let mySonderFarbeArrUrlaub=["Urlaub:"];
                // let mySonderSymbolUrlaub="&#9734;"+"&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='<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+"}"+
                                   " </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=\""+UeberSchriftHoehe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
                const htmlTabUeber3="</tr>";
                 
                 
                //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  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>";
                var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td  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>";
                                       //------------------------------------------------------
                 
                //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<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<myDpInput.length;b++) { myDpInput[b].myIDID=dpTSJsonCalName[i];}
                  
                   myData=myData.concat(myDpInput)          //myData=myData.concat(getState(dpTSJson[i]).val)
                  
                }
                 
                
                
                //WHITELIST FILTER
                 
                if (myWhiteListArray.length>0){
                for(let myind in myWhiteListArray) { for (let rr=0;rr<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>0){let oldStuff=""
                for (let rr=0;rr<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() > beta.event.toUpperCase())
                                return 1;
                             if (beta.event.toUpperCase() > alpha.event.toUpperCase())
                                return -11;
                             return 0;
                            });      
                }                         
                
                // NEXT TERMIN
                   for (let x=0;x<myData.length;x++ ) {
                           if (!myData[x].date.includes("&#8594;") && myData[x].date.includes(":") && !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<myData.length;x++ ) {
                           if ((!myData[x].date.includes("&#8594;") && !myData[x].date.includes(":") &&  formatDate(getDateObject(myData[x]._date), "DD.MM") != formatDate(getDateObject((new Date().getTime())), "DD.MM")) || 
                                   (!myData[x].date.includes("&#8594;") && myData[x].date.includes("01:00") &&  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<myData.length;x++ ) {
                           if (myData[x].date.includes("&#8594;")   && myData[x].date.includes(":") && !myData[x].date.includes("00:00") )
                 
                               {   helperTerminNext=myData[x].date.replace("&#8594;","")
                               helperTerminNext=helperTerminNext.replace(/.+? (.?)/,"bis: $1")
                               inDpRunning.push(helperTerminNext+" "+myData[x].event)
                               
                                } }
                     inDpRunning.length>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 && sortedByInstanz) {
                 
                    counter++;
                    val0="<font color=\""+myData[index]._calColor +"\"><b>"+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 <=wievielTage){
                        counter++
                       val0=myData[index].event
                       if (myFilterRegexEvent5.length==myFilterRegexEvent6.length){
                       for(let z=0;z<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(".") && nurAnfangsZeit ? val1=ganzTaegigAusdruck : val1=val1             //&& !nurAnfangsZeit
                       !val2help.includes(":") && !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("&#8594;") && myData[index].rule!=" " && myData[index].date.includes(":") ) {val1=ganzTaegigAusdruck;                                 val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")} 
                       if ( val2.includes("&#8594;") && !myData[index]._allDay )                                      {val1=ganzTaegigAusdruck;                                 val2=formatDate(getDateObject(myData[index]._date), "DD.MM.YYYY")}       
                        if ( myData[index].date.includes("&#8594;") && myData[index].rule!=" " && !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"))  <  (Number(formatDate(getDateObject((new Date().getTime())), "hh"))*60) + Number(formatDate(getDateObject((new Date().getTime())), "mm")) ) 
                                     {if(!myData[index]._date.includes("&#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 " && wiederholAnzeige) val0=val0+" &#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>0 ){ for(let myind in mySonderFarbeArr){if(val0.includes(mySonderFarbeArr[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbol+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }   
                         if (mySonderFarbeArrRiko.length>0 ){ for(let myind in mySonderFarbeArrRiko){if(val0.includes(mySonderFarbeArrRiko[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolRiko+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }   
                        if (mySonderFarbeArrTUEV.length>0 ){ for(let myind in mySonderFarbeArrTUEV){if(val0.includes(mySonderFarbeArrTUEV[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolTUEV+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }                                          
                        if (mySonderFarbeArrErnte.length>0 ){ for(let myind in mySonderFarbeArrErnte){if(val0.includes(mySonderFarbeArrErnte[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolErnte+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }      
                        if (mySonderFarbeArrArzt.length>0 ){ for(let myind in mySonderFarbeArrArzt){if(val0.includes(mySonderFarbeArrArzt[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolArzt+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }      
                        if (mySonderFarbeArrUrlaub.length>0 ){ for(let myind in mySonderFarbeArrUrlaub){if(val0.includes(mySonderFarbeArrUrlaub[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolUrlaub+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }      
                       if (mySonderFarbeArrConny.length>0 ){ for(let myind in mySonderFarbeArrConny){if(val0.includes(mySonderFarbeArrConny[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolConny+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }                                             
                       if (mySonderFarbeArrRebecca.length>0 ){ for(let myind in mySonderFarbeArrRebecca){if(val0.includes(mySonderFarbeArrRebecca[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolRebecca+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }      
                       if (mySonderFarbeArrGeburtstag.length>0 ){ for(let myind in mySonderFarbeArrGeburtstag){if(val0.includes(mySonderFarbeArrGeburtstag[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolGeburtstag+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }                                            
                      if (mySonderFarbeArrWichtig.length>0 ){ for(let myind in mySonderFarbeArrWichtig){if(val0.includes(mySonderFarbeArrWichtig[myind]) ){
                                                                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val03+"<\/"+styleEinTagHTML+">";
                                                                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val04+"<\/"+styleEinTagHTML+">";
                                                                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val11+"<\/"+styleEinTagHTML+">";
                                                                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+"</font>"+val02+"<\/"+styleEinTagHTML+">";  // val0="<font color=\""+mySonderFarbe +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                                                                            val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbolWichtig+"</font>"+val01+"<\/"+styleEinTagHTML+">"
                                                                            istSonderfarbe=true;
                                                                            }}
                                                       }      
                           //istSonderfarbe=false                           
                           //console.log(myData[index]._calColor); -> Farbcode
                        if(val3help && sortedByInstanz ){
                            val3="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val03+"<\/"+styleEinTagHTML+">";
                            val4="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val04+"<\/"+styleEinTagHTML+">";
                            val1="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val11+"<\/"+styleEinTagHTML+">";
                            val2="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val02+"<\/"+styleEinTagHTML+">";
                           !istSonderfarbe ?  val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val0+"<\/"+styleEinTagHTML+">" : val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                             } 
                        if (val3help && !sortedByInstanz ){
                                 val3="<font color=\""+myData[0]._calColor +"\"><"+styleEinTagHTML+">"+val03+"<\/"+styleEinTagHTML+">";
                                 val4="<font color=\""+myData[0]._calColor  +"\"><"+styleEinTagHTML+">"+val04+"<\/"+styleEinTagHTML+">";
                                 val1="<font color=\""+myData[0]._calColor  +"\"><"+styleEinTagHTML+">"+val11+"<\/"+styleEinTagHTML+">";
                                 val2="<font color=\""+myData[0]._calColor  +"\"><"+styleEinTagHTML+">"+val02+"<\/"+styleEinTagHTML+">";
                            !istSonderfarbe ?  val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+val0+"<\/"+styleEinTagHTML+">" : val0="<font color=\""+myData[index]._calColor +"\"><"+styleEinTagHTML+">"+mySonderSymbol+val01+"<\/"+styleEinTagHTML+">"
                             } 
                 
                     
                 
                       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+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>"; break; } else
                                                  {  htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>"; break; } 
                       
                        case 2: if(counter%4==0){
                                   if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"  align="+Feld5lAlign+">"+val4+"</td>"; } 
                                              else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>";} break;
                               }else{
                                              if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>"; } 
                                              else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val4+"</td></tr>";} break;}
                                                   
                        case 3:  if(counter%2==0)   {
                                 if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td  align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>"; } 
                                              else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                               else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>";}
                                                         } break;} else{
                                 if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>"; } 
                                              else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                               else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td align="+Feld5lAlign+">"+val4+"</td></tr>";}
                                                         } break; }
                 
                        case 4:  if(counter%8==0)   {
                                 if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val4+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val3+"</td>"; } 
                                                  else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                               else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val4+"</td></tr>";} 
                                                                                 else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</td>";}}
                                                         } break;} else{
                                 if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val3+"</td>"; } 
                                                  else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">"+val4+"</td>";} 
                                                               else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">"+val0+"</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val1+"</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val2+"</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val3+"</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">"+val4+"</td></tr>";} 
                                                                                 else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >"+val0+"</td><td align="+Feld2lAlign+">"+val1+"</td><td align="+Feld3lAlign+">"+val2+"</td><td align="+Feld4lAlign+">"+val3+"</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld5lAlign+">"+val4+"</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></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></tr>");        
                                 if(counter%3==0)      htmlOut = htmlOut.replace(/<\/td>$/, "</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></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></tr>");
                                 if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</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></tr>");    
                                 if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</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 style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&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: "+htmlUeberFontGroesse+"; 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 : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter ;
                 
                              } else { 
                               zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter;
                 
                                 }
                 
                // 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);
                 
                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 = `<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                <div style="flex: 1;">${vax4}</div>
                                <div style="color: black; font-size: 18px; font-family: RobotoCondensed-LightItalic; text-align: right;">${vax3}</div>
                                </div>`
                       if(vax3<=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 && sortedByInstanz){json5=color;}
                            if (val3help && !sortedByInstanz){}
                           json1=val0; json2=val1; json3=val2; json4=val3;json44=val4;json5=farbeStandardBar;
                            makeJsonWidget(json1,json2,json3,json4,json44,json5);
                }
                };
                 
                 
                
                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von liv-in-sky
                #11

                @rosi8818 sagte in wie vorgehen JavaScript Update mit vielen Script Fehlern:

                zeile 233 muss so sein:

                   let myDpInput=getState(dpTSJson[i]).val
                

                Image 1.png

                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

                R 1 Antwort Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  @rosi8818 sagte in wie vorgehen JavaScript Update mit vielen Script Fehlern:

                  zeile 233 muss so sein:

                     let myDpInput=getState(dpTSJson[i]).val
                  

                  Image 1.png

                  R Offline
                  R Offline
                  Rosi8818
                  schrieb am zuletzt editiert von Rosi8818
                  #12

                  @liv-in-sky , wow so schnell... hab es eingesetzt und neu gestartet, jetzt ohne Fehler. Zu mindestens sehe ich keine mehr.
                  Gibt es einen Grund warum das mit der Version 5.1.3 noch lief und jetzt nicht mehr?
                  Ich bin nicht der Experte möchte nur ganz grob verstehen wenn man das grob erklären kann.

                  ich synce gerade mein Outlook und anschl. die Adapter, mal sehen ob er den neuen Kalendereintrag übernimmt. ich sage hier bescheid

                  liv-in-skyL 1 Antwort Letzte Antwort
                  0
                  • R Rosi8818

                    @liv-in-sky , wow so schnell... hab es eingesetzt und neu gestartet, jetzt ohne Fehler. Zu mindestens sehe ich keine mehr.
                    Gibt es einen Grund warum das mit der Version 5.1.3 noch lief und jetzt nicht mehr?
                    Ich bin nicht der Experte möchte nur ganz grob verstehen wenn man das grob erklären kann.

                    ich synce gerade mein Outlook und anschl. die Adapter, mal sehen ob er den neuen Kalendereintrag übernimmt. ich sage hier bescheid

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

                    @rosi8818

                    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

                    je nachdem, was man upgedatet hatte, mußten die daten unterschiedlich gelesen 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

                    R 1 Antwort Letzte Antwort
                    0
                    • liv-in-skyL liv-in-sky

                      @rosi8818

                      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

                      je nachdem, was man upgedatet hatte, mußten die daten unterschiedlich gelesen werden

                      R Offline
                      R Offline
                      Rosi8818
                      schrieb am zuletzt editiert von Rosi8818
                      #14

                      @liv-in-sky danke, das leuchtet ein... dann mach ich ich mal an die nächsten Problem die im Logfile stehen

                      dieses Problem ist gelöst und der Kalendereintrag schon mal in der VIS aufgetaucht. Super

                      liv-in-skyL 1 Antwort Letzte Antwort
                      0
                      • R Rosi8818

                        @liv-in-sky danke, das leuchtet ein... dann mach ich ich mal an die nächsten Problem die im Logfile stehen

                        dieses Problem ist gelöst und der Kalendereintrag schon mal in der VIS aufgetaucht. Super

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

                        @rosi8818 wenn du keine weiteren ical dp in irgendeinem script ausliest, wird dieser fehler nicht nochmal vorkommen :-)

                        viel spaß

                        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

                        R 1 Antwort Letzte Antwort
                        1
                        • liv-in-skyL liv-in-sky

                          @rosi8818 wenn du keine weiteren ical dp in irgendeinem script ausliest, wird dieser fehler nicht nochmal vorkommen :-)

                          viel spaß

                          R Offline
                          R Offline
                          Rosi8818
                          schrieb am zuletzt editiert von
                          #16

                          @liv-in-sky nein habe ich nicht, Danke nochmal...

                          1 Antwort Letzte Antwort
                          0

                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                          Registrieren Anmelden
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          553

                          Online

                          32.9k

                          Benutzer

                          83.0k

                          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