Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. ICal-Termine für morgen auswerten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ICal-Termine für morgen auswerten

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

      Ich habe den öffentlichen Entsorgungskalender unseres Entsorgers im iCal-Adapter eingebunden, funktioniert auch prima. Nun möchte ich jedoch bereits am Tag vor der Entsorgung eine Variable in der CCU je Entsorgungstyp (Restmüll, Papier, Gelber Sack) auf true setzen, um darüber eine Ansage auf meinem MP3-Modul zu steuern, die an die rechtzeitige Bereitstellung des Mülls zur Entsorgung erinnert.

      Mit manuell in der CCU eingepflegten Terminen funktioniert die rechtzeitige Erinnerung prima. Da der Entsorger jedoch endlich einen öffentlichen iCal bereitstellt möchte ich natürlich die manuelle Terminpflege einsparen.

      Habt Ihr evtl. einen Lösungsansatz für mich?

      Danke!

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        Anbei Script von pix.

        und dann angepasst auf mich

        ! ```
        `/* 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
        02.02.2017 geändert von bahnuhr
        */
        ! // Variablen
        var suchstring = 'Tonne'; // Suchbegriff
        var stichtag = 1; // 0=heute; 1=morgen; 2=übermorgen; 3=in 3 Tagen
        var idTabelle = 'ical.0.data.table'; // Instanz eintragen
        var logging = false; // debug Log ein/ausschalten
        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.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // z.B. 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 Auto_M = getState('javascript.0.Status.System.Auto_Müllabfuhr').val;
        var kalender = getState(idTabelle).val;
        var tag = datum(parseInt(stichtag,10));
        var termin = [];
        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])/)/string/datum/oder/relatives/(nicht/nicht)/gefunden,/also/gefunden/var/term="kalender[i].event;" (term.indexof(suchstring)/termin.push(kalender[i].event);/log/('treffer:/'/+/termin);/}/termin.sort();/(termin.length="==" 0)/setstate('javascript.0.status.sonstige.müll_morgen',/'kein/eintrag');="">= 1 && (Auto_M === true || Auto_M === 1)) {
        setState('javascript.0.Status.Sonstige.Müll_morgen', termin.join(', '));
        }
        } catch (fehler_try) {
        log('Fehler beim Kalenderevents einlesen ' + fehler_try, 'error');
        }
        }
        ! // bei Aktualisierung
        on ({id: idTabelle, change: 'any'}, function(data) {
        pruefeKalender();
        });
        ! on({id: "javascript.0.Status.System.Auto_Müllabfuhr", change: "ne"}, function() { // Automatik geändert auf aus -> Folge: Anzeige verschwindet
        var Auto_M = getState('javascript.0.Status.System.Auto_Müllabfuhr').val;
        if (Auto_M === false || Auto_M === 0) {
        setState('javascript.0.Status.Sonstige.Müll_morgen', 'kein Eintrag');
        }
        });
        ! // um 16:00 Uhr
        schedule("0 16 * * *", pruefeKalender);
        ! schedule("0 20 * * *", function () {
        var Auto_M = getState('javascript.0.Status.System.Auto_Müllabfuhr').val;
        var Muell = getState('javascript.0.Status.Sonstige.Müll_morgen').val;

        if (Muell !== "kein Eintrag" && (Auto_M === true || Auto_M === 1)) {
            vText = "Müllabfuhr:\nMorgen muss die **" + Muell + "** rausgestellt weren.";
            sendTo('telegram', { text: vText, parse_mode: 'HTML' });
        }
        

        });

        ! //bei Skriptstart
        pruefeKalender();</kalender.length;>`
        ! mfg[/i][/i][/i][/i]

        1 Reply Last reply Reply Quote 0
        • T
          Thomas06308 last edited by

          Vielen Dank! Sehe ich mir am Wochenende mal an und gebe ein Feedback.

          Gesendet von meinem GT-I9505 mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • T
            Thomas06308 last edited by

            Vielen Dank für den Hinweis auf das Script. Funktioniert prima!

            Gesendet von meinem GT-I9505 mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • F
              firstfreak last edited by

              Hallo, da ich vom Scripting keine Ahnung habe, könnte einer von euch so nett sein und dieses Script ändern für mich?

              Bei mir soll es im Kalender ical.4 nach dem Wort "Urlaub" suchen am Tag "heute".

              Da ich Schichtarbeiter bin, wäre das für die Heizung und Rolladensteuerung cool, da die Variable erst prüft ob ich frei habe.

              Vielen Dank schon mal.

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                @firstfreak:

                Bei mir soll es im Kalender ical.4 nach dem Wort "Urlaub" suchen am Tag "heute" `
                Das sollte durch Anpassungen im ersten Block gehen:

                // Variablen
                    var suchstring = 'Urlaub';     // Suchbegriff
                    var stichtag = 0;   // 0=heute;  1=morgen; 2=übermorgen; 3=in 3 Tagen 
                    var idTabelle = 'ical.4.data.table'; // Instanz eintragen
                    var logging = false;  // debug Log ein/ausschalten
                    var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen
                
                

                Gruß

                Pix

                1 Reply Last reply Reply Quote 0
                • F
                  firstfreak last edited by

                  @pix:

                  @firstfreak:

                  Bei mir soll es im Kalender ical.4 nach dem Wort "Urlaub" suchen am Tag "heute" `
                  Das sollte durch Anpassungen im ersten Block gehen:

                  // Variablen
                      var suchstring = 'Urlaub';     // Suchbegriff
                      var stichtag = 0;   // 0=heute;  1=morgen; 2=übermorgen; 3=in 3 Tagen 
                      var idTabelle = 'ical.4.data.table'; // Instanz eintragen
                      var logging = false;  // debug Log ein/ausschalten
                      var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen
                  
                  

                  Gruß

                  Pix `

                  und wie ändert er damit die Variable in der CCU ?

                  Ich habe eine Variable die Schaltet zwischen Schicht und Urlaub.

                  Die Variable heisst "Schicht"

                  Danke dir.

                  1 Reply Last reply Reply Quote 0
                  • T
                    tempestas last edited by

                    du musst aus den HM adaptern die passende Variable raussuchen (sowas wie "hm-rega.12345") und dann deren Status anpassen via Skript. Wäre zumindest mein erster Gedanke

                    1 Reply Last reply Reply Quote 0
                    • T
                      TonyDom last edited by

                      Hallo zusammen,

                      kann mir mal bitte jemand helfen, ich suche mir einen Wolf für "relative Datumsangabe in iCal-Adapter einschalten"

                      Vielen Dank schon mal

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo,

                        ich glaube, damit ist das gemeint:````
                        heute, morgen, übermorgen, ...

                        
                        Gruß
                        
                        Pix
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

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

                        885
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        6
                        10
                        2189
                        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