Calendar: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Modultyp angepasst, Infobox ergänzt)
(Kapitel "Events" aus commandref in Wiki übernommen.)
 
(6 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
|ModPurpose=Anlegen eines Kalenderobjekts
|ModPurpose=Anlegen eines Kalenderobjekts
|ModType=h
|ModType=h
|ModForumArea=Unterstützende Dienste
|ModForumArea=Unterstützende Dienste/Kalendermodule
|ModTechName=57_Calendar.pm
|ModTechName=57_Calendar.pm
|ModOwner=borisneubert ({{Link2FU|10|Dr. Boris Neubert}})
|ModOwner=borisneubert ({{Link2FU|10|Dr. Boris Neubert}})
Zeile 15: Zeile 15:


== Anwendung ==
== Anwendung ==
=== Define ===
=== Define ===
Siehe commandref;
Siehe {{Link2CmdRef|Anker=Calendardefine}};
:<code>define <name> Calendar ical url <URL> [<interval>]</code>
:<code>define <name> Calendar ical url <URL> [<interval>]</code>
:<code>define <name> Calendar ical file <FILENAME> [<interval>]</code>
:<code>define <name> Calendar ical file <FILENAME> [<interval>]</code>


Sofern für den Zugriff auf den Kalender Benutzername und Passwort erforderlich sind, können diese in der URL beispielsweise so mit angegeben werden:
Sofern für den Zugriff auf den Kalender Benutzername und Passwort erforderlich sind, können diese in der URL beispielsweise so mit angegeben werden:
:<code>define myCalendar ical url <nowiki>https://user:password@my.domain.com/.../yourcalendar.ics</nowiki></code>
:<code>define myCalendar Calendar ical url <nowiki>https://user:password@my.domain.com/.../yourcalendar.ics</nowiki></code>


=== Attribute ===
=== Attribute ===
Siehe commandref;
Siehe {{Link2CmdRef|Anker=Calendarattr}};
 
=== Events ===
Wenn der Kalendar neu geladen oder aktualisiert oder eine Alarm-, Start- oder Endzeit  erreicht wurde, wird ein FHEM-Event erzeugt:
 
<code>triggered</code>
 
Man kann sich darauf verlassen, dass alle Readings des Kalenders in einem konsistenten und aktuellen  Zustand befinden, wenn dieses Event empfangen wird.
 
Wenn ein Termin geändert wurde, werden zwei FHEM-Events erzeugt:
 
<code>changed: UID <mode></code>
 
<code><mode>: UID</code>
 
<mode> ist der aktuelle Modus des Termins nach der Änderung. Bitte beachten: Im FHEM-Event befindet sich ein Doppelpunkt gefolgt von einem Leerzeichen.
 
FHEM-Events sollten nur auf den vorgenannten Events basieren und nicht auf FHEM-Events, die durch ändern eines mode... Readings ausgelöst werden.


== Anwendungsbeispiel(e) ==
== Anwendungsbeispiel(e) ==
* Einbindung von owncloud-Kalendern
Für ownCloud-Kalender muss bei der Definition als <URL> der Link zum Export des jeweiligen Kalenders angegeben werden. Der Link kann in der Weboberfläche von ownCloud gefunden werden. Für ownCloud 9.0 folgt dieser URL z.B. dem folgenden Muster:
:<code>http://<ownCloud-Benutzer>:<ownCloud-Passwort>@example.com/owncloud/remote.php/dav/calendars/<ownCloud-Benutzer>/<Kalendername>?export</code>
Der Standard für <Kalendername> ist <code>defaultcalendar</code>
* [[Google-Kalender zur Steuerung von Dummies]]
* [[Google-Kalender zur Steuerung von Dummies]]
* [[Wochenende, Feiertage und Schulferien]]
* [[Wochenende, Feiertage und Schulferien]]
* Limitierungen im Sinne der Datenarmut nutzen
Die Attribute <code>hideOlderThan <timespec></code> und <code>hideLaterThan <timespec></code> bewirken, dass nur Kalendereinträge des definierten Zeitraums angezeigt werden. Gerade bei langjährig genutzen Kalendern kann die Datenmenge ansonsten extrem groß werden und schlägt sich in entsprechend langen Update-Runs nieder.


== Links ==
== Links ==
* Modul, das alle Termine aus einer bestehenden Instanz von [[Calendar]] in Readings übernimmt: [[CALVIEW]]
* Modul, das alle Termine aus einer bestehenden Instanz von [[Calendar]] in Readings übernimmt: [[CALVIEW]]

Aktuelle Version vom 23. Juni 2024, 07:26 Uhr

Calendar
Zweck / Funktion
Anlegen eines Kalenderobjekts
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Unterstützende Dienste/Kalendermodule
Modulname 57_Calendar.pm
Ersteller borisneubert (Dr. Boris Neubert )
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Calendar ist ein Hilfsmodul, das Kalenderereignisse aus einer Datei oder einem über die URL angegeben Kalender holt. Der Kalender muss im iCal-Format vorliegen.

Zur Anzeige der Kalenderereignisse kann das Modul CALVIEW verwendet werden.

Voraussetzungen

Wenn die Kalender-URL mit https:// beginnt, muss das Perl Modul IO::Socket::SSL installiert sein (z.B. mit cpan -i IO::Socket::SSL oder mit apt-get install libio-socket-ssl-perl).

Anwendung

Define

Siehe commandref/Calendardefine;

define <name> Calendar ical url <URL> [<interval>]
define <name> Calendar ical file <FILENAME> [<interval>]

Sofern für den Zugriff auf den Kalender Benutzername und Passwort erforderlich sind, können diese in der URL beispielsweise so mit angegeben werden:

define myCalendar Calendar ical url https://user:password@my.domain.com/.../yourcalendar.ics

Attribute

Siehe commandref/Calendarattr;

Events

Wenn der Kalendar neu geladen oder aktualisiert oder eine Alarm-, Start- oder Endzeit erreicht wurde, wird ein FHEM-Event erzeugt:

triggered

Man kann sich darauf verlassen, dass alle Readings des Kalenders in einem konsistenten und aktuellen Zustand befinden, wenn dieses Event empfangen wird.

Wenn ein Termin geändert wurde, werden zwei FHEM-Events erzeugt:

changed: UID <mode>

<mode>: UID

<mode> ist der aktuelle Modus des Termins nach der Änderung. Bitte beachten: Im FHEM-Event befindet sich ein Doppelpunkt gefolgt von einem Leerzeichen.

FHEM-Events sollten nur auf den vorgenannten Events basieren und nicht auf FHEM-Events, die durch ändern eines mode... Readings ausgelöst werden.

Anwendungsbeispiel(e)

  • Einbindung von owncloud-Kalendern

Für ownCloud-Kalender muss bei der Definition als <URL> der Link zum Export des jeweiligen Kalenders angegeben werden. Der Link kann in der Weboberfläche von ownCloud gefunden werden. Für ownCloud 9.0 folgt dieser URL z.B. dem folgenden Muster:

http://<ownCloud-Benutzer>:<ownCloud-Passwort>@example.com/owncloud/remote.php/dav/calendars/<ownCloud-Benutzer>/<Kalendername>?export

Der Standard für <Kalendername> ist defaultcalendar

Die Attribute hideOlderThan <timespec> und hideLaterThan <timespec> bewirken, dass nur Kalendereinträge des definierten Zeitraums angezeigt werden. Gerade bei langjährig genutzen Kalendern kann die Datenmenge ansonsten extrem groß werden und schlägt sich in entsprechend langen Update-Runs nieder.

Links

  • Modul, das alle Termine aus einer bestehenden Instanz von Calendar in Readings übernimmt: CALVIEW