57_Calendar.pm: German documentation added
git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@5742 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -1271,4 +1271,207 @@ sub Calendar_Undef($$) {
|
||||
|
||||
|
||||
=end html
|
||||
=begin html_DE
|
||||
|
||||
<a name="Calendar"></a>
|
||||
<h3>Kalender</h3>
|
||||
<ul>
|
||||
<br>
|
||||
|
||||
<a name="Calendardefine"></a>
|
||||
<b>Define</b>
|
||||
<ul>
|
||||
<code>define <name> Calendar ical url <URL> [<interval>]</code><br>
|
||||
<code>define <name> Calendar ical file <FILENAME> [<interval>]</code><br>
|
||||
<br>
|
||||
Definiert ein Kalender-Device.<br><br>
|
||||
|
||||
Ein Kalender-Device ermittelt periodisch Ereignisse aus einem Quell-Kalender. Dieser kann eine URL oder eine Datei sein. Die Datei muss im iCal-Format vorliegen.<br><br>
|
||||
|
||||
Beginnt die URL mit <code>https://</code>, muss das Perl-Modul IO::Socket::SSL installiert sein
|
||||
(use <code>cpan -i IO::Socket::SSL</code>).<br><br>
|
||||
|
||||
Hinweis für Nutzer des Google-Kalenders: Du kann direkt die private iCal-URL des Google Kalender nutzen.
|
||||
<!--Google App accounts do not work since requests to the URL
|
||||
get redirected first and the fhem mechanism for retrieving data via http/https cannot handle this. -->
|
||||
Sollte Deine Google-Kalender-URL mit <code>https://</code> beginnen und das Perl-Modul IO::Socket::SSL ist nicht auf Deinem Systeme installiert, kannst Du in der URL <code>https://</code> durch <code>http://</code> ersetzen, falls keine automatische Umleitung auf die <code>https://</code> URL erfolgt.
|
||||
Solltest Du unsicher sein, ob dies der Fall ist, überprüfe es bitte zuerst mit Deinem Browser.<br><br>
|
||||
|
||||
Der optionale Paramter <code>interval</code> bestimmt die Zeit in Sekunden zwischen den Updates. Default-Wert ist 3600 (1 Stunde).<br><br>
|
||||
|
||||
Beispiele:
|
||||
<pre>
|
||||
define MeinKalender Calendar ical url https://www.google.com­/calendar/ical/john.doe%40example.com­/private-foo4711/basic.ics
|
||||
define DeinKalender Calendar ical url http://www.google.com­/calendar/ical/jane.doe%40example.com­/private-bar0815/basic.ics 86400
|
||||
define IrgendeinKalender Calendar ical file /home/johndoe/calendar.ics
|
||||
</pre>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<a name="Calendarset"></a>
|
||||
<b>Set </b>
|
||||
<ul>
|
||||
<code>set <name> update</code><br><br>
|
||||
|
||||
Erzwingt das Einlesen des Kalenders von der definierten URL. Das nächste automatische Einlesen erfolgt
|
||||
<code>interval</code> Sekunden später.<br><br>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
|
||||
<a name="Calendarget"></a>
|
||||
<b>Get</b>
|
||||
<ul>
|
||||
<code>get <name> full|text|summary|location|alarm|start|end <reading>|<uid> [max]</code><br><br>
|
||||
|
||||
Gibt - Zeile für Zeile - den vollen Status, eine textbasierte Darstellung, eine Zusammenfassung (Betreff, Titel), den Ort, die Alarmzeit, die Startzeit oder die Endzeit des/der Kalender-Ereignisse aus, die im Reading <reading> gelistet werden oder die durch die UID <uid> identifiziert werden. Der optionale Parameter <code>max</code> limitiert die Anzahl der zurückgegebenen Lines.<br><br>
|
||||
|
||||
<code>get <name> find <regexp></code><br><br>
|
||||
|
||||
Gibt - Zeile für Zeile - die UIDs aller Kalender-Ereignisse zurück, deren Zusammenfassung der Regular Expression
|
||||
<regexp> entspricht.<br><br>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
<a name="Calendarattr"></a>
|
||||
<b>Attributes</b>
|
||||
<ul>
|
||||
<li><a href="#readingFnAttributes">readingFnAttributes</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<b>Beschreibung</b>
|
||||
<ul>
|
||||
|
||||
Ein Kalender ist eine Menge von Kalender-Ereignissen. Ein Kalender-Ereignis hat eine Zusammenfassung (normalerweise der Titel, welcher im Quell-Kalender angezeigt wird), eine Startzeit, eine Endzeit und keine, eine oder mehrere Alarmzeiten. Die Kalender-Ereignisse werden
|
||||
aus dem Quellkalender ermittelt, welcher über die URL angegeben wird. Sollten mehrere Alarmzeiten für ein Kalender-Ereignis existieren, wird nur der früheste Alarmzeitpunkt behalten. Wiederkehrende Kalendereinträge werden in einem gewissen Umfang unterstützt:
|
||||
FREQ INTERVAL UNTIL COUNT werden ausgewertet, BYMONTHDAY BYDAY BYMONTH WKST
|
||||
werden erkannt aber nicht ausgewertet. Das Modul wird es sehr wahrscheinlich falsch machen, wenn Du wiederkehrende Kalender-Ereignisse mit unerkannten oder nicht ausgewerteten Schlüsselworten hast.<p>
|
||||
|
||||
Ein Kalender-Ereignis wird durch seine UID identifiziert. Die UID wird vom Quellkalender bezogen. Um das Leben leichter zu machen, werden alle nicht-alphanumerischen Zeichen automatisch aus der UID entfernt.<p>
|
||||
|
||||
Ein Kalender-Ereignis kann sich in einem der folgenden Zustände befinden:
|
||||
<table border="1">
|
||||
<tr><td>new</td><td>Das Kalender-Ereignis wurde das erste Mal beim letzten Update gefunden. Entweder war dies das erste Mal des Kalenderzugriffs oder Du hast einen neuen Kalendereintrag zum Quellkalender hinzugefügt.</td></tr>
|
||||
<tr><td>known</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update.</td></tr>
|
||||
<tr><td>updated</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update, wurde aber geändert.</td></tr>
|
||||
<tr><td>deleted</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update, wurde aber seitdem gelöscht. Das Kalender-Ereignis wird beim nächsten Update von allen Listen entfernt.</td></tr>
|
||||
</table><br>
|
||||
Kalender-Ereignisse, welche vollständig in der Vergangenheit liegen (aktuelle Zeit liegt nach dem Ende-Termin des Kalendereintrags) werden nicht bezogen und sind daher nicht im Kalender verfügbar.
|
||||
<p>
|
||||
|
||||
Ein Kalender-Ereignis kann sich in einem der folgenden Modi befinden:
|
||||
<table border="1">
|
||||
<tr><td>upcoming</td><td>Weder die Alarmzeit noch die Startzeit des Kalendereintrags ist erreicht.</td></tr>
|
||||
<tr><td>alarm</td><td>Die Alarmzeit ist überschritten, aber die Startzeit des Kalender-Ereignisses ist noch nicht erreicht.</td></tr>
|
||||
<tr><td>start</td><td>Die Startzeit ist überschritten, aber die Ende-Zeit des Kalender-Ereignisses ist noch nicht erreicht.</td></tr>
|
||||
<tr><td>end</td><td>Die Ende-Zeit des Kalender-Ereignisses wurde überschritten.</td></tr>
|
||||
</table><br>
|
||||
Ein Kalender-Ereignis wechselt umgehend von einem Modus zum Anderen, wenn die Zeit für eine Änderung erreicht wurde. Dies wird dadurch erreicht, dass auf die früheste zukünftige Zeit aller Alarme, Start- oder Endezeiten aller Kalender-Ereignisse gewartet wird.
|
||||
<p>
|
||||
|
||||
Ein Kalender-Device hat verschiedene Readings. Mit Ausnahme von <code>calname</code> stellt jedes Reading eine Semikolon-getrennte Liste von UIDs von Kalender-Ereignisse dar, welche bestimmte Zustände haben:
|
||||
<table border="1">
|
||||
<tr><td>calname</td><td>Name des Kalenders</td></tr>
|
||||
<tr><td>all</td><td>Alle Ereignisse</td></tr>
|
||||
<tr><td>modeAlarm</td><td>Ereignisse im Alarm-Modus</td></tr>
|
||||
<tr><td>modeAlarmOrStart</td><td>Ereignisse im Alarm- oder Startmodus</td></tr>
|
||||
<tr><td>modeAlarmed</td><td>Ereignisse, welche gerade in den Alarmmodus gewechselt haben</td></tr>
|
||||
<tr><td>modeChanged</td><td>Ereignisse, welche gerade in irgendeiner Form ihren Modus gewechselt haben</td></tr>
|
||||
<tr><td>modeEnd</td><td>Ereignisse im Endemodus</td></tr>
|
||||
<tr><td>modeEnded</td><td>Ereignisse, welche gerade vom Start- in den Endemodus gewechselt haben</td></tr>
|
||||
<tr><td>modeStart</td><td>Ereignisse im Startmodus</td></tr>
|
||||
<tr><td>modeStarted</td><td>Ereignisse, welche gerade in den Startmodus gewechselt haben</td></tr>
|
||||
<tr><td>modeUpcoming</td><td>Ereignisse im zukünftigen Modus</td></tr>
|
||||
<tr><td>stateChanged</td><td>Ereignisse, welche gerade in irgendeiner Form ihren Status gewechselt haben</td></tr>
|
||||
<tr><td>stateDeleted</td><td>Ereignisseim Status "deleted"</td></tr>
|
||||
<tr><td>stateNew</td><td>Ereignisse im Status "new"</td></tr>
|
||||
<tr><td>stateUpdated</td><td>Ereignisse im Status "updated"</td></tr>
|
||||
</table>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
Wenn ein Kalender-Ereignis geändert wurde, wird ein Event in der Form
|
||||
<code>changed: UID mode</code> getriggert, wobei mode den gegenwärtigen Modus des Kalender-Ereignisse nach der Änderung darstellt.
|
||||
|
||||
<p>
|
||||
|
||||
<b>Anwendungsbeispiele</b>
|
||||
<ul>
|
||||
<i>Zeige alle Kalendereinträge inkl. Details</i><br><br>
|
||||
<ul>
|
||||
<code>
|
||||
get MyCalendar full all<br>
|
||||
2767324dsfretfvds7dsfn3e4­dsa234r234sdfds6bh874­googlecom known alarm 31.05.2012 17:00:00 07.06.2012 16:30:00-07.06.2012 18:00:00 Erna for coffee<br>
|
||||
992hydf4y44awer5466lhfdsr­gl7tin6b6mckf8glmhui4­googlecom known upcoming 08.06.2012 00:00:00-09.06.2012 00:00:00 Vacation
|
||||
</code><br><br>
|
||||
</ul>
|
||||
|
||||
<i>Zeige Kalendereinträge in Deinem Bilderrahmen</i><br><br>
|
||||
<ul>
|
||||
Füge eine Zeile in die <a href="#RSSlayout">layout description</a> ein, um Kalendereinträge im Alarm- oder Startmodus anzuzeigen:<br><br>
|
||||
<code>text 20 60 { fhem("get MyCalendar text modeAlarmOrStart") }</code><br><br>
|
||||
Dies kann dann z.B. so aussehen:<br><br>
|
||||
<code>
|
||||
07.06.12 16:30 Erna zum Kaffee<br>
|
||||
08.06.12 00:00 Urlaub
|
||||
</code><br><br>
|
||||
</ul>
|
||||
|
||||
<i>Schalte das Licht ein, wenn Erna kommt</i><br><br>
|
||||
<ul>
|
||||
Finde zuerst die UID des Kalendereintrags:<br><br>
|
||||
<code>
|
||||
get MyCalendar find .*Erna.*<br>
|
||||
2767324dsfretfvds7dsfn3e4­dsa234r234sdfds6bh874­googlecom
|
||||
</code><br><br>
|
||||
Definiere dann ein notify:<br><br>
|
||||
<code>
|
||||
define ErnaComes notify MyCalendar:modeStarted.*2767324dsfretfvds7dsfn3e4­dsa234r234sdfds6bh874­googlecom.* set MyLight on
|
||||
</code><br><br>
|
||||
Du kannst auch ein Logging aufsetzen:<br><br>
|
||||
<code>
|
||||
define LogErna notify MyCalendar:modeAlarmed.*2767324dsfretfvds7dsfn3e4­dsa234r234sdfds6bh874­googlecom.* { Log3 %NAME, 1, "ALARM name=%NAME event=%EVENT part1=%EVTPART0 part2=%EVTPART1" }
|
||||
</code><br><br>
|
||||
</ul>
|
||||
|
||||
<i>Schalte die Aktoren an und aus</i><br><br>
|
||||
<ul>
|
||||
Stell Dir einen Kalender vor, dessen Zusammenfassungen (Betreff, Titel) die Namen von Devices in Deiner fhem-Installation sind.
|
||||
Du willst nun die entsprechenden Devices an- und ausschalten wenn das Kalender-Ereignis beginnt bzw. endet.<br><br>
|
||||
<code>
|
||||
define SwitchActorOn notify MyCalendar:modeStarted.* {
|
||||
my $reading="%EVTPART0";;
|
||||
my $uid= "%EVTPART1";;
|
||||
my $actor= fhem("get MyCalendar summary $uid");;
|
||||
if(defined $actor) {
|
||||
fhem("set $actor on")
|
||||
}
|
||||
}<br><br>
|
||||
define SwitchActorOff notify MyCalendar:modeEnded.* {
|
||||
my $reading="%EVTPART0";;
|
||||
my $uid= "%EVTPART1";;
|
||||
my $actor= fhem("get MyCalendar summary $uid");;
|
||||
if(defined $actor) {
|
||||
fhem("set $actor off")
|
||||
}
|
||||
}
|
||||
</code><br><br>
|
||||
Auch hier kann ein Logging aufgesetzt werden:<br><br>
|
||||
<code>
|
||||
define LogActors notify MyCalendar:mode(Started|Ended).* { my $reading= "%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get MyCalendar summary $uid");; Log 3 %NAME, 1, "Actor: $actor, Reading $reading" }
|
||||
</code><br><br>
|
||||
</ul>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
=end html_DE
|
||||
=cut
|
||||
|
||||
|
||||
Reference in New Issue
Block a user