diff --git a/fhem/FHEM/57_Calendar.pm b/fhem/FHEM/57_Calendar.pm index 81eb657f8..dcca87333 100644 --- a/fhem/FHEM/57_Calendar.pm +++ b/fhem/FHEM/57_Calendar.pm @@ -1271,4 +1271,207 @@ sub Calendar_Undef($$) { =end html +=begin html_DE + + +
define <name> Calendar ical url <URL> [<interval>]define <name> Calendar ical file <FILENAME> [<interval>]https://, muss das Perl-Modul IO::Socket::SSL installiert sein
+ (use cpan -i IO::Socket::SSL).https:// beginnen und das Perl-Modul IO::Socket::SSL ist nicht auf Deinem Systeme installiert, kannst Du in der URL https:// durch http:// ersetzen, falls keine automatische Umleitung auf die https:// URL erfolgt.
+ Solltest Du unsicher sein, ob dies der Fall ist, überprüfe es bitte zuerst mit Deinem Browser.interval bestimmt die Zeit in Sekunden zwischen den Updates. Default-Wert ist 3600 (1 Stunde).+ 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 ++ +
set <name> updateinterval Sekunden später.get <name> full|text|summary|location|alarm|start|end <reading>|<uid> [max]max limitiert die Anzahl der zurückgegebenen Lines.get <name> find <regexp>+ + 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.
+ + Ein Kalender-Ereignis kann sich in einem der folgenden Zustände befinden: +
| new | 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. |
| known | Das Kalender-Ereignis existierte bereits vor dem letzten Update. |
| updated | Das Kalender-Ereignis existierte bereits vor dem letzten Update, wurde aber geändert. |
| deleted | 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. |
+ + Ein Kalender-Ereignis kann sich in einem der folgenden Modi befinden: +
| upcoming | Weder die Alarmzeit noch die Startzeit des Kalendereintrags ist erreicht. |
| alarm | Die Alarmzeit ist überschritten, aber die Startzeit des Kalender-Ereignisses ist noch nicht erreicht. |
| start | Die Startzeit ist überschritten, aber die Ende-Zeit des Kalender-Ereignisses ist noch nicht erreicht. |
| end | Die Ende-Zeit des Kalender-Ereignisses wurde überschritten. |
+
+ Ein Kalender-Device hat verschiedene Readings. Mit Ausnahme von calname stellt jedes Reading eine Semikolon-getrennte Liste von UIDs von Kalender-Ereignisse dar, welche bestimmte Zustände haben:
+
| calname | Name des Kalenders |
| all | Alle Ereignisse |
| modeAlarm | Ereignisse im Alarm-Modus |
| modeAlarmOrStart | Ereignisse im Alarm- oder Startmodus |
| modeAlarmed | Ereignisse, welche gerade in den Alarmmodus gewechselt haben |
| modeChanged | Ereignisse, welche gerade in irgendeiner Form ihren Modus gewechselt haben |
| modeEnd | Ereignisse im Endemodus |
| modeEnded | Ereignisse, welche gerade vom Start- in den Endemodus gewechselt haben |
| modeStart | Ereignisse im Startmodus |
| modeStarted | Ereignisse, welche gerade in den Startmodus gewechselt haben |
| modeUpcoming | Ereignisse im zukünftigen Modus |
| stateChanged | Ereignisse, welche gerade in irgendeiner Form ihren Status gewechselt haben |
| stateDeleted | Ereignisseim Status "deleted" |
| stateNew | Ereignisse im Status "new" |
| stateUpdated | Ereignisse im Status "updated" |
+
+ Wenn ein Kalender-Ereignis geändert wurde, wird ein Event in der Form
+ changed: UID mode getriggert, wobei mode den gegenwärtigen Modus des Kalender-Ereignisse nach der Änderung darstellt.
+
+
+ + Anwendungsbeispiele +
+ get MyCalendar full all
+ 2767324dsfretfvds7dsfn3e4dsa234r234sdfds6bh874googlecom known alarm 31.05.2012 17:00:00 07.06.2012 16:30:00-07.06.2012 18:00:00 Erna for coffee
+ 992hydf4y44awer5466lhfdsrgl7tin6b6mckf8glmhui4googlecom known upcoming 08.06.2012 00:00:00-09.06.2012 00:00:00 Vacation
+ text 20 60 { fhem("get MyCalendar text modeAlarmOrStart") }
+ 07.06.12 16:30 Erna zum Kaffee
+ 08.06.12 00:00 Urlaub
+
+ get MyCalendar find .*Erna.*
+ 2767324dsfretfvds7dsfn3e4dsa234r234sdfds6bh874googlecom
+
+ define ErnaComes notify MyCalendar:modeStarted.*2767324dsfretfvds7dsfn3e4dsa234r234sdfds6bh874googlecom.* set MyLight on
+
+ define LogErna notify MyCalendar:modeAlarmed.*2767324dsfretfvds7dsfn3e4dsa234r234sdfds6bh874googlecom.* { Log3 %NAME, 1, "ALARM name=%NAME event=%EVENT part1=%EVTPART0 part2=%EVTPART1" }
+
+ 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")
+ }
+ }
+ 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")
+ }
+ }
+
+ 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" }
+