Ist nichts aufwendiges aber nützlich. In Abhängigkeit der Schulferien/Feiertage setze ich in meinem System für die Kinder- und das Schlafzimmer einen Ferienmodus der die Rolläden erst später hoch fährt, den Wecker abschaltet usw.
Bei den Feiertagen hatte ich über das Astroskript bereits eine Automatik implementiert, bei den Schulferien erledigt dies nun dieses kleine Skript welches einmal täglich nachts aufgerufen wird:
<?
/*
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")-1;
$link = "http://www.schulferien.org/iCal/Ferien/icals/Ferien_Bayern_".$jahr.".ics";
$meldungvj = file($link);
$jahr = date("Y");
$link = "http://www.schulferien.org/iCal/Ferien/icals/Ferien_Bayern_".$jahr.".ics";
$meldungakt = file($link);
$meldung = array_merge($meldungvj, $meldungakt);
$ferien = "Keine Ferien";
$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 = trim(date("Ymd"));
if ($jetzt >= $start and $jetzt <= $ende or $jetzt == $ende)
{
$ferien = $name;
}
}
}
if ($ferien == "Keine Ferien") // Flag für Ferienmodus setzten
{
SetValueBoolean(12345, false);
}
else
{
SetValueBoolean(12345, true);
}
?>
Damit entfällt die lästige manuelle Umstellung nun komplett.
So unwahrscheinlich eine kurzfristige (!) Änderung an der Website einer Behörde auch sein mag - hätte ja sein können, dass die da etwas geändert haben.
Hallo,
ich versuche das Script aus #1 zu benutzen, aber es funktioniert irgendwie nicht. Ich habe „SetValueBoolean“ durch
„ModBus_WriteCoil“ ersetzt und die ObjektID angepasst um auf meine WAGO zu schreiben. Es geht aber leider nicht.
Wenn ich in Zeile 32 (false) und 36 (true) tausche, schreibt er mir ein true in die WAGO.
Bei uns in Sachsen-Anhalt sind aber heute Ferien, also sollte ohne false und tru zu tauschen ein true in der WAGO stehen.
Ich habe den Eindruck das die Auswertung von http://www.schulferien.org
sich geändert hat.
Hallo kronos,
der echo Befehl sagt mir „keine Ferien“. Ansonsten erhalte ich keine Fehlermeldungen.
Hast Du einen Timer laufen, oder wie oft wird die Seite Schulferien.org abgefragt?
Ich habe auf 1x täglich 00:10 Uhr gestellt.
Ich habe mal die *.ics Datei angehangen, ich glaube da stehen für jetzt keine Ferien drinnen, weil diese schon im Dezember 2015 angefangen haben.Ferien_Sachsen_Anhalt_2016.ics.txt (2.04 KB)
MfG
Kleine Änderung am Skript in Post #1. Sollte so jetzt wieder funktionieren.
Die Datenquelle scheint ab diesem Jahr der Ansicht zu sein, dass die Weihnachtferien 2015-2016 nur noch im Kalender von 2015 aufzutauchen haben. Damit sind sie in 2016 nicht mehr auf dem Radar. Also lese ich jetzt zwei Jahrgänge aus - damit sind Sie wieder mit drin.
Hast Du einen Timer laufen, oder wie oft wird die Seite Schulferien.org abgefragt?
Ich frage die Seite einmal täglich um 2 Uhr nachts ab.
Funktionierte bei mir übrigens ungemerkt der Änderung tadellos (da in THR schon am 4.1. Schulanfang war)… hatte mir dadurch einige Handarbeit, durch selbst Termine eintragen, gespart.
Danke dir dafür nochmals nachträglich für die geniale Script-Idee auf die ich erst viel später aufmerksam wurde.
Hallo,
also soweit geht das Script ja nun, nur das es falsche Ferien anzeigt. Siehe Anhang1.
Wenn ich -1 in „$anzahl = (count($meldung)-1)“ in Zeile 18 ändere auf -59 dann stimmt alles.
Wenn -1 dort steht sagt mir „echo“ „Weihnachtsferien 2016“
Die Server Zeit und Datum ist aktuell, habe ich überprüft.
Auch ist die letzte or Bedingung überflüssig. Sie ist bereits in „<=“ enthalten.
Statt ‚and‘ und ‚or‘ sollte auch besser ‚&&‘ und ‚||‘ verwendet werden.