Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. ICal Daten in Datenpunkte schreiben

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

ICal Daten in Datenpunkte schreiben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
42 Beiträge 4 Kommentatoren 4.3k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Offline
    D Offline
    der-eine
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    bräuchte mal eure Hilfe. Wenn man nach sowas ähnlichem sucht, geht es nur um "Abfallkalender" leider fehlt mir die nötige Kenntnis diese umzubauen.

    Ich möchte ganz schlicht die Termine von ical ohne Tabelle oder andere Veränderungen in Datenpunkte schreiben.

    Es werden insgesamt 4 unterschiedliche Kalender die alle ihre eigene Instanz bekommen.

    Ich habe einen Ordner der Hilfsvariablen.0 heißt und unter Objekten liegt. Dort hätte ich auch gerne die Datenpunkte.

    Wie Die Datenpunkte heissen bzw in welchen Unterordner sie liegen würde ich dann gerne selber festlegen. Hoffe, dass man

    das aus dem Skript rauslesen kann.

    Ist es möglich, für jeden Tag (Heute, Morgen, Übermorgen) jeweils 3 Datenpunkte 1. Termin 2. Termin 3. Termin anzulegen?

    Hoffe ihr könnt mir da behilflich sein.

    Danke und Gruß

    der-eine

    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      danw
      schrieb am zuletzt editiert von
      #2

      viewtopic.php?f=21&t=21447

      https://github.com/ioBroker/ioBroker.ical

      It's not a Bug, it's a Feature

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        der-eine
        schrieb am zuletzt editiert von
        #3

        Danke für den Link, schau ich mir an.

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          der-eine
          schrieb am zuletzt editiert von
          #4

          @danw

          hatte jetzt endlich Zeit das Skript umzuschreiben. Genau das hab ich gesucht. <emoji seq="1f44d-1f3fb">👍🏻</emoji>

          Eine Frage hätte ich noch und zwar, ist es möglich den Ordner nicht unter Javascript.0 zu erstellen sondern ausserhalb?

          Also in die oberste Struktur wo alle .0 Ordner liegen?

          Danke und Gruß

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            danw
            schrieb am zuletzt editiert von
            #5

            In dem iCal Adapter oder in deinem eigenen Script?

            Im eigenen Script ganz einfach:

            setState("custom.0.ordner.objekt", "Wert");

            Objekt muss vorher(!) vorhanden sein. createState() vorher machen oder manuell erstellen.

            It's not a Bug, it's a Feature

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              der-eine
              schrieb am zuletzt editiert von
              #6

              Wenn ich:

              createState( „ Hilfsvariablen.0.Kalender.Name.event1“, „ „);

              Mache erstellt er die Ordner unter JavaScript.

              Gesendet von iPhone mit Tapatalk

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                danw
                schrieb am zuletzt editiert von
                #7

                @der-eine:

                Wenn ich:

                createState( „ Hilfsvariablen.0.Kalender.Name.event1“, „ „);

                Mache erstellt er die Ordner unter JavaScript.

                Gesendet von iPhone mit Tapatalk `

                Ordner vorher erstellen, am besten auch das Objekt. Dann gehts sicher.

                It's not a Bug, it's a Feature

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  der-eine
                  schrieb am zuletzt editiert von
                  #8

                  Dann kann ich das createState aus dem Skript raus nehmen wenn ich die Datenpunkte selber erstelle?

                  Gesendet von iPhone mit Tapatalk

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    danw
                    schrieb am zuletzt editiert von
                    #9

                    ja

                    It's not a Bug, it's a Feature

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      der-eine
                      schrieb am zuletzt editiert von
                      #10

                      Jetzt ist doch irgendwie der Hund drin. Kannst Du da bitte mal drüber schauen?

                      `var idCal = "ical.1";
                      var idCalTrigger   = idCal + ".data.trigger";
                      var idCalTable     = idCal + ".data.table";
                      var idCalHTML      = idCal + ".data.html";
                      var idCalHTMLtable = idCal + "_1.json";
                      
                      function iCalToHTMLTable() {
                          var calTable = getState(idCalTable);
                          var inst     = getObject("system.adapter."+idCal);
                          var instopt  = inst.native;
                          var calendar = {};
                          var event /    var date = ""
                      
                          for (var i = 0; i < 3; i++) { 
                              var entry = calTable.val[i];
                              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;
                                      }
                                  }
                              }    
                          event += entry.event + ","
                          date +=  entry.date + ","
                          }  
                          var event1 = event.split(",")[0];
                          var event2 = event.split(",")[1];
                          var event3 = event.split(",")[2];
                          var date1 = date.split(",")[0];
                          var date2 = date.split(",")[1];
                          var date3 = date.split(",")[2];
                      
                          console.log(event);
                          console.log(event1);
                          console.log(event2);
                          console.log(event3);
                          console.log(date);
                          console.log(date1);
                          console.log(date2);
                          console.log(date3);
                      
                          setState('Hilfsvariablen.0.Kalender.Daniel.event1', event1);
                          setState('Hilfsvariablen.0.Kalender.Daniel.event2', event2);
                          setState('Hilfsvariablen.0.Kalender.Daniel.event3', event3);
                          setState('Hilfsvariablen.0.Kalender.Daniel.date1', date1);
                          setState('Hilfsvariablen.0.Kalender.Daniel.date2', date2);
                          setState('Hilfsvariablen.0.Kalender.Daniel.date3', date3);
                          setState('Hilfsvariablen.0.Kalender.Daniel.event', event);
                          setState('Hilfsvariablen.0.Kalender.Daniel.date', date);   
                      }
                      
                      on({id: idCalTable, change: "ne"}, function (obj) {
                          iCalToHTMLTable();
                      });
                      
                      schedule("5,35 * * * *", function () { iCalToHTMLTable(); });
                      iCalToHTMLTable();`
                      
                      Komme nicht drauf, was daran falsch ist bzw was die errors bedeuten...
                      
                      Danke schon mal
                        [10117_bildschirmfoto_2019-02-05_um_16.02.00.png](/assets/uploads/files/10117_bildschirmfoto_2019-02-05_um_16.02.00.png)  [/i]
                      
                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        danw
                        schrieb am zuletzt editiert von
                        #11

                        Auch wenn du mich per PN anschreibst geht es nicht schneller. Ich bin weder bezahlter Programmierer, noch hier angestellt.

                        `var idCal = "ical.1";
                        var idCalTrigger   = idCal + ".data.trigger";
                        var idCalTable     = idCal + ".data.table";
                        var idCalHTML      = idCal + ".data.html";
                        var idCalHTMLtable = idCal + "_1.json";
                        
                        function iCalToHTMLTable() {
                            var calTable = getState(idCalTable);
                            var inst     = getObject("system.adapter." + idCal);
                            var instopt  = inst.native;
                            var calendar = {};
                            var event = "";
                            var date = "";
                        
                            for (var i = 0; i < 3; i++) { 
                                var entry = calTable.val[i];
                                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;
                                        }
                                    }
                                }    
                            event += entry.event + ",";
                            date +=  entry.date + ",";
                            }  
                            var event1 = event.split(",")[0];
                            var event2 = event.split(",")[1];
                            var event3 = event.split(",")[2];
                            var date1 = date.split(",")[0];
                            var date2 = date.split(",")[1];
                            var date3 = date.split(",")[2];
                        
                            setState('Hilfsvariablen.0.Kalender.Daniel.event1', event1);
                            setState('Hilfsvariablen.0.Kalender.Daniel.event2', event2);
                            setState('Hilfsvariablen.0.Kalender.Daniel.event3', event3);
                            setState('Hilfsvariablen.0.Kalender.Daniel.date1', date1);
                            setState('Hilfsvariablen.0.Kalender.Daniel.date2', date2);
                            setState('Hilfsvariablen.0.Kalender.Daniel.date3', date3);
                            setState('Hilfsvariablen.0.Kalender.Daniel.event', event);
                            setState('Hilfsvariablen.0.Kalender.Daniel.date', date);   
                        }
                        
                        on({id: idCalTable, change: "ne"}, function (obj) {
                            iCalToHTMLTable();
                        });
                        
                        schedule("5,35 * * * *", function () { iCalToHTMLTable(); });
                        iCalToHTMLTable();` 
                        
                        Bis jetzt fallen mir nur fehlende ";" auf, habe ich mal hinzugefügt. Welche Zeile ist die, die den Fehler generiert? Ich weiss ja nicht, ob dein Script noch größer ist.[/i]
                        

                        It's not a Bug, it's a Feature

                        1 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          der-eine
                          schrieb am zuletzt editiert von
                          #12

                          Ok, sorry…

                          Laut error im Post darüber 17, 20, 61.

                          Danke trotzdem für deine Zeit auch wenn Du nicht hier angestellt bist.

                          Gesendet von iPhone mit Tapatalk

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            danw
                            schrieb am zuletzt editiert von
                            #13

                            Die Frage war welche Zeile das bei dir ist?

                                    if (entry._calName != calendar.name) {
                            
                            

                            Die?

                            It's not a Bug, it's a Feature

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              der-eine
                              schrieb am zuletzt editiert von
                              #14

                              Diese sind es 3. Hab gerade gesehen, Du siehst ja nicht die Zeilennr.

                              if ( entry._calName != calendar.name ) {
                              if (entry._calName == instopt.calendars[c].name ) {
                              iCalToHTMLTable();
                              
                              
                              1 Antwort Letzte Antwort
                              0
                              • D Offline
                                D Offline
                                danw
                                schrieb am zuletzt editiert von
                                #15

                                Bei mir kein Problem, hab mir grad extra den Adapter installiert.

                                Ist die Instanz denn korrekt ical.1? Wenn du nur eine Instanz hast ist es meistens ical.0.

                                It's not a Bug, it's a Feature

                                1 Antwort Letzte Antwort
                                0
                                • D Offline
                                  D Offline
                                  der-eine
                                  schrieb am zuletzt editiert von
                                  #16

                                  Nein, ist nicht die einzige. Aber der Fehler bezieht sich immer wieder auf die erste Zeile

                                  Ich habe 3 Instanzen aber davon aktuell nur die ical.1 aktiv.

                                  > var idCal = "ical.1";

                                  1 Antwort Letzte Antwort
                                  0
                                  • D Offline
                                    D Offline
                                    der-eine
                                    schrieb am zuletzt editiert von
                                    #17

                                    Das wären die Fehler im Log wenn Dir das evtl was sagt.

                                    avascript.0 2019-02-06 13:30:39.609 error at ContextifyScript.Script.runInContext (vm.js:59:29)

                                    javascript.0 2019-02-06 13:30:39.609 error at script.js.common.Kalender.Daniel.iCal.1:61:1

                                    javascript.0 2019-02-06 13:30:39.609 error at iCalToHTMLTable (script.js.common.Kalender.Daniel.iCal.1:17:20)

                                    javascript.0 2019-02-06 13:30:39.609 error TypeError: Cannot read property '_calName' of undefined

                                    javascript.0 2019-02-06 13:30:39.608 error ^

                                    javascript.0 2019-02-06 13:30:39.608 error if ( entry._calName != calendar.name ) {

                                    javascript.0 2019-02-06 13:30:39.608 error script.js.common.Kalender.Daniel.iCal.1: script.js.common.Kalender.Daniel.iCal.1:17

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      danw
                                      schrieb am zuletzt editiert von
                                      #18

                                      Steht dann auch was in den Objekten des Adapter drin? Wie gesagt: Hier kein Problem.

                                      Ersatz mal folgende Zeilen

                                       `for (var i = 0; i < 3; i++) { 
                                              console.log("entry: " + JSON.stringify(entry));
                                              console.log("caltable: " + JSON.stringify(calTable));
                                              console.log("caltable inc: " + JSON.stringify(calTable.val[i]));
                                              var entry = calTable.val[i];
                                              if (entry._calName != calendar.name) {` [/i][/i]
                                      

                                      It's not a Bug, it's a Feature

                                      1 Antwort Letzte Antwort
                                      0
                                      • D Offline
                                        D Offline
                                        danw
                                        schrieb am zuletzt editiert von
                                        #19

                                        @der-eine:

                                        Das wären die Fehler im Log wenn Dir das evtl was sagt.

                                        avascript.0 2019-02-06 13:30:39.609 error at ContextifyScript.Script.runInContext (vm.js:59:29)

                                        javascript.0 2019-02-06 13:30:39.609 error at script.js.common.Kalender.Daniel.iCal.1:61:1

                                        javascript.0 2019-02-06 13:30:39.609 error at iCalToHTMLTable (script.js.common.Kalender.Daniel.iCal.1:17:20)

                                        javascript.0 2019-02-06 13:30:39.609 error TypeError: Cannot read property '_calName' of undefined

                                        javascript.0 2019-02-06 13:30:39.608 error ^

                                        javascript.0 2019-02-06 13:30:39.608 error if ( entry._calName != calendar.name ) {

                                        javascript.0 2019-02-06 13:30:39.608 error script.js.common.Kalender.Daniel.iCal.1: script.js.common.Kalender.Daniel.iCal.1:17 `

                                        Dann steht nix in den Objektes des Adapters drin.

                                        It's not a Bug, it's a Feature

                                        1 Antwort Letzte Antwort
                                        0
                                        • D Offline
                                          D Offline
                                          der-eine
                                          schrieb am zuletzt editiert von
                                          #20

                                          @danw:

                                          @der-eine:

                                          Das wären die Fehler im Log wenn Dir das evtl was sagt.

                                          avascript.0 2019-02-06 13:30:39.609 error at ContextifyScript.Script.runInContext (vm.js:59:29)

                                          javascript.0 2019-02-06 13:30:39.609 error at script.js.common.Kalender.Daniel.iCal.1:61:1

                                          javascript.0 2019-02-06 13:30:39.609 error at iCalToHTMLTable (script.js.common.Kalender.Daniel.iCal.1:17:20)

                                          javascript.0 2019-02-06 13:30:39.609 error TypeError: Cannot read property '_calName' of undefined

                                          javascript.0 2019-02-06 13:30:39.608 error ^

                                          javascript.0 2019-02-06 13:30:39.608 error if ( entry._calName != calendar.name ) {

                                          javascript.0 2019-02-06 13:30:39.608 error script.js.common.Kalender.Daniel.iCal.1: script.js.common.Kalender.Daniel.iCal.1:17 `

                                          Dann steht nix in den Objektes des Adapters drin. `

                                          Meinst Du im Kalender oder der Standardwert der Datenpunkte?

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          793

                                          Online

                                          32.6k

                                          Benutzer

                                          82.1k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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