Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Probleme beim iCal to Json Skript

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Probleme beim iCal to Json Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • Curtis777
      Curtis777 last edited by

      Ich habe das Skript welches mir meine iCal in ein Json umwandelt um es schöner darzustellen können.
      HAbe den Link hierzu beigefügt.
      Leider habe ich keine Ahnung wie ich das Anwende, habe Calender1 / 2 und 3 geändert auf meine vorhandenen Namen.
      Aber es wird kein Datenpunkt erstellt bzw ändert gar nichts an meinem IOB

      https://github.com/Scrounger/ioBroker.vis-materialdesign

      // momentjs is required as dependecies in javascript adapter
      const moment = require("moment");
      
      var instances = $(`[id=ical.*.data.table]`);
      instances.on(ical2CalendarWidget);
      
      // remove this, if you know to use your own datapoint
      let datapointId = 'materialdesignwidgets.calendar.ical2calendar'
      createState(datapointId, "[]", {
        read: true, 
        write: false, 
        desc: "JSON String for Calendar Widget", 
        type: "string", 
        def: "[]"
      });
      
      function ical2CalendarWidget() {
          try {
              let calList = [];
      
              for (var inst = 0; inst <= instances.length - 1; inst++) {
                  let icalObj = getState(instances[inst]).val;
      
                  if (icalObj) {
                      for (var i = 0; i <= icalObj.length - 1; i++) {
                          let item = icalObj[i];
      
                          // extract calendar color
                          let calendarName = item._class.split(' ')[0].replace('ical_', '');
      
                          let startTime = moment(item._date);
                          let endTime = moment(item._end);
                          
                          let start = startTime.format("YYYY-MM-DD HH:mm");
                          let end = endTime.format("YYYY-MM-DD HH:mm");
      
                          if (startTime.format('HH:mm') === '00:00' && endTime.format('HH:mm') === '00:00') {
                              // is full-day event
                              if (endTime.diff(startTime, 'hours') === 24) {
                                  // full-day event, one day
                                  start = startTime.format("YYYY-MM-DD");
                                  end = startTime.format("YYYY-MM-DD");
                              } else {
                                  // full-day event, multiple days
                                  start = startTime.format("YYYY-MM-DD");
                                  end = endTime.format("YYYY-MM-DD");
                              }
                          }
      
                          // create object for calendar widget
                          calList.push({
                              name: item.event,
                              color: getMyCalendarColor(calendarName),
                              colorText: getMyCalendarTextColor(calendarName),
                              start: start,
                              end: end
                          })
                      }
      
                      function getMyCalendarColor(calendarName) {
                          // assign colors via the calendar names, use calendar name as set in ical
                          if (calendarName === 'calendar1') {
                              return '#FF0000';
                          } else if (calendarName === 'calendar2') {
                              return '#44739e'
                          } else if (calendarName === 'calendar3') {
                              return '#32a852'
                          }
                      }
      
                      function getMyCalendarTextColor(calendarName) {
                          // assign colors via the calendar names, use calendar name as set in ical
                          if (calendarName === 'calendar1') {
                              return '#FFFFFF';
                          } else if (calendarName === 'calendar2') {
                              return '#FFFFFF'
                          } else if (calendarName === 'calendar3') {
                              return '#FFFFFF'
                          }
                      }
                  }
      
                  // Enter the destination data point that is to be used as object ID in the widget                
                  setState(datapointId, JSON.stringify(calList), true);
              }
          } catch (e) {
              console.error(`ical2MaterialDesignCalendarWidget: message: ${e.message}, stack: ${e.stack}`);
          }
      }
      
      ical2CalendarWidget();
      
      1 Reply Last reply Reply Quote 0
      • Glasfaser
        Glasfaser last edited by

        @curtis777 sagte in Probleme beim iCal to Json Skript:

        Leider habe ich keine Ahnung wie ich das Anwende,

        hier ist der Haupt-Thread dazu ... ist auch alles dazu erklärt :

        https://forum.iobroker.net/topic/29600/material-design-widgets-calendar-widget

        Curtis777 1 Reply Last reply Reply Quote 1
        • Curtis777
          Curtis777 @Glasfaser last edited by

          @glasfaser
          Danke der Thread war mir nicht bewusst.

          Habs mittlerweile geschafft,
          mit durchlesen 180 Beiträge das der Kalender hübsch dargestellt wird...
          allerdings nur im Chrome Browser.
          Sobald ich Fully oder WallPanel verwende ist der Kalender verschwunden.
          Habe auch andere Widgets aus dem Paket gestestet... selber Effekt.
          Die Standard sachen klappen aber problemlos.

          Glasfaser 1 Reply Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @Curtis777 last edited by

            @curtis777

            Kann dir damit nicht helfen , da ich es nicht nutze :

            Tablet in Wallpanel (wo die VIS läuft) oder Fully Kiosk APP

            aber in dem anderen Thread ... hast du es schon richtig gepotest !
            Test Adapter Material Design Widgets v0.5.x

            ich würde dort auch die Installierte Version mit angeben !

            1 Reply Last reply Reply Quote 1
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            756
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

            2
            4
            249
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo