Feiertage für den LMAIR

Antworten
Wahl-HHer
Beiträge: 47
Registriert: Mo 5. Okt 2020, 17:15

Mo 18. Jan 2021, 00:01

Ich habe im Forum nichts zu dem Thema gefunden, deshalb wollte ich hier mal meine Lösung vorstellen, wie ich dem LMAir "sage" ob heute oder morgen ein Feiertag ist. Vielleicht kann es ja jemand gebrauchen. Das sind übrigens die Feiertage für Hamburg, aber das Script lässt sich leicht für die eigenen Zwecke anpassen. ;)

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 

?>
Ich trigger mit dem Script Szenen die Marker setzen. Man kann natürlich auch die Marker direkt setzen, aber dann blinkt jedesmal die LED auf.
Antworten