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. JavaScript
  5. [Scriptbeispiel] Feiertage NRW

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[Scriptbeispiel] Feiertage NRW

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 3 Kommentatoren 1.8k Aufrufe
  • Ä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.
  • htreckslerH Offline
    htreckslerH Offline
    htrecksler
    Forum Testing
    schrieb am zuletzt editiert von
    #1

    Hier ein Script welches (für NRW) die Feiertage (mit Namen) für Heute und Morgen ermittelt und in die entsprechenden Variablen schreibt.

    Für andere Bundesländer muss noch eingegriffen werden. (einfach - aber Fleissarbeit)

    // ioBroker Feiertags-Script
    // 03.04.2015 Hermann Trecksler übernommen von ccu.io
    
    var state = "NW";
    
    // Erzeugen der Datenpunkte für ioBroker
    createState('FeiertagHeute', {type: 'boolean'});
    createState('FeiertagMorgen', {type: 'boolean'});
    createState('FeiertagHeuteName', {type: 'string'});
    createState('FeiertagmorgenName', {type: 'string'});
    createState('FeiertagNächsterDatum', {type: 'string'});
    createState('FeiertagnächsterName', {type: 'string'});
    
    var allHolidays = {"NW":{"20130329":"Karfreitag",
                             "20130331":"Ostersonntag",
    						 "20130401":"Ostermontag",
    						 "20130501":"1\. Mai",
    						 "20130509":"Christi Himmelfahrt",
    						 "20130519":"Pfingstsonntag",
    						 "20130520":"Pfingstmontag",
    						 "20130530":"Fronleichnam",
    						 "20131003":"Tag der deutschen Einheit",
    						 "20131101":"Allerheiligen",
    						 "20131225":"Erster Weihnachtsfeiertag",
    						 "20131226":"Zweiter Weihnachtsfeiertag",
    						 "20140101":"Neujahr",
    						 "20140418":"Karfreitag",
    						 "20140420":"Ostersonntag",
    						 "20140421":"Ostermontag",
    						 "20140501":"1\. Mai",
    						 "20140529":"Christi Himmelfahrt",
    						 "20140608":"Pfingstsonntag",
    						 "20140609":"Pfingstmontag",
    						 "20140619":"Fronleichnam",
    						 "20141003":"Tag der deutschen Einheit",
    						 "20141101":"Allerheiligen",
    						 "20141224":"hl. Abend",
    						 "20141225":"Erster Weihnachtsfeiertag",
    						 "20141226":"Zweiter Weihnachtsfeiertag",
    						 "20141231":"Sylvester",
    						 "20150101":"Neujahr",
    						 "20150403":"Karfreitag",
    						 "20150405":"Ostersonntag",
    						 "20150406":"Ostermontag",
    						 "20150501":"1\. Mai",
    						 "20150514":"Christi Himmelfahrt",
    						 "20150524":"Pfingstsonntag",
    						 "20150525":"Pfingstmontag",
    						 "20150604":"Fronleichnam",
    						 "20151003":"Tag der deutschen Einheit",
    						 "20151101":"Allerheiligen",
    						 "20151224":"hl. Abend",
    						 "20151225":"Erster Weihnachtsfeiertag",
    						 "20151226":"Zweiter Weihnachtsfeiertag",
    						 "20151231":"Sylvester",
    						 "20160101":"Neujahr",
    						 "20160325":"Karfreitag",
    						 "20160327":"Ostersonntag",
    						 "20160328":"Ostermontag",
    						 "20160501":"1\. Mai",
    						 "20160505":"Christi Himmelfahrt",
    						 "20160515":"Pfingstsonntag",
    						 "20160516":"Pfingstmontag",
    						 "20160526":"Fronleichnam",
    						 "20161003":"Tag der deutschen Einheit",
    						 "20161101":"Allerheiligen",
    						 "20161224":"hl. Abend",
    						 "20161225":"Erster Weihnachtsfeiertag",
    						 "20161226":"Zweiter Weihnachtsfeiertag",
    						 "20161231":"Sylvester",
    						 "20170101":"Neujahr",
    						 "20170414":"Karfreitag",
    						 "20170416":"Ostersonntag",
    						 "20170417":"Ostermontag",
    						 "20170501":"1\. Mai",
    						 "20170525":"Christi Himmelfahrt",
    						 "20170604":"Pfingstsonntag",
    						 "20170605":"Pfingstmontag",
    						 "20170615":"Fronleichnam",
    						 "20171003":"Tag der deutschen Einheit",
    						 "20171101":"Allerheiligen",
    						 "20171224":"hl. Abend",
    						 "20171225":"Erster Weihnachtsfeiertag",
    						 "20171226":"Zweiter Weihnachtsfeiertag",
    						 "20171231":"Sylvester",
    						 "20180101":"Neujahr",
    						 "20180330":"Karfreitag",
    						 "20180401":"Ostersonntag",
    						 "20180402":"Ostermontag",
    						 "20180501":"1\. Mai",
    						 "20180510":"Christi Himmelfahrt",
    						 "20180520":"Pfingstsonntag",
    						 "20180521":"Pfingstmontag",
    						 "20180531":"Fronleichnam",
    						 "20181003":"Tag der deutschen Einheit",
    						 "20181101":"Allerheiligen",
    						 "20181224":"hl. Abend",
    						 "20181225":"Erster Weihnachtsfeiertag",
    						 "20181226":"Zweiter Weihnachtsfeiertag",
    						 "20181231":"Sylvester",
    						 "20190101":"Neujahr",
    						 "20190419":"Karfreitag",
    						 "20190421":"Ostersonntag",
    						 "20190422":"Ostermontag",
    						 "20190501":"1\. Mai",
    						 "20190530":"Christi Himmelfahrt",
    						 "20190609":"Pfingstsonntag",
    						 "20190610":"Pfingstmontag",
    						 "20190620":"Fronleichnam",
    						 "20191003":"Tag der deutschen Einheit",
    						 "20191101":"Allerheiligen",
    						 "20191224":"hl. Abend",
    						 "20191225":"Erster Weihnachtsfeiertag",
    						 "20191226":"Zweiter Weihnachtsfeiertag",
    						 "20191231":"Sylvester"
    						 }}
    
    function checkHolidays() {
    
        var d0 = new Date();
        var d1 = new Date(d0.getTime() + 86400000);
        var d2 = new Date(d1.getTime() + 86400000);
    
        var ts0 = d0.getFullYear() + ("0" + (d0.getMonth() + 1)).slice(-2) + ("0" + d0.getDate()).slice(-2);
        var ts1 = d1.getFullYear() + ("0" + (d1.getMonth() + 1)).slice(-2) + ("0" + d1.getDate()).slice(-2);
        var ts2 = d2.getFullYear() + ("0" + (d2.getMonth() + 1)).slice(-2) + ("0" + d2.getDate()).slice(-2);
    
        var holiday0 = false;
        var holiday1 = false;
        var holiday2 = false;
    
        var holiday0name = "";
        var holiday1name = "";
        var holiday2name = "";
    
        var holidayNextDate = "";
        var holidayNextName = "";
    
        var holidays = allHolidays[state];
    
        if (holidays[ts0]) {
            holiday0 = true;
            holiday0name = holidays[ts0];
        }
    
        if (holidays[ts1]) {
            holiday1 = true;
            holiday1name = holidays[ts1];
        }
    
        if (holidays[ts2]) {
            holiday2 = true;
            holiday2name = holidays[ts2];
        }
    
        for (var ts in holidays) {
            if (ts > ts0) {
                holidayNextDate = ts.substr(0,4)+"-"+ts.substr(4,2)+"-"+ts.substr(6,2);
                holidayNextName = holidays[ts];
                break;
            }
        }
        setState("FeiertagHeute", holiday0);
        setState("FeiertagHeuteName", holiday0name);
        setState("FeiertagMorgen", holiday1);
        setState("FeiertagmorgenName", holiday1name);
        setState("FeiertagNächsterDatum", holidayNextDate);
        setState("FeiertagnächsterName", holidayNextName);
    
    }
    
    // Einmal bei Scriptstart ausführen
    checkHolidays();
    
    // Täglich um 0 Uhr ausführen
    schedule("0 0 * * *", checkHolidays);
    
    

    144_img_20170428_083339.jpg

    Gruss Hermann

    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hier die Variante für BAYERN.

      Habe das auch aus hobbyquakers CCU.IO Skript übernommen und die alten Feiertage und andere Bundesländer gelöscht.

      Im Vergleich zu htreckslers Variante oben werden die Objekte in einen Ordner Feiertage/ gelegt und mit einem deutschen Datumsformat gespeichert.

      ! ````
      /* System Feiertage
      ! Skript meldet Feiertage bis 2019
      // 3'2014 hobbyquaker
      // angepasst von Pix 2/2015 (Umrechnung deutsches Datum)
      // Liste der Abkürzungen siehe http://hobbyquaker.blogspot.de/2014/03/deutsche-feiertage-im-json-format.html
      OptIn Variablen werden angelegt
      ! erstellt: 03.05.2015 von Pix
      30.05.2015 Feiertag Variablen Unterkategorie erstellt
      /
      ! // Variablen erstellen
      createState('Feiertag.heute'/
      , {name: 'Feiertag heute'}/);
      createState('Feiertag.heute_Name'/
      , {name: 'Feiertag heute Name'}/);
      createState('Feiertag.morgen'/
      , {name: 'Feiertag morgen'}/);
      createState('Feiertag.morgen_Name'/
      , {name: 'Feiertag morgen Name'}/);
      createState('Feiertag.uebermorgen'/
      , {name: 'Feiertag übermorgen'}/);
      createState('Feiertag.uebermorgen_Name'/
      , {name: 'Feiertag übermorgen Name'}/);
      createState('Feiertag.naechster_Datum'/
      , {name: 'Feiertag nächster Datum'}/);
      createState('Feiertag.naechster_Name'/
      , {name: 'Feiertag nächster Name'}*/);
      ! var idFeiertag_heute = "javascript.0.Feiertag.heute"/Feiertag.heute/,
      idFeiertag_heute_Name = "javascript.0.Feiertag.heute_Name"/Feiertag.heute_Name/,
      idFeiertag_morgen = "javascript.0.Feiertag.morgen"/Feiertag.morgen/,
      idFeiertag_morgen_Name = "javascript.0.Feiertag.morgen_Name"/Feiertag.morgen_Name/,
      idFeiertag_uebermorgen = "javascript.0.Feiertag.uebermorgen"/Feiertag.uebermorgen/,
      idFeiertag_uebermorgen_Name = "javascript.0.Feiertag.uebermorgen_Name"/Feiertag.uebermorgen_Name/,
      idFeiertag_naechster_Datum = "javascript.0.Feiertag.naechster_Datum"/Feiertag.naechster_Datum/,
      idFeiertag_naechster_Name = "javascript.0.Feiertag.naechster_Name"/Feiertag.naechster_Name/;
      ! var state = "BY";
      // Nur bayerische Feiertag, Rest gelöscht
      var allHolidays = {"BY":{"20150101":"Neujahr","20150106":"Heilige Drei Könige","20150403":"Karfreitag","20150405":"Ostersonntag","20150406":"Ostermontag","20150501":"1. Mai","20150514":"Christi Himmelfahrt","20150524":"Pfingstsonntag","20150525":"Pfingstmontag","20150604":"Fronleichnam","20151003":"Tag der deutschen Einheit","20151101":"Allerheiligen","20151225":"Erster Weihnachtsfeiertag","20151226":"Zweiter Weihnachtsfeiertag","20160101":"Neujahr","20160106":"Heilige Drei Könige","20160325":"Karfreitag","20160327":"Ostersonntag","20160328":"Ostermontag","20160501":"1. Mai","20160505":"Christi Himmelfahrt","20160515":"Pfingstsonntag","20160516":"Pfingstmontag","20160526":"Fronleichnam","20161003":"Tag der deutschen Einheit","20161101":"Allerheiligen","20161225":"Erster Weihnachtsfeiertag","20161226":"Zweiter Weihnachtsfeiertag","20170101":"Neujahr","20170106":"Heilige Drei Könige","20170414":"Karfreitag","20170416":"Ostersonntag","20170417":"Ostermontag","20170501":"1. Mai","20170525":"Christi Himmelfahrt","20170604":"Pfingstsonntag","20170605":"Pfingstmontag","20170615":"Fronleichnam","20171003":"Tag der deutschen Einheit","20171101":"Allerheiligen","20171225":"Erster Weihnachtsfeiertag","20171226":"Zweiter Weihnachtsfeiertag","20180101":"Neujahr","20180106":"Heilige Drei Könige","20180330":"Karfreitag","20180401":"Ostersonntag","20180402":"Ostermontag","20180501":"1. Mai","20180510":"Christi Himmelfahrt","20180520":"Pfingstsonntag","20180521":"Pfingstmontag","20180531":"Fronleichnam","20181003":"Tag der deutschen Einheit","20181101":"Allerheiligen","20181225":"Erster Weihnachtsfeiertag","20181226":"Zweiter Weihnachtsfeiertag","20190101":"Neujahr","20190106":"Heilige Drei Könige","20190419":"Karfreitag","20190421":"Ostersonntag","20190422":"Ostermontag","20190501":"1. Mai","20190530":"Christi Himmelfahrt","20190609":"Pfingstsonntag","20190610":"Pfingstmontag","20190620":"Fronleichnam","20191003":"Tag der deutschen Einheit","20191101":"Allerheiligen","20191225":"Erster Weihnachtsfeiertag","20191226":"Zweiter Weihnachtsfeiertag"}};
      ! function checkHolidays() {
      ! var d0 = new Date();
      var d1 = new Date(d0.getTime() + 86400000);
      var d2 = new Date(d1.getTime() + 86400000);
      ! var ts0 = d0.getFullYear() + ("0" + (d0.getMonth() + 1)).slice(-2) + ("0" + d0.getDate()).slice(-2);
      var ts1 = d1.getFullYear() + ("0" + (d1.getMonth() + 1)).slice(-2) + ("0" + d1.getDate()).slice(-2);
      var ts2 = d2.getFullYear() + ("0" + (d2.getMonth() + 1)).slice(-2) + ("0" + d2.getDate()).slice(-2);
      ! var holiday0 = false;
      var holiday1 = false;
      var holiday2 = false;
      ! var holiday0name = "";
      var holiday1name = "";
      var holiday2name = "";
      ! var holidayNextDate = "";
      var holidayNextName = "";
      ! var holidays = allHolidays[state];
      ! if (holidays[ts0]) {
      holiday0 = true;
      holiday0name = holidays[ts0];
      }
      ! if (holidays[ts1]) {
      holiday1 = true;
      holiday1name = holidays[ts1];
      }
      ! if (holidays[ts2]) {
      holiday2 = true;
      holiday2name = holidays[ts2];
      }
      ! for (var ts in holidays) {
      if (ts > ts0) {
      holidayNextDate = ts.substr(0,4)+"-"+ts.substr(4,2)+"-"+ts.substr(6,2);
      var y = holidayNextDate.split('-'); // Umrechnung in deutsches Format
      holidayNextDate = y[2] + '.' + y[1] + '.' + y[0];
      holidayNextName = holidays[ts];
      break;
      }
      }
      ! setState(idFeiertag_heute, holiday0);
      setState(idFeiertag_heute_Name, holiday0name);
      setState(idFeiertag_morgen, holiday1);
      setState(idFeiertag_morgen_Name, holiday1name);
      setState(idFeiertag_uebermorgen, holiday2);
      setState(idFeiertag_uebermorgen_Name, holiday2name);
      setState(idFeiertag_naechster_Datum, holidayNextDate);
      setState(idFeiertag_naechster_Name, holidayNextName);

      log('Feiertag Skript ausgeführt');
      

      }

      ! // Einmal bei Scriptstart ausführen
      checkHolidays();
      ! // Täglich um 0 Uhr ausführen
      schedule("0 0 * * *", checkHolidays);
      ! ````
      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #3

        Danke pix,

        ist schon auf der Website.

        Aber gab es da nicht ein Skript, dass die Feiertage immerwährend nach http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel berechnete.

        und das alles auch für alle Bundesländer?

        EDIT: ich glaube ich hab da was gefunden: http://homematic-forum.de/forum/viewtop … =31&t=4058

        und wie es sich für Feiertage gehört heisst der Urheber Petrus :mrgreen:

        Gruß

        Rainer

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        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

        893

        Online

        32.4k

        Benutzer

        81.5k

        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