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. Visualisierung
  4. Skript für Farbanzeige

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    663

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

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

Skript für Farbanzeige

Geplant Angeheftet Gesperrt Verschoben Visualisierung
11 Beiträge 3 Kommentatoren 706 Aufrufe 1 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.
  • bahnuhrB bahnuhr

    @sit-in

    hier nochmal das aktuelle Script was bei mir läuft:

    
    // Script stammt von uhula und sputnik
    // Das Script greift auf die ical.0.html zu und ändert den Text.
    // Gespeichert wird das geänderte Script in "javascript.0.Sonstige.ical.html"
    // Geändert und erweitert in 12/2017 von bahnuhr
    
    
    var idCal = "ical.0";
    var idCalTrigger   = idCal + ".data.trigger";
    var idCalTable     = idCal + ".data.table";
    var idCalHTML      = idCal + ".data.html";
    var idCalHTMLtable = 'javascript.0.Sonstige.Ical.html';
    var logging = false;
    
    var anz_ganztags = false;   // wenn true wird bei Ganztags-Terminen als time auch "ganzer Tag" angezeigt; wenn false erfolgt gar keine Anzeige
    var anz_time = true;        // wenn true werden die Uhrzeiten angezeigt; wenn false erfolgt gar keine Anzeige
    var balken = false;         // wenn true wird Balken links angezeigt; wenn false dann erfolgt keine Anzeige
    var abstand_zwischen_Tagen = false; // wenn true wird ein Abstand zwischen den Terminen gesetzt, wenn diese nicht am gleichen Tag stattfinden
    
    function iCalToHTMLTable() {
        var html     = "<table style='font-size:0.9em;'><tbody>";
        var calTable = getState(idCalTable).val;
        var inst     = getObject("system.adapter."+idCal);
        var instopt  = inst.native;
        var calendar = {};
    
        for (var i = 0; i < calTable.length; i++) { 
            if (logging) log (calTable[i]);
            var entry = calTable[i];
            var _date = new Date(entry._date);
            var _time = "";
    
    
            // "_time und date" Variable festlegen
            if (logging) log (entry);
            if (entry.date.indexOf("&#8594") >= 0) {    // Pfeil ist enthalten
                if (entry.date.indexOf(":") >= 0) {         // Uhrzeit ist enthalten
                    _time = "bis " + (entry.date).substring(entry.date.length-5,entry.date.length);
                    entry.date = Datum_holen("tm");
                } else {
                    _time= "ganzer Tag";
                    entry.date = Datum_holen("tm");
                }
            } else {                                    // Pfeil ist nicht enthalten
                if (entry.date.indexOf(":") >= 0) {         // Uhrzeit ist enthalten
                    _time = (entry.date).substring(entry.date.length-11,entry.date.length);
                } else {
                    _time= "ganzer Tag";
                }
                entry.date = getFormattedDate(_date);
            }
    
    
            if ( entry._calName != calendar.name ) {
                calendar = {};
                for (var c = 0; c < instopt.calendars.length; c++ ) {
                    if (entry._calName == instopt.calendars[c].name ) {
                        calendar = instopt.calendars[c];
                        break;
                    }
                }
            }
    
            var _color = "color:"+calendar.color;
            if (entry._class.includes("ical_today")) _color = "color:red;";
            else if (entry._class.includes("ical_tomorrow")) _color = "color:orange";
            else if (entry._class.includes("ical_dayafter")) _color = "color:yellow";
    
            var _bgcolor = "";
            if(calendar.name == "Müll") {
                if(entry.event == "Bio Tonne") {
                    _bgcolor = "#a0e878";
                    _color="color:#a0e878";
                }
                else if(entry.event == "Restmüll Tonne") {
                    _bgcolor = "#ce6f6f"; 
                    _color="color:#ce6f6f";
                }
                else if(entry.event == "Blaue Tonne") {
                    _bgcolor = "#508fdc";
                    _color="color:#508fdc";
                }
                else if(entry.event == "Gelbe Tonne") {
                    _bgcolor = "#eee06d";
                    _color="color:#eee06d";
                }
            }
            else _bgcolor = calendar.color;
            
            if (balken === false) _bgcolor = "";
            
            if (_bgcolor !== "") html+="<tr style='background:transparent; background-image: linear-gradient("+_bgcolor+","+_bgcolor+"); background-size: 6px 90%; background-repeat: no-repeat;'>";
            else html+="<tr>";
    
    if (i>0 && (abstand_zwischen_Tagen == true)){
                if (calTable[i].date != calTable[i-1].date){
                    html+="<tr><td></td></tr>";
                    html+="<tr><td></td></tr>";
                    html+="<tr><td></td></tr>";
                    html+="<tr><td></td></tr>";    
                }
            }
    
                var abstand = "15px;";
                if (balken === false) abstand = "3px;";
                html+="<td style='font-size:1.1em; padding-left:"+abstand+_color+"'>"+entry.date+"</td>";
    
            if ((_time === "ganzer Tag" && anz_ganztags === false) || anz_time === false) {
                html+="<td style='font-size:1.1em; padding-left:5px;"+_color+"'>"+entry.event+"</td>";                      // nur event anzeigen
            } else {
                html+="<td style='font-size:1.1em; padding-left:5px;"+_color+"'>"+_time + "  " + entry.event+"</td>";       // time + event wird angezeigt
            }
            html+="</tr>";
        }
    
        html+="</body></table>";    
        setState(idCalHTMLtable, html);    
    }
    
    function getFormattedDate(date) {
        var month = (1 + date.getMonth()).toString();
        month = month.length > 1 ? month : '0' + month;
        var day = date.getDate().toString();
        day = day.length > 1 ? day : '0' + day;
        return day + '.' + month + '.';
    }
    
    on({id: idCalTable, change: "ne"}, function (obj) {
        iCalToHTMLTable();
    });
    
    iCalToHTMLTable();
    
    
    
    

    Und dies als globales Script oder unten drunter setzen:

    
    // globale Variablen
    
    // Tag, Monat, Jahr -> aktuelles Datum als String               -> Aufruf der Funktion mit:   Datum_holen("tmj") oder Datum_holen("tm") oder Datum_holen("lang")
    function Datum_holen(x) {
        var vTag = new Date().getDate(),
            vMonat = new Date().getMonth()+1,
            vJahr = new Date().getFullYear();
        if (vTag < 10) {vTag = "0" + vTag}
        if (vMonat < 10) {vMonat = "0" + vMonat}
        var sDatum_tmj = vTag + "." + vMonat + "." + vJahr.toString().substr(2,2);  // String mit Tag + Monat + Jahr (Jahr mit 2 Stellen)
        var sDatum_tm = vTag + "." + vMonat + ".";  // String mit Tag + Monat 
        var sDatum_lang = vTag + "." + vMonat + "." + vJahr;  // String mit Tag + Monat + Jahr (Jahr mit 4 Stellen)
    
        if (x === "tmj") {
            return(sDatum_tmj);
        } else if (x === "tm") {
            return(sDatum_tm);
        } else {
            return(sDatum_lang);
        }
    }
    
    // Stunde, Minute -> aktuelle Uhrzeit als String                 -> Aufruf der Funktion mit:   Zeit_holen("hms") oder Zeit_holen("hm")
    function Zeit_holen(x) {
        var vStunde = new Date().getHours(),
            vMinute = new Date().getMinutes(),
            vSekunde = new Date().getSeconds();
        if (vMinute <10) {vMinute = "0" + vMinute}
        if (vSekunde <10) {vSekunde = "0" + vSekunde}
        var sZeit_hms = vStunde + ":" + vMinute + ":" + vSekunde;  // String mit Stunde + Minute + Sekunde
        var sZeit_hm = vStunde + ":" + vMinute;    // String mit Stunde + Minute 
        if (x === "hms") {
            return(sZeit_hms);
        } else {
            return(sZeit_hm);
        }
    }
    
    

    und jede zeile dann mal vergleichen.

    T Offline
    T Offline
    thorkillar
    schrieb am zuletzt editiert von
    #1

    @bahnuhr
    Hallo in die Runde,
    ich habe mal eine allgemeine Frage. Ich wollte das Skript für einen Stundenplan anpassen. Das funktioniert soweit auch ganz gut. Aber bei einem Punkt weiss ich nicht weiter.

    Ich würde gern abfrage, wenn im Titel "Englisch" enthalten ist, dann färbe den Titel orange ein.
    mit == und || habe ich das hinbekommen. Aber das ist ja nicht die schönste Art. Könnt Ihr mir da einen Tipp geben. Bei Google habe ich nicht wirklich was gefunden. Liegt aber vielleicht auch an den Suchbegriffen. :-) DANKE

    else if(
                   entry.event == "Englisch" 
                || entry.event == "1. Englisch" 
                || entry.event == "2. Englisch" 
                || entry.event == "3. Englisch" 
                || entry.event == "4. Englisch" 
                || entry.event == "5. Englisch" 
                || entry.event == "6. Englisch" 
                || entry.event == "7. Englisch" 
                || entry.event == "8. Englisch") {
                    _bgcolor = "orange";
                    _color="color:orange";
                }
    
    bahnuhrB 1 Antwort Letzte Antwort
    0
    • T thorkillar

      @bahnuhr
      Hallo in die Runde,
      ich habe mal eine allgemeine Frage. Ich wollte das Skript für einen Stundenplan anpassen. Das funktioniert soweit auch ganz gut. Aber bei einem Punkt weiss ich nicht weiter.

      Ich würde gern abfrage, wenn im Titel "Englisch" enthalten ist, dann färbe den Titel orange ein.
      mit == und || habe ich das hinbekommen. Aber das ist ja nicht die schönste Art. Könnt Ihr mir da einen Tipp geben. Bei Google habe ich nicht wirklich was gefunden. Liegt aber vielleicht auch an den Suchbegriffen. :-) DANKE

      else if(
                     entry.event == "Englisch" 
                  || entry.event == "1. Englisch" 
                  || entry.event == "2. Englisch" 
                  || entry.event == "3. Englisch" 
                  || entry.event == "4. Englisch" 
                  || entry.event == "5. Englisch" 
                  || entry.event == "6. Englisch" 
                  || entry.event == "7. Englisch" 
                  || entry.event == "8. Englisch") {
                      _bgcolor = "orange";
                      _color="color:orange";
                  }
      
      bahnuhrB Offline
      bahnuhrB Offline
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      @thorkillar

      indexof


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      HomoranH 1 Antwort Letzte Antwort
      0
      • bahnuhrB bahnuhr

        @thorkillar

        indexof

        HomoranH Offline
        HomoranH Offline
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #3

        @bahnuhr
        @thorkillar

        ich hab das mal abgespalten, hat ja nix mit ical zu tun.
        @thorkillar bitte Titel anpassen

        kein Support per PN! - Fragen im Forum stellen -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        bahnuhrB 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @bahnuhr
          @thorkillar

          ich hab das mal abgespalten, hat ja nix mit ical zu tun.
          @thorkillar bitte Titel anpassen

          bahnuhrB Offline
          bahnuhrB Offline
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #4

          @homoran sagte in Skript für Farbanzeige:

          hat ja nix mit ical zu tun.

          Eigentlich doch,
          Es geht um das Script das den ical DP anders darstellt.


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          HomoranH 1 Antwort Letzte Antwort
          0
          • bahnuhrB bahnuhr

            @homoran sagte in Skript für Farbanzeige:

            hat ja nix mit ical zu tun.

            Eigentlich doch,
            Es geht um das Script das den ical DP anders darstellt.

            HomoranH Offline
            HomoranH Offline
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #5

            @bahnuhr sagte in Skript für Farbanzeige:

            Es geht um das Script das den ical DP anders darstellt.

            und das hier ist auch ical DP?

            kein Support per PN! - Fragen im Forum stellen -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            bahnuhrB 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @bahnuhr sagte in Skript für Farbanzeige:

              Es geht um das Script das den ical DP anders darstellt.

              und das hier ist auch ical DP?

              bahnuhrB Offline
              bahnuhrB Offline
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von bahnuhr
              #6

              @homoran

              ja, das ist ein Auszug aus dem Script

              genauer, um dieses hier:
              https://forum.iobroker.net/topic/26782/ical-kalender-farben-anpassen/92?_=1673030140761


              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

              HomoranH 1 Antwort Letzte Antwort
              0
              • bahnuhrB bahnuhr

                @homoran

                ja, das ist ein Auszug aus dem Script

                genauer, um dieses hier:
                https://forum.iobroker.net/topic/26782/ical-kalender-farben-anpassen/92?_=1673030140761

                HomoranH Offline
                HomoranH Offline
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #7

                @bahnuhr ja das weiß ich.
                aber wird hier dein Skript zweckentfremdet verwendet oder kommt der Stundenplan aus ical?

                kein Support per PN! - Fragen im Forum stellen -
                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                bahnuhrB 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @bahnuhr ja das weiß ich.
                  aber wird hier dein Skript zweckentfremdet verwendet oder kommt der Stundenplan aus ical?

                  bahnuhrB Offline
                  bahnuhrB Offline
                  bahnuhr
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @homoran sagte in Skript für Farbanzeige:

                  kommt der Stundenplan aus ical?

                  Hab ich so vermutet.

                  @thorkillar

                  probier es so:

                  else if(
                                 entry.event.indexOf("Englisch") >= 0 {
                                  _bgcolor = "orange";
                                  _color="color:orange";
                              }
                  

                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                  Danke.
                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                  ScreenToGif :https://www.screentogif.com/downloads.html

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • bahnuhrB bahnuhr

                    @homoran sagte in Skript für Farbanzeige:

                    kommt der Stundenplan aus ical?

                    Hab ich so vermutet.

                    @thorkillar

                    probier es so:

                    else if(
                                   entry.event.indexOf("Englisch") >= 0 {
                                    _bgcolor = "orange";
                                    _color="color:orange";
                                }
                    
                    HomoranH Offline
                    HomoranH Offline
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #9

                    @bahnuhr sagte in Skript für Farbanzeige:

                    Hab ich so vermutet.

                    ich eben nicht!

                    sonst muss ich alles wieder zurück schieben.

                    kein Support per PN! - Fragen im Forum stellen -
                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    bahnuhrB 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @bahnuhr sagte in Skript für Farbanzeige:

                      Hab ich so vermutet.

                      ich eben nicht!

                      sonst muss ich alles wieder zurück schieben.

                      bahnuhrB Offline
                      bahnuhrB Offline
                      bahnuhr
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @homoran sagte in Skript für Farbanzeige:

                      sonst muss ich alles wieder zurück schieben.

                      Ne, lass doch so.
                      Er bekommt ja ne Meldung, dass jemand geantwortet hat.


                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                      Danke.
                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                      ScreenToGif :https://www.screentogif.com/downloads.html

                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        thorkillar
                        schrieb am zuletzt editiert von
                        #11

                        @thorkillar

                        probier es so:

                        else if(
                                       entry.event.indexOf("Englisch") >= 0 {
                                        _bgcolor = "orange";
                                        _color="color:orange";
                                    }
                        
                        
                        else if(
                                       entry.event.indexOf("Englisch") >= 0 ) {
                                        _bgcolor = "orange";
                                        _color="color:orange";
                                    }
                        

                        @bahnuhr Danke Dir! Hat mir geholfen. Und ich habe das Skript komplett übernommen und wollte nur die Blaue Tonne, gegen Englisch .... austauschen.

                        Kleiner Hinweis, bei Dir fehlte ein ) nach der 0.


                        @homoran sagte in Skript für Farbanzeige:

                        @bahnuhr ja das weiß ich.
                        aber wird hier dein Skript zweckentfremdet verwendet oder kommt der Stundenplan aus ical?

                        Ja, Er kommt aus dem ical.

                        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

                        210

                        Online

                        32.7k

                        Benutzer

                        82.6k

                        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