Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. *gelöst* "Urlaub" aus Kalender auslesen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    109

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    152

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

*gelöst* "Urlaub" aus Kalender auslesen

Scheduled Pinned Locked Moved Skripten / Logik
blockly
18 Posts 5 Posters 2.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    DjNetwork
    wrote on last edited by
    #6

    Hallo,

    ich nutze folgendes Script um den Ical auszulesen ... es setzt automatisch alle stati. Blockly brauche ich dabei nicht mehr ...

    /* Kalenderevent in der Zukunft suchen
    
    sucht im iCal Adapter nach events, die noch kommen
    http://forum.iobroker.net/viewtopic.php?f=21&t=3761&sid=4319378b32a0ce096bbbbfc0ebd859ce#p34975
    
    20.09.2016 erstellt von pix
    */
    
    // User Anpassungen
    var suchstring =   'Urlaub';              // Suchbegriff
    var stichtag =     0;                   // 0 heute;  1 morgen; 2 übermorgen; 3 In 3 Tagen
    var idTabelle =    'ical.3.data.table'; // Instanz eintragen
    var logging =      false;                // debug Log ein/ausschalten
    // Ende User Anpassungen
    
    
    var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen
    
    function datum(x) {
        var jetzt = new Date();
        if (logging) log('Jetztzeit: ' + jetzt);
        //var zeit = new Date(jetzt.getTime() + x * 24 * 60 * 60 * 1000); // es werden genau x Tage, als x * 24 Stunden zugezählt --> nicht gut
        var zeit = new Date (jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // in drei Tagen um Mitternacht
        if (logging) log('Zielzeit: ' + zeit);
        var jahr       = zeit.getFullYear();
        var monat      = (zeit.getMonth()+1 < 10) ? '0' + (zeit.getMonth()+1) : zeit.getMonth()+1;
        var tag        = (zeit.getDate() < 10) ? '0' + zeit.getDate() : zeit.getDate();
        return (tag + '.' + monat + '.' + jahr);
    }
    
    function pruefeKalender() {
        var kalender = getState(idTabelle).val;
        var tag = datum(parseInt(stichtag,10));
        if (logging) log(tag);
        try{
            var ereignisse = JSON.stringify(kalender, null, 2); // Ausgabe als String
            if (logging) log(ereignisse);
            for(var i = 0; i <kalender.length; i++) { // alle Events durchgehen
                if ( (kalender[i].date.indexOf(tag) != -1) || (kalender[i].date.indexOf(tage[stichtag]) != -1) ) { // String Datum oder relatives Datum (nicht nicht) gefunden, also gefunden
                    var termin = kalender[i].event;
                    if (termin.indexOf(suchstring) != -1) {
                        log('Treffer: ' + tage[stichtag] + ' ' + suchstring);
                        
      setState("hm-rega.0.3582"/*Wochenende Karsten*/, false);
      setState("hm-rega.0.14542"/*Spätschicht Karsten*/, false);
      setState("hm-rega.0.14543"/*Nachtschicht Karsten*/, false);
      setState("hm-rega.0.14541"/*Frühschicht Karsten*/, false);
      setState("hm-rega.0.14544"/*Urlaub / Gleitzeit Karsten*/, true);
       
                        // weitere Aktionen, setState oder so
                    }
                } 
            }
        } catch (fehler_try) {
            log('Fehler beim Kalenderevents einlesen ' + fehler_try, 'error');
        }
    }
    
    // bei Aktualisierung
    //on ({id: idTabelle, change: 'any'}, function(data) {
    //    pruefeKalender();
    //});
    
    // 5Min nach Mitternacht
    schedule("8 0 * * *", pruefeKalender);
    
    //bei Skriptstart
    pruefeKalender();
    

    Hoffe das hilft Dir ...

    surfer09S 1 Reply Last reply
    0
    • D DjNetwork

      Hallo,

      ich nutze folgendes Script um den Ical auszulesen ... es setzt automatisch alle stati. Blockly brauche ich dabei nicht mehr ...

      /* Kalenderevent in der Zukunft suchen
      
      sucht im iCal Adapter nach events, die noch kommen
      http://forum.iobroker.net/viewtopic.php?f=21&t=3761&sid=4319378b32a0ce096bbbbfc0ebd859ce#p34975
      
      20.09.2016 erstellt von pix
      */
      
      // User Anpassungen
      var suchstring =   'Urlaub';              // Suchbegriff
      var stichtag =     0;                   // 0 heute;  1 morgen; 2 übermorgen; 3 In 3 Tagen
      var idTabelle =    'ical.3.data.table'; // Instanz eintragen
      var logging =      false;                // debug Log ein/ausschalten
      // Ende User Anpassungen
      
      
      var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen
      
      function datum(x) {
          var jetzt = new Date();
          if (logging) log('Jetztzeit: ' + jetzt);
          //var zeit = new Date(jetzt.getTime() + x * 24 * 60 * 60 * 1000); // es werden genau x Tage, als x * 24 Stunden zugezählt --> nicht gut
          var zeit = new Date (jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // in drei Tagen um Mitternacht
          if (logging) log('Zielzeit: ' + zeit);
          var jahr       = zeit.getFullYear();
          var monat      = (zeit.getMonth()+1 < 10) ? '0' + (zeit.getMonth()+1) : zeit.getMonth()+1;
          var tag        = (zeit.getDate() < 10) ? '0' + zeit.getDate() : zeit.getDate();
          return (tag + '.' + monat + '.' + jahr);
      }
      
      function pruefeKalender() {
          var kalender = getState(idTabelle).val;
          var tag = datum(parseInt(stichtag,10));
          if (logging) log(tag);
          try{
              var ereignisse = JSON.stringify(kalender, null, 2); // Ausgabe als String
              if (logging) log(ereignisse);
              for(var i = 0; i <kalender.length; i++) { // alle Events durchgehen
                  if ( (kalender[i].date.indexOf(tag) != -1) || (kalender[i].date.indexOf(tage[stichtag]) != -1) ) { // String Datum oder relatives Datum (nicht nicht) gefunden, also gefunden
                      var termin = kalender[i].event;
                      if (termin.indexOf(suchstring) != -1) {
                          log('Treffer: ' + tage[stichtag] + ' ' + suchstring);
                          
        setState("hm-rega.0.3582"/*Wochenende Karsten*/, false);
        setState("hm-rega.0.14542"/*Spätschicht Karsten*/, false);
        setState("hm-rega.0.14543"/*Nachtschicht Karsten*/, false);
        setState("hm-rega.0.14541"/*Frühschicht Karsten*/, false);
        setState("hm-rega.0.14544"/*Urlaub / Gleitzeit Karsten*/, true);
         
                          // weitere Aktionen, setState oder so
                      }
                  } 
              }
          } catch (fehler_try) {
              log('Fehler beim Kalenderevents einlesen ' + fehler_try, 'error');
          }
      }
      
      // bei Aktualisierung
      //on ({id: idTabelle, change: 'any'}, function(data) {
      //    pruefeKalender();
      //});
      
      // 5Min nach Mitternacht
      schedule("8 0 * * *", pruefeKalender);
      
      //bei Skriptstart
      pruefeKalender();
      

      Hoffe das hilft Dir ...

      surfer09S Offline
      surfer09S Offline
      surfer09
      wrote on last edited by
      #7

      @DjNetwork: Danke für deinen Beitrag! Ich bin nicht so unbedingt der Java-Skript Programmierer, daher kenne ich mich damit eher weniger aus.
      Ich müsste eigenlicht „nur“ eine Variable beschreiben, je nachdem was im Kalender steht.
      Also „Wenn heute Termin Urlaub im Kalender steht, setze Variable Urlaub auf wahr“
      Und diese Variable muss dann bei den Jalousie-Skripten abgefragt werden. aber wie baut man das ein? Geht das auch mit Blockly-Mitteln?

      IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

      paul53P 1 Reply Last reply
      0
      • surfer09S surfer09

        @DjNetwork: Danke für deinen Beitrag! Ich bin nicht so unbedingt der Java-Skript Programmierer, daher kenne ich mich damit eher weniger aus.
        Ich müsste eigenlicht „nur“ eine Variable beschreiben, je nachdem was im Kalender steht.
        Also „Wenn heute Termin Urlaub im Kalender steht, setze Variable Urlaub auf wahr“
        Und diese Variable muss dann bei den Jalousie-Skripten abgefragt werden. aber wie baut man das ein? Geht das auch mit Blockly-Mitteln?

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #8

        @surfer09 sagte:

        „Wenn heute Termin Urlaub im Kalender steht, setze Variable Urlaub auf wahr“

        Wie sieht der Datenpunkt aus (ID), der "Urlaub" für heute enthält (Wert) ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        surfer09S 1 Reply Last reply
        0
        • paul53P paul53

          @surfer09 sagte:

          „Wenn heute Termin Urlaub im Kalender steht, setze Variable Urlaub auf wahr“

          Wie sieht der Datenpunkt aus (ID), der "Urlaub" für heute enthält (Wert) ?

          surfer09S Offline
          surfer09S Offline
          surfer09
          wrote on last edited by
          #9

          @paul53 sagte in "Urlaub" aus Kalender auslesen:

          @surfer09 sagte:

          „Wenn heute Termin Urlaub im Kalender steht, setze Variable Urlaub auf wahr“

          Wie sieht der Datenpunkt aus (ID), der "Urlaub" für heute enthält (Wert) ?

          So würde das Objekt aussehen. Steht Urlaub drin, dann "true", sonst "false"

          ICAL_Urlaub.jpg

          IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

          paul53P 1 Reply Last reply
          0
          • surfer09S surfer09

            @paul53 sagte in "Urlaub" aus Kalender auslesen:

            @surfer09 sagte:

            „Wenn heute Termin Urlaub im Kalender steht, setze Variable Urlaub auf wahr“

            Wie sieht der Datenpunkt aus (ID), der "Urlaub" für heute enthält (Wert) ?

            So würde das Objekt aussehen. Steht Urlaub drin, dann "true", sonst "false"

            ICAL_Urlaub.jpg

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by paul53
            #10

            @surfer09
            Das Blockly-Script, in dem die Variable urlaub abgefragt wird, ergänzen um:

            Blockly_temp.JPG

            Damit wird die Variable urlaub täglich um 00:03 Uhr und bei Script-Start richtig gesetzt.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            surfer09S 1 Reply Last reply
            0
            • paul53P paul53

              @surfer09
              Das Blockly-Script, in dem die Variable urlaub abgefragt wird, ergänzen um:

              Blockly_temp.JPG

              Damit wird die Variable urlaub täglich um 00:03 Uhr und bei Script-Start richtig gesetzt.

              surfer09S Offline
              surfer09S Offline
              surfer09
              wrote on last edited by
              #11

              @paul53 Super Paul! Danke! Ich habe jetzt aber noch ein Verständnisproblem. Wo in den Objekten kann ich die Variable "Urlaub" jetzt sehen? Ich hätte gedacht, dass diese im Javascript.0 Ordner angezeigt wird, das wird sie aber nicht. Muss ich woanders suchen?

              IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

              HomoranH paul53P 2 Replies Last reply
              0
              • surfer09S surfer09

                @paul53 Super Paul! Danke! Ich habe jetzt aber noch ein Verständnisproblem. Wo in den Objekten kann ich die Variable "Urlaub" jetzt sehen? Ich hätte gedacht, dass diese im Javascript.0 Ordner angezeigt wird, das wird sie aber nicht. Muss ich woanders suchen?

                HomoranH Do not disturb
                HomoranH Do not disturb
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #12

                @surfer09 sagte in "Urlaub" aus Kalender auslesen:

                Wo in den Objekten kann ich die Variable "Urlaub" jetzt sehen?

                gar nicht.
                Dann hättest du einen Datenpunkt anlegen müssen.

                Diese Variable ist eine reine Scriptvariable und nur in dem Script verfügbar

                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 oben rechts. Danke!
                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                surfer09S 1 Reply Last reply
                0
                • HomoranH Homoran

                  @surfer09 sagte in "Urlaub" aus Kalender auslesen:

                  Wo in den Objekten kann ich die Variable "Urlaub" jetzt sehen?

                  gar nicht.
                  Dann hättest du einen Datenpunkt anlegen müssen.

                  Diese Variable ist eine reine Scriptvariable und nur in dem Script verfügbar

                  surfer09S Offline
                  surfer09S Offline
                  surfer09
                  wrote on last edited by
                  #13

                  @Homoran Okay, verstehe! Dann wäre mir persönlich ja der Datenpunkt lieber. Ich sehe gerne, wenn auch etwas passiert, bzw. nicht passiert. Das mit der Variable ist ja dann eher unsichtbar, wenn das nur intern für das Skript gilt.

                  IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

                  HomoranH 1 Reply Last reply
                  0
                  • surfer09S surfer09

                    @Homoran Okay, verstehe! Dann wäre mir persönlich ja der Datenpunkt lieber. Ich sehe gerne, wenn auch etwas passiert, bzw. nicht passiert. Das mit der Variable ist ja dann eher unsichtbar, wenn das nur intern für das Skript gilt.

                    HomoranH Do not disturb
                    HomoranH Do not disturb
                    Homoran
                    Global Moderator Administrators
                    wrote on last edited by
                    #14

                    @surfer09 sagte in "Urlaub" aus Kalender auslesen:

                    Dann wäre mir persönlich ja der Datenpunkt lieber.

                    Dafür hast du ja den Datenpunkt Urlaub im event vom 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 oben rechts. Danke!
                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    surfer09S 1 Reply Last reply
                    0
                    • HomoranH Homoran

                      @surfer09 sagte in "Urlaub" aus Kalender auslesen:

                      Dann wäre mir persönlich ja der Datenpunkt lieber.

                      Dafür hast du ja den Datenpunkt Urlaub im event vom ical

                      surfer09S Offline
                      surfer09S Offline
                      surfer09
                      wrote on last edited by
                      #15

                      @Homoran Du hast Recht, das wäre dann eigentlich doppelt.
                      Aber wenn ich einen Datenpunkt nehmen würde, müsste das dann so aussehen?

                      Variable.jpg

                      IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

                      1 Reply Last reply
                      0
                      • surfer09S surfer09

                        @paul53 Super Paul! Danke! Ich habe jetzt aber noch ein Verständnisproblem. Wo in den Objekten kann ich die Variable "Urlaub" jetzt sehen? Ich hätte gedacht, dass diese im Javascript.0 Ordner angezeigt wird, das wird sie aber nicht. Muss ich woanders suchen?

                        paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by paul53
                        #16

                        @surfer09 sagte:

                        Muss ich woanders suchen?

                        Ja, unter ical.0. Habe im Bild oben jetzt die komplette ID angegeben.

                        @surfer09 sagte in "Urlaub" aus Kalender auslesen:

                        Aber wenn ich einen Datenpunkt nehmen würde, müsste das dann so aussehen?

                        Wozu noch ein Datenpunkt ?

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        surfer09S 1 Reply Last reply
                        0
                        • paul53P paul53

                          @surfer09 sagte:

                          Muss ich woanders suchen?

                          Ja, unter ical.0. Habe im Bild oben jetzt die komplette ID angegeben.

                          @surfer09 sagte in "Urlaub" aus Kalender auslesen:

                          Aber wenn ich einen Datenpunkt nehmen würde, müsste das dann so aussehen?

                          Wozu noch ein Datenpunkt ?

                          surfer09S Offline
                          surfer09S Offline
                          surfer09
                          wrote on last edited by
                          #17

                          @paul53: ja, stimmt. Ist doppelt.
                          Für mich jedoch etwas einfacher nachzuvollziehen, aber das ist mein persönliches Empfinden :-)

                          Danke auf jeden Fall für eure Hilfe!

                          IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            michi050
                            wrote on last edited by
                            #18

                            Hallo Freunde,

                            was mach ich bei 2 Kalendern (2Personen) in einer Ical Instanz vereint. Kann ich mit dem Werkzeug "Ereignissen" auch die beiden Kalender unterscheiden? z.B. Person 1 hat Urlaub und die Person 2 hat keinen Urlaub.

                            Gruß Michi

                            1 Reply Last reply
                            0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better 💗

                            Register Login
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            505

                            Online

                            32.8k

                            Users

                            82.7k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Home
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe