Dieses Modul bietet jährliche Kalenderinformationen wie Feiertage, Schulferien und Festtage.
Außerdem werden Informationen wie Arbeitstage im Monat, Schaltjahr, Jahreszeit oder ob Wochenende ist aktuell gehalten.
Darüber hinaus kann man Geburtstage, Hochzeitstage und Todestage verwalten und sich täglich informieren lassen.
Auch verschiedene astronomische Daten wie Mond- und Sonnenfinsternis oder die Daten der Mondphasen (Neumond, zunehmenden Mond, Vollmond und abnehmenden Mond) werden bereitgestellt.
Ein Zitat des Tages rundet die Funktionalität des Modules ab.
- Funktionsumfang
- Voraussetzungen
- Installation
- Einrichten der Instanzen in IP-Symcon
- Statusvariablen und Profile
- WebFront
- PHP-Befehlsreferenz
- Versionshistorie
Das Modul nutzt eine eigens entwickelte JSON-API (CDN basierend) um die Daten für Feiertage und Schulferien
in Deutschland, Österreich und der Schweiz bereitzustellen.
Derzeit unterstützt das Modul auch eine Vielzahl verschiedenster religiöser und weltlicher Festtage (z.B. Valentinstag oder Kindertag).
Als Gedächtnisstütze können die jährlichen Geburtstage, Hochzeitstage aber auch Todestage verwaltet werden und man
kann sich täglich informieren lassen ob ein Termin ansteht (Meldungsverwaltung oder via Webfront-Notification).
Darüber hinaus werden mittels der PHP Funktion "date" verschiedene Informationen für das aktuelle Datum ermittelt.
In Kombination mit den ermittelten Feiertagen werden auch die Arbeitstage im aktuellen Monat bereitgestellt.
Spezielle astronomische Ereignisse wie Mond- oder Sonnenfinsternis und das Datum der 4 verschiedenen Mondphasen für das nächste Datum wird ermittelt.
Aber auch ein "Zitat des Tages" kann abgerufen werden.
Folgende Informationen werden ermittelt:
- Sind Ferien und welche
- Feiertag oder nicht und wie heißt er
- Festag oder nicht und wie heißt er
- Hat jemand Geburtstag, Hochzeitstag oder Todestag
- Der Tag des Jahres
- Anzahl Tage im Monat
- Arbeitstage im Monat
- Schaltjahr oder nicht
- Sommerzeit oder nicht
- Wochenende oder nicht
- Nummer der Kalenderwoche
- Wochentag (ISO-8601)
- Jahreszeit (Frühling, Sommer, Herbst und Winter)
- Ist eine Mond- oder Sonnenfinsternis
- Tritt eine Mondphasen (Neumond, zunehmenden Mond, Vollmond oder abnehmenden Mond) ein
- Zitat des Tages (Spruch und Autor)
All diese Information können auch über die Methode ALMANAC_DateInfo als Array abgeholt werden.
Folgende Informationen stehen als key => value Paare zur Verfügung:
Index | Typ | Beschreibung |
---|---|---|
IsSummer | bool | TRUE, wenn Sommerzeit ist |
IsLeapYear | bool | TRUE, wenn Schaltjahr ist |
IsWeekend | bool | TRUE, wenn Wochenende ist (SA-SO) |
Weekday | int | Wochentag (1=Montag ... 7=Sonntag) |
WeekNumber | int | Kalenderwochennummer |
DaysInMonth | int | Anzahl Tage im Monat |
DayOfYear | int | Tag im Jahr (1-366) |
DayLong | string | Tagesdatum (langes Format, z.B.: Montag, 1.Januar 1970) |
Season | string | Name der Jahreszeit ("Spring", "Summer", "Fall" oder "Winter") |
Festive | string | Name des Festtags, oder "Kein Festtag" |
IsFestive | bool | TRUE, wenn Festtag ist |
WorkingDays | int | Arbeitstage im Monat |
Holiday | string | Name des Feiertags, oder "Kein Feiertag" |
IsHoliday | bool | TRUE, wenn Feiertag ist |
Vacation | string | Name der Schulferien, oder "Keine Ferien" |
IsVacation | bool | TRUE, wenn Schulferienzeit ist |
IsBirthday | bool | TRUE, wenn Geburtstag(e) ansteht |
Birthday | array | LEER, oder Feld mit Datum, Jahrestag und Name |
IsWeddingday | bool | TRUE, wenn Hochzeitstag(e) ansteht |
Weddingday | array | LEER, oder Feld mit Datum, Jahrestag und Name |
IsDeathday | bool | TRUE, wenn Todestag(e) ansteht |
Deathday | array | LEER, oder Feld mit Datum, Jahrestag und Name |
IsEclipse | bool | TRUE, wenn Mond- oder Sonnenfinsternis ist |
Eclipse | array | Feld mit Name, Datum, Uhrzeit des nächsten Ereignisses (LEER, wenn im aktuellen Jahr kein Ereignis mehr ist) |
IsMoonphase | bool | TRUE, wenn Mondphase ist |
Moonphase | array | Feld mit Name, Datum, Uhrzeit des nächsten Ereignisses (LEER, wenn im aktuellen Jahr kein Ereignis mehr ist) |
QuoteOfTheDay | array | Feld mit Zitat und Autor |
- IP-Symcon ab Version 6.4
- Über den Modul Store das Modul Almanac installieren.
- Alternativ Über das Modul-Control folgende URL hinzufügen.
https://github.com/Wilkware/IPSymconAlmanac
odergit://github.com/Wilkware/IPSymconAlmanac.git
- Unter "Instanz hinzufügen" ist das 'Almanac'-Modul (Alias: Jahreskalender, Almanach) unter dem Hersteller '(Sonstige)' aufgeführt.
Konfigurationsseite:
Einstellungsbereich:
Feiertage ...
Name | Beschreibung |
---|---|
Land | Auswahl des Landes (Deutschland, Österreich und Schweiz). |
Bundesland | Auswahl des Bundeslandes/Karton für welchen man die Feiertage ermittelt haben möchte. |
Schulferien ...
Name | Beschreibung |
---|---|
Land | Auswahl des Landes (Deutschland, Österreich und Schweiz). |
Bundesland | Auswahl des Bundeslandes/Karton für welchen man die Schulferien ermittelt haben möchte. |
Schulen | Derzeit nur für die Schweiz entscheidend, Auswahl der gewünschten Schule im Kanton. |
Geburtstage ...
Name | Beschreibung |
---|---|
Termine | Eingabe des Geburtstermins (Tag.Monat.Jahr) und den dazugehörigen Namen |
Nachricht ans Webfront senden | Auswahl ob Push-Nachricht gesendet werden soll oder nicht (Ja/Nein) |
Nachricht Sendezeit | Uhrzeit wann täglich die Nachricht gesendet weden soll |
Meldung an Anzeige senden | Auswahl ob Eintrag in die Meldungsverwaltung erfolgen soll oder nicht (Ja/Nein) |
Lebensdauer der Nachricht | Wie lange so die Meldung angezeigt werden? |
Format der Textmitteilung | Frei wählbares Format der zu sendenden Nachricht/Meldung |
Text in Variable schreiben | Auswahl ob Nachricht in Variable geschrieben werden soll |
Texttrennzeichen/Zeilenumbruch | Trennzeichen bei mehreren Ereignissen |
Hochzeitstage ...
Name | Beschreibung |
---|---|
Termine | Eingabe Heiratstermins (Tag.Monat.Jahr) und den dazugehörigen Namen |
Nachricht ans Webfront senden | Auswahl ob Push-Nachricht gesendet werden soll oder nicht (Ja/Nein) |
Nachricht Sendezeit | Uhrzeit wann täglich die Nachricht gesendet weden soll |
Meldung an Anzeige senden | Auswahl ob Eintrag in die Meldungsverwaltung erfolgen soll oder nicht (Ja/Nein) |
Lebensdauer der Nachricht | Wie lange so die Meldung angezeigt werden? |
Format der Textmitteilung | Frei wählbares Format der zu sendenden Nachricht/Meldung |
Text in Variable schreiben | Auswahl ob Nachricht in Variable geschrieben werden soll |
Texttrennzeichen/Zeilenumbruch | Trennzeichen bei mehreren Ereignissen |
Todestage ...
Name | Beschreibung |
---|---|
Termine | Eingabe Sterbetag (Tag.Monat.Jahr) und den dazugehörigen Namen |
Nachricht ans Webfront senden | Auswahl ob Push-Nachricht gesendet werden soll oder nicht (Ja/Nein) |
Nachricht Sendezeit | Uhrzeit wann täglich die Nachricht gesendet weden soll |
Meldung an Anzeige senden | Auswahl ob Eintrag in die Meldungsverwaltung erfolgen soll oder nicht (Ja/Nein) |
Lebensdauer der Nachricht | Wie lange so die Meldung angezeigt werden? |
Format der Textmitteilung | Frei wählbares Format der zu sendenden Nachricht/Meldung |
Text in Variable schreiben | Auswahl ob Nachricht in Variable geschrieben werden soll |
Texttrennzeichen/Zeilenumbruch | Trennzeichen bei mehreren Ereignissen |
Verschiednes ...
Name | Beschreibung |
---|---|
Textausgabeformat für Mond- und Sonnenfinsternisse | Frei wählbares Format für die Ereignisausgabe |
Textausgabeformat für Mondphasen | Frei wählbares Format für die Ereignisausgabe |
Textausgabeformat für Zitat des Tages | Frei wählbares Format für die Zitatsausgabe |
Textausgabeformat für langes Tagesformat | Frei wählbares Format für das Tagesdatum |
Erweiterte Einstellungen ...
Name | Beschreibung |
---|---|
Feirtage ermitteln | Status, ob Ermittlung der Feiertage erwünscht ist |
Schulferien ermitteln | Status, ob Ermittlung der Schulferien erwünscht ist |
Festtage ermitteln | Status, ob Ermittlung der Festtage erwünscht ist |
Geburtstage ermitteln | Status, ob Geburtstage ausgewertet werden sollen |
Hochzeitstage ermitteln | Status, ob Hochzeitstage ausgewertet werden sollen |
Todestage ermitteln | Status, ob Todesstage ausgewertet werden sollen |
Finsternisse ermitteln | Status, ob Ermittlung von Mond- oder Sonnenfinsternisse erwünscht ist |
Mondphasen ermitteln | Status, ob Ermittlung von Mondphasen erwünscht ist |
Zitat des Tages ermitteln | Status, ob Zitat des Tages ausgegeben werden soll |
Information zum aktuellen Datum ermitteln | Status, ob Informationen zum aktuellen Datum erwünscht sind. |
Feiertage | Text, welcher ausgeben wird wenn kein Feiertag vorliegt. |
Schulferien | Text, welcher ausgeben wird wenn keine Ferien vorliegt. |
Festtage | Text, welcher ausgeben wird wenn kein Festtag vorliegt. |
Geburtstage | Text, welcher ausgeben wird wenn kein Geburtstag vorliegt. |
Hochzeitstage | Text, welcher ausgeben wird wenn kein Hochzeitstag vorliegt. |
Todestage | Text, welcher ausgeben wird wenn kein Todestag vorliegt. |
WebFront Instanz | ID des Webfronts, an welches die Push-Nachrichten für Geburts-, Hochzeits- und Todestage gesendet werden soll |
Meldsungsskript | Skript ID des Meldungsverwaltungsskripts, weiterführende Infos im Forum: Meldungsanzeige im Webfront |
Aktionsbereich:
Import & Export von ...
Aktion | Beschreibung |
---|---|
GEBURTSTAGE | Öffnet Popup für die Möglichkeit zum Import/Export/Leeren der Geburtstagsliste als CSV Datei (geburtstage.csv) |
HOCHZEITSTAGE | Öffnet Popup für die Möglichkeit zum Import/Export/Leeren der Hochzeitsliste als CSV Datei (hochzeitstage.csv) |
TODESTAGE | Öffnet Popup für die Möglichkeit zum Import/Export/Leeren der Sterbeliste als CSV Datei (todestage.csv) |
Hinweis: CSV-Format ist Termin, Name => 1.1.1970,"Herr Max Mustermann"
Tagesdaten ...
Aktion | Beschreibung |
---|---|
AKTUALISIEREN | Ermittelt für das aktuelle Datum alle Informationen (Update) |
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
Name | Typ | Beschreibung |
---|---|---|
Ist Feiertag? | Boolean | Ist aktueller Tag ein Feiertag? |
Ist Ferienzeit? | Boolean | Fällt aktueller Tag in die Ferien? |
Ist Sommerzeit? | Boolean | Ist aktuell Sommerzeit aktiv? |
Ist Schaltjahr? | Boolean | Ist aktueller Jahr ein Schaltjahr? |
Ist Wochenende? | Boolean | Ist gerade Wochenende? |
Ist Festtag? | Boolean | Ist aktueller Tag ein Festtag? |
Ist Geburtstag? | Boolean | Ist am aktuellen Tag ein Geburtstag? |
Ist Hochzeitstag? | Boolean | Ist am aktuellen Tag ein Hochzeitstag? |
Ist Todestag? | Boolean | Ist am aktuellen Tag ein Todestag? |
Feiertag | String | Name des Feriertages oder 'Kein Feiertag' |
Ferien | String | Name der Schulferien oder 'Keine Ferien' |
Festtag | String | Name des Festtages oder 'Kein Festtag' |
Geburtstag | String | Formatierte Ausgabe des Geburtstages oder leer |
Hochzeitstag | String | Formatierte Ausgabe des Hochzeitstages oder leer |
Todestag | String | Formatierte Ausgabe des Todestages oder leer |
Kalenderwoche | Integer | Nummer der aktuelle Kalenderwoche |
Tage im Monat | Integer | Wieviel Tage hat der aktuelle Monat? |
Tag im Jahr | Integer | Welcher Tag des Jahres? |
Tagesformat | String | Formatiertes Datum (lang) |
Jahreszeit | String | "Frühling", "Sommer", "Herbst" oder "Winter" |
Folgende Profile werden angelegt:
Name | Typ | Beschreibung |
---|---|---|
ALMANAC.Question | Boolean | FALSE = Nein(No) / TRUE = Ja(Yes) |
ALMANAC.Sesaon | String | Winter(Winter), Frühling(Spring), Herbst(Fall), Sommer(Summer) |
Man kann die Statusvariablen direkt im WF verlinken.
void ALMANAC_Update(int $InstanzID):
Holt entsprechend der Konfiguration die gewählten Daten.
Die Funktion liefert keinerlei Rückgabewert.
Beispiel: ALMANAC_Update(12345);
string ALMANAC_DateInfo(int $InstanzID, int $Timestamp);
Gibt für das übergebene Datum (Unix Timestamp) alle Informationen als assoziatives Array zurück. HINWEIS: Das Datum sollte nur maximal +/- 1 Jahr vom aktuellen Tag entfernt liegen.
Beispiel: ALMANAC_DateInfo(12345, time());
{
"IsSummer": false,
"IsLeapYear": false,
"IsWeekend": true,
"Weekday": 1,
"WeekNumber": 6,
"DaysInMonth": 28,
"DayOfYear": 45,
"DayLong": "Dienstag, 20.Februar",
"Season": "Winter",
"Festive": "Valentinstag",
"IsFestive": true,
"WorkingDays": 20,
"Holiday": "Kein Feiertag",
"IsHoliday": false,
"Vacation": "Keine Ferien",
"IsVacation": false,
"IsBirthday": true,
"Birthday": [{"date": 14.2.1970, "years": 51, "name": "Valentin Tag"}],
"IsWeddingday": false,
"Weddingday": [],
"IsDeathday": false,
"Deathday": []
"IsEclipse": true,
"Eclipse": [{"name": "Partielle Sonnenfinsternis", "date": "30.04.2022", "time": "22:42:00"}],
"IsMoonphase": true,
"Moonphase": [{"name": "Neumond", "date": "30.04.2022", "time": "22:34:00"}],
"QuoteOfTheDay": [{"quote": "Bist du wütend, zähl bis vier, hilft das nicht, dann explodier.", "author": "Wilhelm Busch"}]
}
v5.3.20240724
- NEU: Neu Statusvariable für langes Tagesformat
- NEU: Kompatibilität auf IPS 6.4 hoch gesetzt
- FIX: Bibliotheks- bzw. Modulinfos vereinheitlicht
- FIX: Namensnennung und Repo vereinheitlicht
- FIX: Update Style-Checks
- FIX: Fehlende Übersetzungen nachgeholt
- FIX: Dokumentation vereinheitlicht
v5.2.20230703
- NEU: Anpassungen für IPS 7.0 (PHP 8.2)
- NEU: Vorgabetexte für nicht eingetretene Ereignisse hinzugefügt
- FIX: Falscher Separator bei Hochzeitstage verwendet
- FIX: Fehlende Übersetzungen nachgeholt
- FIX: Veraltetet Style-Checks ausgebaut
- FIX: JSON Format vereinheitlicht
- FIX: Weitere Modulvereinheitlichungen vorgenommen
v5.1.20220706
- NEU: Wochentag (nach ISO-8601) aufgenommen
- FIX: Dokumentation vereinheitlicht
v5.0.20220101
- NEU: Kompatibilität auf IPS 6.0 hoch gesetzt
- NEU: Update auf Version 3 vom PHP Coding Standards Fixer
- NEU: String-Profile aufgenommen (z.B. für Jahreszeit)
- NEU: Bibliotheks- bzw. Modulinfos vereinheitlicht
- NEU: Englische Übersetzungen aufgenommen bzw. vervollständigt
- NEU: Konfigurationsdialog überarbeitet (v6 Möglichkeiten genutzt)
- NEU: Mondphasen integriert
- NEU: Mond- und Sonnenfinsternisse integriert
- NEU: Zitat des Tages integriert
- FIX: Fehler in Webhook Helper korrigiert
- FIX: Fehler bei der Ausgabe der Jahreszeit korrigiert
- FIX: Leere JSON-Liste korrekt initialisiert
- FIX: Ferienermittelung bei Jahresanfang korrigiert
v4.3.20210527
- FIX: Fehler beim Auswerten der erweiterten Einstellungen gefixt
- NEU: Debugmeldungen erweitert und vereinheitlicht
v4.2.20210406
- FIX: Mitternachts-Timer hat vereinzelt zu zeitig ausgelöst
v4.1.20210307
- FIX: Feiertage und Schulferien waren 1 Tag zu lang
v4.0.20210214
- NEU: Eigener Webservice (JSON-API) für Ferien und Feiertage in DE, AT und CH (aktuell 2015 - 2022)
- NEU: Ermittlung von verschiedensten religiösen und weltlichen Festtagen
- NEU: Ermittlung der aktuellen Jahreszeit ("Frühling", "Sommer", "Herbst" oder "Winter")
- NEU: Verwaltung und Meldung von Geburtstagen (Liste)
- NEU: Verwaltung und Meldung von Hochzeitstagen (Liste)
- NEU: Verwaltung und Meldung von Todesstagen (Liste)
- NEU: Import & Export Funktionalität für Geburts-, Hochzeits- und Todestage
- NEU: Ferienzeitraum kann jetzt mit Ferienname ausgegeben werden
- FIX: Struktur DateInfo erweitert und Teile umbenannt
- FIX: Modul Aliase auf Jahreskalender und Almanach geändert
v3.2.20210126
- FIX: Quickfix wegen Sicherheitscheck bei Datenabholung
v3.1.20210116
- NEU: Funktion DateInfo liefert die Daten jetzt im JSON-Format
- FIX: Fehlerbehandlung komplett neu umgesetzt
v3.0.20210103
- NEU: Ermittlung der Ferien und Feiertage für DE, AT und CH
- NEU: Umstellung der Datenlieferung auf schulferien.org
- FIX: Name des Feiertages nicht korrekt gespeichert
- FIX: Vereinheitlichungen der Libs
v2.0.20200416
- NEU: Ermittlung der Arbeitstage im Monat
- NEU: Funktion DateInfo für manuelles Ermitteln der Daten für ein bestimmtes Datum
- NEU: Umstellung der Entwicklung auf Symcon StylePHP & Workflow actions
v1.2.20190813
- NEU: Anpassungen für Module Store
- NEU: Vereinheitlichungen, Umstellung auf Libs
- NEU: Lokalisierung (Englisch)
v1.1.20190501
- FIX: Name des Feiertages nicht korrekt gespeichert
v1.1.20190312
- NEU: Vereinheitlichungen, StyleCI uvm.
v1.0.20180505
- FIX: BugFix IPS 5.0
v1.0.20171230
- NEU: Initialversion
Ich möchte mich für die Unterstützung bei der Entwicklung dieses Moduls bedanken bei ...
- KaiS : für den regen Austausch bei der allgemeinen Modulentwicklung
- Nall-chan : für die initial Idee mit dem Modul Schulferien
- Nairda : für das Testen der Daten in der Schweiz
- ralf, timloe : für die Anregung und Austausch für eine IPSView-konforme Formatierung
- Attain. bumaas, tomgr : für das generelle Testen und Melden von Bugs
- yansoph : für das Testen und schnelle Feedback
- Dr.Niels: für den Pull Request zum Initialisieren der leeren JSON-Listen
Vielen Dank für die hervorragende und tolle Arbeit!
Seit nunmehr über 10 Jahren fasziniert mich das Thema Haussteuerung. In den letzten Jahren betätige ich mich auch intensiv in der IP-Symcon Community und steuere dort verschiedenste Skript und Module bei. Ihr findet mich dort unter dem Namen @pitti ;-)
Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.
Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International