+ Antworten
Seite 2 von 2 ErsteErste 1 2
Ergebnis 11 bis 15 von 15
  1. #11
    Registriert seit
    Jun 2011
    Ort
    Thüringen
    Beiträge
    1,139

    Hi Bayaro,

    Mix aus Feiertag und Ferien.

    Ferien:
    PHP-Code:
    <?

    /*
    Dieses Skript ermittelt über die Webseite von www.schulferien.org ob aktuell Ferien sind.
    Die Anpassung für die einzelnen Bundesländer ist denkbar einfach. Einfach unter http://www.schulferien.org/iCal/
    den passenden Kalender suchen und den Link kopieren. Die Anpassung der Jahreszahl bitte beachten, diese
    passt sich automatisch an und muss im Link entsprechend entfernt werden.
    */

    $jahr     date("Y");
    $tag      date("d");
    $monat      date("m");
    if ((
    $tag<&& $monat==1)) $jahr=$jahr-1;    //Korrektur z.B. der 2.Januar gehört noch zum ical-Kalender des Vorjahres
    $link     "http://www.schulferien.org/iCal/Ferien/icals/Ferien_Thueringen_".$jahr.".ics";
    $ferien   "Keine Ferien";
    $meldung  file($link);
    $anzahl   = (count($meldung)-1);

    for (
    $count 0$count $anzahl$count++)
    {
        if (
    strstr($meldung[$count], "SUMMARY:")) {
           
    $name  trim(substr($meldung[$count],8));
           
    $start trim(substr($meldung[$count+1],19));
           
    $ende  trim(substr($meldung[$count+2],17));
            
    $jetzt date("Ymd")."\n";
            
    /*$jetzt= 20140217;   //zum Test ein Feriendatum
            echo $jetzt;*/
            
    if ($jetzt >= $start and $jetzt <= $ende)
            {
               
    $ferien $name;
            }
       }
    }

    if (
    $ferien == "Keine Ferien")  // Flag für Ferienmodus setzten
    {
        
    SetValueBoolean(18526 /*[Tools, Service\An/Abwesend Feiertage Ferien\Schulferien\Ferien in Thüringen]*/false);
    }
    else
    {
        
    SetValueBoolean(18526 /*[Tools, Service\An/Abwesend Feiertage Ferien\Schulferien\Ferien in Thüringen]*/true);
    }

    ?>
    Feiertag:

    PHP-Code:
     <?
    /*
    ***********************************************************
    Berechnet den freie Tage, Feiertage
    und setzt die Variablen
    ***********************************************************
    */
    //Aktuelles Datum (Format "JJJJMMTT")
    $today date ("md");                                                        // aktueller Tag
    $todayy date ("Ymd");                                                      // aktuelles Datum
    $year date ("Y");                                                          // aktuelles Jahr
    //
    //
    $schulfrei1 "20080502";                                                    // schulfreier Tag #1
    $schulfrei2 "20080502";                                                    // schulfreier Tag #2
    $schulfrei3 "20080502";                                                    // schulfreier Tag #3
    //
    // *** Wochentag setzen (Sonntag = 7, Montag = 1) ***
    $wday date("w");
    $wday1 = array("7","1","2","3","4","5","6");
    $wday2 = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
    echo 
    "Heute ist Wochentag "$wday1[$wday], " ($wday2[$wday])","\r\n";
    //SetValueString(24833 /*[Objekt #24833 existiert nicht]*/  , $wday1[$wday]);
    //SetValueString(53384 /*[Objekt #53384 existiert nicht]*/ , $wday2[$wday]);

    // *** Tag des Jahres setzen ***
    //SetValueString(46827 /*[Fenster+Türen\Haustür-Raspberry-IPS\LifeBit\LifeBit\ÜberprüfungAktualisierungszeit_besser_kein_Reboot_da_5Volt_sehr_knapp\]*/ , date("z"));

    // *** Kalenderwoche setzen ***
    //SetValueString(14535 /*[Objekt #14535 existiert nicht]*/ , date("W"));


    // *** bewegliche Feiertage ***
    if ( ($today == strftime("%m%d",(easter_date() - 86400)))                   // Karfreitag
    //or ($today == "0512")                                                           // Test-Tag (aktuellen Tag eintragen zum Funktionstest)
    or ($today == strftime("%m%d",(easter_date() )))                                // Ostersonntag
    or ($today == strftime("%m%d",(easter_date() + 86400)))                     // Ostermontag
    or ($today == strftime("%m%d",(easter_date() + 39 86400)))                    // Christi Himmelfahrt
    or ($today == strftime("%m%d",(easter_date() + 49 86400)))                    // Pfingstsonntag
    or ($today == strftime("%m%d",(easter_date() + 50 86400)))                    // Pfingstmontag
    //or ($today == strftime("%m%d",(easter_date() + 60 * 86400)))                    // Fronleichnam
    //or (($wochentag == 3) and ($today >= "1116") and ($today <= "1122"))            // Buß u. Bettag

    // *** feste Feiertage ***
    or ($today == "0101")                                                           // Neujahr
    or ($today == "0106")                                                           // Heilige Drei Könige
    or ($today == "0501")                                                           // 1. Mai
    or ($today == "1003")                                                           // Tag der dt. Einheit
    or ($today == "1031")                                                           // Reformationstag
    //or ($today == "1101")                                                           // Allerheiligen
    or ($today == "1225")                                                           // 1. Weihnachtsfeiertag
    or ($today == "1226")                                                           // 2. Weihnachtsfeiertag
    // *** freie Tage ***
    or ($today == "1224")                                                           // Heiliger Abend
    or ($today == "1231")                                                           // Silvester
    // ***schulfreie Tage***
    or ($todayy == $schulfrei1)                                                     // schulfreier Tag #1
    or ($todayy == $schulfrei2)                                                     // schulfreier Tag #2
    or ($todayy == $schulfrei3)                                                     // schulfreier Tag #3
    )


    // *** "Freier Tag"-Variable setzen ***
       
    {
       
    SetValueBoolean(45788 /*[Tools, Service\An/Abwesend Feiertage Ferien\An-/Abwesend - Funktion\Freier Tag]*/ true);                          // Es ist ein freier Tag

    //   echo "Heute sind  ein schulfreier Tag, ein freier Tag oder ein Feiertag. ","\r\n";
       
    }
       else
       {
       
    SetValueBoolean(45788 /*[Tools, Service\An/Abwesend Feiertage Ferien\An-/Abwesend - Funktion\Freier Tag]*/ false);                         // Es ist kein freier Tag

    //   echo "Heute sind kein schulfreier Tag, kein freier Tag und kein Feiertag. ","\r\n";
       
    }


    // 1. Advent berechnen - Weihnachtsbeleuchtung 2 Tag(e) vorher einschalten
    $adventbel date("md",mktime(0,0,0,11,(26+(7-date("w",mktime(0,0,0,11,26,$year))))))-2;
    $advent date("d.m.Y",mktime(0,0,0,11,(26+(7-date("w",mktime(0,0,0,11,26,$year))))));
    if (
    $adventbel == "1200"$adventbel "1130";
    if (
    $adventbel == "1199"$adventbel "1129";
    if (
    $adventbel == "1198"$adventbel "1128";
    if (
    $adventbel == "1197"$adventbel "1127";
    if (
    $adventbel == "1196"$adventbel "1126";
    if (
    $adventbel == "1195"$adventbel "1125";
    //echo "1. Advent ist am ", $advent, "\r\n";
    /*
    if ( ( ("$today") >= ("$adventbel")                                             // ab dann einschalten
    or ("$today") <= ("0105") ) )                                                   // bis 5.Januar einschalten
       {
       SetValueBoolean(ID , true);
    //      echo "Es ist Adventszeit und die Weihnachtsbeleuchtung wird eingeschaltet.","\r\n";
       }
       else
       {
       SetValueBoolean(ID , false);
    //      echo "Es ist keine Adventszeit und die Weihnachtsbeleuchtung wird nicht eingeschaltet.","\r\n";
       }
    */
    ?>
    Habe ich alles hier aus dem Forum .......

    herbertf
    IPS 5.x (beta) auf W10x64 in Hyper-V von W2016, FHZ1300, WDE-01, Homematic-CCU2, VISION-Z-WAVE-Stick alles über Silex-SX3000GB, 2*RaZberry,FHT80x, FS20 BidCos-RM, 19*FIBARO-Roller Shutter (V1+2), 15*Fibaro(-Dimmer, -Sensoren, -Switche), 7*Raspberry-PI2 ü. JSON-RPC, 3 VISION-Bewegungsmelder, 2 AEON-Multisensor, Homematic-Aktoren,15*Plugwise, 6 PhilioSensoren,

  2. #12
    Registriert seit
    Jan 2010
    Ort
    Regau, Österreich
    Beiträge
    370

    Hier wär mal eine Variante wo man keine Seite aus dem Internet braucht. PHP liefert ja eh alles *g*

    mal schnell aus dem Internet zusammengeklopft und für Oberösterreich angepasst, sollte aber funktionieren
    PHP-Code:
    <?
    $jahr 
    date('Y');
    $ostersonntag date('Y-m-d',easter_date($jahr));
    $ostermontag date('Y-m-d',easter_date($jahr)+60*60*24*1);
    $himmelfahrt date('Y-m-d',easter_date($jahr)+60*60*24*39); // 39 Tage nach Ostersonntag
    $pfingstsonntag date('Y-m-d',easter_date($jahr)+60*60*24*49); // 49 Tage nach Ostersonntag
    $pfingstmontag date('Y-m-d',easter_date($jahr)+60*60*24*50);
    $fronleichnam date('Y-m-d',easter_date($jahr)+60*60*24*60); // 2. Donnerstag nach Ostersonntag
    $arr_feiertage[$jahr.'-01-01']    = 'Neujahr';
    $arr_feiertage[$jahr.'-01-06']    = 'Hl. 3 Könige';
    $arr_feiertage[$ostersonntag]        = 'Ostersonntag';
    $arr_feiertage[$ostermontag]        = 'Ostermontag';
    $arr_feiertage[$jahr.'-05-01']    = 'Staatsfeiertag';
    $arr_feiertage[$jahr.'-05-04']    = 'St. Florian (Schulfrei)';
    $arr_feiertage[$himmelfahrt]        = 'Christi Himmelfahrt';
    $arr_feiertage[$pfingstsonntag]    = 'Pfingstsonntag';
    $arr_feiertage[$pfingstmontag]    = 'Pfingstmontag';
    $arr_feiertage[$fronleichnam]        = 'Fronleichnam';
    $arr_feiertage[$jahr.'-08-15']    = 'Maria Himmelfahrt';
    $arr_feiertage[$jahr.'-10-26']    = 'Nationalfeiertag';
    $arr_feiertage[$jahr.'-11-01']    = 'Allerheiligen';
    $arr_feiertage[$jahr.'-12-08']    = 'Maria Empfängnis';
    $arr_feiertage[$jahr.'-12-25']    = 'Christtag';
    $arr_feiertage[$jahr.'-12-26']    = 'Stefanitag';

    $today date('Y-m-d');
    if(
    array_key_exists($today$arr_feiertage)) {
        echo 
    "heute ist: ".$arr_feiertage[$today];
    } else {
        echo 
    "heute ist kein Feiertag!";}
    ?>
    lg,
    Christian.

  3. #13
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,073

    Herzlichen Dank an euch beide, genau sowas habe ich mir vorgestellt. Hab gar nicht an PHP selbst gedacht

    Dann werde ich das auch mal bei mir integrieren, will eh meine Heizungssteuerung umbauen, da bietet sich das ja an

    Danke und Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Horoskop, HostMonitor, IPSInformations, Muellabfuhr, PJLink, RSS, TankerkoenigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  4. #14
    Registriert seit
    Nov 2018
    Beiträge
    1

    Hallo, bin neu hier und hab grad eben die Visu aufgesetzt. Benutze sie mit KNX und hab alles soweit hinbekommen wie ich es mir vorgestellt habe. Was mir noch fehlt oder ich nicht gefunden habe, ist eine Feiertagsschaltung die mir die Wochenschaltuhrbefehle überschreibt/sperrt. Gibt es da mittlerweile ein Funktionsmodul oder muss das immer noch mit PHP gemacht werden?

    Danke+Gruß
    holymoly

  5. #15
    Registriert seit
    Nov 2016
    Beiträge
    171

    Da viele inzwischen eine Bool-Variable pflegen, die anzeigt, ob ein Wochentag ein Feiertag ist, fände ich es ebenfalls sehr hilfreich, wenn man im Wochenplan die ID der Feiertags-Bool-Variablen eintragen könnte und dies mitberücksichtigt würde, indem der Wochentag bei Feiertags-Bool auf true als Sonntag behandelt wird.

    @paresy oder Dr. Niels: Wäre dies nicht mit geringem Aufwand umsetzbar? Dann würde man sich die doppelte Wochenplan-Pflege endlich sparen können... Vielleicht haben wir an Weihnachten ja schon die Gelegenheit, das zu testen...

    Danke und viele Grüße!
    Geändert von CarnivoreD (05.12.18 um 16:32 Uhr)

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 31.03.15, 15:14
  2. Wochenplan LCN
    Von Karl im Forum KNX/EIB, LCN
    Antworten: 4
    Letzter Beitrag: 27.01.15, 20:04
  3. Timer/Wochenplan von IPS an Wago...
    Von DeejayT im Forum SPS Automatisierungstechnik
    Antworten: 4
    Letzter Beitrag: 31.10.14, 12:28