Einzige Vorraussetzung ist ein Webserver (z.B. NAS oder Raspberry) mit php.
Code: Alles auswählen
<?php
$tag= 24*60*60; // 24h*60min*60sec
$easter=easter_date(); // Datum von Ostersontag des aktuellen Jahres als int
$thisyear=date("Y"); //Das aktuelle Jahr
$heute= date("d.m.Y"); // Das Datum des aktuellen Tages im Format Tag(zweistellig).Monat(zweistellig).Jahr(vierstellig)
$morgen=date("d.m.Y", (strtotime(" + 1 day"))); // Das Datum des nächsten Tages im Format Tag(zweistellig).Monat(zweistellig).Jahr(vierstellig)
// ab hier Berechnng der Feiertage
$neujahr= date("d.m.Y", (mktime(0,0,0,1,1,$thisyear)));
$ostersonntag = date("d.m.Y", $easter);
$karfreitag = date("d.m.Y", ($easter - (2*$tag)));
$ostermontag= date("d.m.Y", ($easter + (1*$tag)));
$tagderarbeit= date("d.m.Y", (mktime(0,0,0,5,1,$thisyear)));
$himmelfahrt= date("d.m.Y", ($easter+(39*$tag)));
$pfingstsonntag= date("d.m.Y", ($easter + (49*$tag)));
$pfingstmontag= date("d.m.Y", ($easter + (50*$tag)));
$tagdereinheit= date("d.m.Y", (mktime(0,0,0,10,3,$thisyear)));
$reformationstag= date("d.m.Y", (mktime(0,0,0,10,31,$thisyear)));
$heiligabend= date("d.m.Y", (mktime(0,0,0,12,24,$thisyear)));
$weihnachtstag1= date("d.m.Y", (mktime(0,0,0,12,25,$thisyear)));
$weihnachtstag2= date("d.m.Y", (mktime(0,0,0,12,26,$thisyear)));
$silvester= date("d.m.Y", (mktime(0,0,0,12,31,$thisyear)));
// berechnete Feiertage werden zum Array $feiertage hinzugefügt
$feiertage["Neujahr"]=$neujahr;
$feiertage["Karfreitag"]=$karfreitag;
$feiertage["Ostersonntag"]=$ostersonntag;
$feiertage["Ostermontag"]=$ostermontag;
$feiertage["Christi Himmelfahrt"]=$himmelfahrt;
$feiertage["Pfingstsonntag"]=$pfingstsonntag;
$feiertage["Pfingstmontag"]=$pfingstmontag;
$feiertage["Tag der deutschen Einheit"]=$tagdereinheit;
$feiertage["Reformationstag"]=$reformationstag;
$feiertage["Heilig Abend"]=$heiligabend;
$feiertage["1. Weihnachtsfeiertag"]=$weihnachtstag1;
$feiertage["2. Weihnachtsfeiertag"]=$weihnachtstag2;
$feiertage["Silvester"]=$silvester;
// Angaben zum lightmanager
$lightmanager_ip = "123.123.123.123"; // IP-Adresse oder Netbios-Name vom lightmanager
$feiertag="10"; // Nummer der Szene anpassen
$keinfeiertag="11"; // Nummer der Szene anpassen
$morgenfeiertag="12"; // Nummer der Szene anpassen
$morgenkeinfeiertag="13"; // Nummer der Szene anpassen
if(in_array($heute, $feiertage)){ // Prüft ob "$heute" in Array "$feiertage" enthalten ist
file_get_contents("http://" . lightmanager_ip . "/control?scene=" . $feiertag ); // Webhook $Feiertag wird ausgeführt wenn $heute in $feiertage enthalten ist
} else file_get_contents("http://" . lightmanager_ip . "/control?scene=" . $keinfeiertag ); // Webhook $keinFeiertag wird ausgeführt wenn $heute nicht in $feiertage enthalten ist
if(in_array($morgen, $feiertage)){ // Prüft ob "$morgen" in Array "$feiertage" enthalten ist
file_get_contents("http://" . lightmanager_ip . "/control?scene=" . $morgenfeiertag ); // Webhook $morgenFeiertag wird ausgeführt wenn $morgen in $feiertage enthalten ist
} else file_get_contents("http://" . lightmanager_ip . "/control?scene=" . $morgenkeinfeiertag ); // Webhook $morgenkeinFeiertag wird ausgeführt wenn $morgen nicht in $feiertage enthalten ist
?>