diff --git a/fhem/CHANGED b/fhem/CHANGED
index 9bb91713a..2bc5f99dc 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
+ - feature: 57_Calendar: get ...events include:... returnType:...
- feature: 44_TEK603: ser2net support
- feature: 73_AutoShuttersControl: add new Dev TYPE in %posSetCmds,
remove old commandref text
@@ -9,13 +10,13 @@
- feature: 73_AutoShuttersControl: fix little commandref typo,
expand ascAPIget Fn
- bugfix: 93_Log2Syslog: fix warning uninitialized value in numeric (>=)
- - feature: 93_Log2Syslog: V5.8.1, new attributes and further developments
+ - feature: 93_Log2Syslog: V5.8.1, new attributes and further developments
regarding to Forum: topic,75426.msg958836.html#msg958836,
use "get versionNotes" for further informations
- change: 77_UWZ: remove last InternalTimer Fn parameter
- feature: 14_SD_WS.pm: crc calculation fixes and
- new protocol for Atech wireless weather station
- added new sensor TECVANCE TV-4848
+ new protocol for Atech wireless weather station
+ added new sensor TECVANCE TV-4848
- change: 14_SD_RSL.pm: changed loglevel from 4 to 3 and improved readability
- feature: 14_SD_WS07.pm: new sensor / station Auriol AFW 2 A1, IAN: 297514
- feature: 90_SIGNALduino_un.pm: support tracing geiger rohrmotor signals
@@ -23,13 +24,13 @@
Option to reconstruct last bit of transmission in MU and MS signals
if there is enough data to detect it.
Moved protocol hash into a separate perl module instead of loading
- a simple textfile into a variable.
+ a simple textfile into a variable.
Added standard deviceOverview output in detail page #545
new internal (Protocol_ID), which will provide the protocolID in
logcial modules.
Drop-down list for set command config CC1101 (#589)
add drop-down list for cc1101_bWidth, cc1101_rAmpl and cc1101_sens
- - change: 49_SSCam: PTZ panel internal code changed
+ - change: 49_SSCam: PTZ panel internal code changed
- bugfix: 49_SSCam: fix warnings
- feature: 49_SSCam: support of FTUI Widget with SSCamSTRM, new attributes
in SSCamSTRM, some fixes
@@ -41,11 +42,11 @@
- feature: 71_YAMAHA_NP: New commands 'checkForNewFirmware' and 'friendlyName'
- feature: 95_Astro: v2.1.0: add alternative global functions
to replace SUNRISE_EL
- - feature: 98_WeekdayTimer now supports holiday2we entries
+ - feature: 98_WeekdayTimer now supports holiday2we entries
weekEnd and noWeekEnd
- bugfix: 71_YAMAHA_NP: fixed 'timerRepeat'
- new: 76_SMAPortal: new module to integrate the SMA Sunny Portal
- (comes with 76_SMAPortalSPG graphic device and a
+ (comes with 76_SMAPortalSPG graphic device and a
widget for FTUI), special thanks to Wzut and Xguide !
- bugfix: 95_Astro: v2.0.3: improved Windows POSIX compatibility for
timezone support
@@ -60,8 +61,8 @@
- feature: 82_LGTV_WebOS: add wakeupCmd attribut to be executed when turning
on an absent device. Can be an FHEM command or Perl command
- bugfix: 32_withings: handle duplicate pwv values
- - change: 49_SSCam: increase get SID timeout to at least 60 s to avoid
- potential auth.cgi problem, set compatibility to SVS
+ - change: 49_SSCam: increase get SID timeout to at least 60 s to avoid
+ potential auth.cgi problem, set compatibility to SVS
version 8.2.4, improve disable/enable behavior
- bugfix: 71_YAMAHA_NP: Fixed 'timerVolume'
- new: huedevice.template: New template for HUEDevice
@@ -111,7 +112,7 @@
addcmd lock_remote
change devstateicon/cmd
- change: 55_PIFACE: now WiringPI V >= 2.46 supported
- - feature: 73_AutoShuttersControl: add new attribut
+ - feature: 73_AutoShuttersControl: add new attribut
ASC_Sgading_MinMax_Elevation, many bug fixes
- bugfix: 88_HMCCU: Fixed noInitialUpdate bug
- bugfix: 70_BOTVAC: set robotSounds filter
@@ -121,7 +122,7 @@
remove style element from cleaning statistics
- bugfix: 73_AutoShuttersControl: fix litte bugs and change manual drive
detection
- - feature: 49_SSCam: In detailview are buttons provided to open the camera
+ - feature: 49_SSCam: In detailview are buttons provided to open the camera
native setup screen or Synology Surveillance Station and
the Synology Surveillance Station online help
- bugfix: 73_DoorBird: bugfix for timing between History-Image + event
@@ -146,7 +147,7 @@
- change: 49_SSCam: attributes rec/snapemailtxt, rec/snaptelegramtxt may
contain ":", StmKey quoted depending on attribute
noQuotesForSID (Forum: #45671.msg938236.html#msg938236)
- - change: 77_SMAEM: set reset to delete and reinitialize cacheFile,
+ - change: 77_SMAEM: set reset to delete and reinitialize cacheFile,
support of Installer.pm/Meta.pm added
- change: 73_GardenaSmartBridge: change loglevel
- change: 50_TelegramBot: allow \s, addtl silenCmds, fixes
@@ -170,7 +171,7 @@
reads Client-Insights to update blocked reading
- bugfix: 59_Weather: fix little bug then create weblink
- bugfix: 88_HMCCU: Flag for disabling initial device update
- - bugfix: 10_MYSENSORS_DEVICE: prevent fhem crashing by ack timeout
+ - bugfix: 10_MYSENSORS_DEVICE: prevent fhem crashing by ack timeout
at higher verobse levels
- change: 98_Heating_Control.pm will be removed soon. Users will need to
change their device definitions to 98_WeekdayTimer; supporting
@@ -195,7 +196,7 @@
separate readings for heatrbeat, smartSleep & NACK
- bugfix: 73_GardenaSmartBridge: fix undefined_value Error
- feature: 98_Text2Speech: add Amazon Polly as new suggested TTS-Engine
- due best quality
+ due best quality
- bugfix: 73_AutoShuttersControl: fix shading absent and coming home, fix
Reading ASC_Time_PrivacyDriveDown, fix blocking shutter then
shading drive and terrace door open
@@ -212,7 +213,7 @@
- change: 50_MOBILEALERTSGW: Checksum check added
- change: 93_DbRep: check index "Report_Idx" during first DB connect
- change: 98_RandomTimer: remove 59_Twilight dependency
- - feature: 93_DbRep: new set "index" command to manage needed indexe for
+ - feature: 93_DbRep: new set "index" command to manage needed indexe for
DbLog and DbRep, minor code changes
- change: 98_WeekdayTimer: remove 59_Twilight dependency
- feature: 73_AutoShuttersControl: new major release 0.6, add wind support,
@@ -236,9 +237,9 @@
!!! NOTE !!! attr shutdownWait will be deleted it set and
an appropriated log message appears.
- bugfix: 70_BRAVIA: fix channel presets
- - bugfix: 49_SSCam: fix perl warnings, Forum: 45671.msg927912.html#msg927912
+ - bugfix: 49_SSCam: fix perl warnings, Forum: 45671.msg927912.html#msg927912
- new: 10_WS980: new module to control the WS980Wifi weather station
- - feature: 93_DbRep: the "explain" SQL-command is possible now in sqlCmd
+ - feature: 93_DbRep: the "explain" SQL-command is possible now in sqlCmd
- feature: 10_MYSENSORS_DEVICE: add attrTemplate support
- change: 00_MYSENSORS: enhance support for node functions
when using multiple GW's
@@ -251,7 +252,7 @@
Support
- change: 73_AMADCommBridge: change to perl packages, add Meta and Installer
Support
- - change: 49_SSCam: delay FHEM shutdown as long as sessions are not
+ - change: 49_SSCam: delay FHEM shutdown as long as sessions are not
terminated, add Meta.pm support
- feature: 30_HUEBridge: added schedules (by PPP01)
- change: 74_GardenaSmartDevice: change on-for-timer time format
@@ -298,7 +299,7 @@
a optional given device, fix deldoublets in SQLite
- bugfix: 49_SSCam: V8.11.3, fhem hang in loop while restart or get snapinfo
Forum: #45671.msg915546.html#msg915546
- - feature: mqtt2.template: A_00_MQTT2_CLIENT_general_bridge revised for better
+ - feature: mqtt2.template: A_00_MQTT2_CLIENT_general_bridge revised for better
compability with popular devices
- bugfix: 49_SSCam: back to V8.11.0 due to some problems with 8.11.2
- feature: 70_ENIGMA2: add remotecontrolChannel attribute to customize
@@ -316,7 +317,7 @@
- changed: 93_DbLog: minor change of Log entry
- changed: 70_Pushover: attribute 'storage' was renamed to 'storagePath'
and is now visible in FHEMWEB
- - changed: 98_weekprofile: use topic name from reading 'active_topic'
+ - changed: 98_weekprofile: use topic name from reading 'active_topic'
if topic name isn't given
- changed: 98_STOCKQUOTES: moved to contrib since not maintained and broken
due to termination of Yahoo Finance API
@@ -337,7 +338,7 @@
- bugfix: 74_UnififSwitch: fixed poe restart
- feature: 57_Calendar.pm: new features and attributes
german commandref added
- - bugfix: 00_SIGNALduino: Load protocolHash from web if file is
+ - bugfix: 00_SIGNALduino: Load protocolHash from web if file is
missing on fs
- bugfix: 49_SSCam: some warnings, Forum:#97706
- bugfix: 88_HMCCU: Fixed minor bugs.
@@ -345,19 +346,19 @@
new webmenu "Display protocollist".
Serval new protocols added.
New Oregon V3 sensors suppored.
- Firmware for avr boards can be downloaded and flashed.
+ Firmware for avr boards can be downloaded and flashed.
on demand from gitghub releases.
supports dupTimeout on same iodev
change: 00_SIGNALduino: Attribute hardware does not longer support nano
select nano328 instead
- feature: 14_SD_RSL: Updated implementation for "all" button on devices
- feature: 14_SD_WS: support sensors E0001PA,S522,TX-EZ6,other
- reading sendmode humidityTrend, temperatureTrend,
+ reading sendmode humidityTrend, temperatureTrend,
windspeed, batteryState added
attr max-deviation-temp and -hum added
- changed: 14_SD_WS07: attr correction-xxx to offset-xxx renamed!
- feature: 14_SD_WS07: new negation-batt attribute
- Temp only sensors supported
+ Temp only sensors supported
support for max deviation attribute
- changed: 14_SD_WS09: reading batteryState added, commandref extended
- changed: 14_Hideki: reading batteryState added
@@ -374,7 +375,7 @@
equivalent
- bugfix: 70_BOTVAC: solved recursion while looking up hostname of server
- feature: limit reading/attr name length in featurelevel 6.0+ (Forum #97493)
- - feature: 49_SSCam: send recordings by telegram is integrated as well as
+ - feature: 49_SSCam: send recordings by telegram is integrated as well as
sending snapshots
- bugfix: 74_XiaomiBTLESens: fix Undefined subroutine
&XiaomiBTLESens::makeDeviceName Bug
@@ -384,8 +385,8 @@
- changed. 98_WOL: remove dependency on Twilight + German COmmandref
- bugfix: 98_WeekdayTimer: Label not found for "next E"
- bugfix: 70_ONKYO_AVR: model Reading not written correctly
- - feature: 93_DbRep: executeBeforeProc / executeAfterProc is now available
- for sqlCmd,sumValue, maxValue, minValue, diffValue,
+ - feature: 93_DbRep: executeBeforeProc / executeAfterProc is now available
+ for sqlCmd,sumValue, maxValue, minValue, diffValue,
averageValue
- changed: 98_WeekdayTimer: remove Twilight dependency
- feature: 74_AMADautomagicflowset: add support for Android 9 Pie
diff --git a/fhem/FHEM/57_Calendar.pm b/fhem/FHEM/57_Calendar.pm
index 7fd6e142a..4b3feaa95 100644
--- a/fhem/FHEM/57_Calendar.pm
+++ b/fhem/FHEM/57_Calendar.pm
@@ -1938,6 +1938,8 @@ sub Calendar_Get($@) {
my @filters= ();
my $next= undef;
my $count= undef;
+ my $returnFormat= '$text';
+ my @includes= ();
my ($paramerror, $arrayref)= Calendar_simpleParseWords(join(" ", @a));
return "$name: Parameter parse error: $paramerror" if(defined($paramerror));
@@ -1965,7 +1967,7 @@ sub Calendar_Get($@) {
} elsif($p =~ /^timeFormat:['"](.+)['"]$/) {
$timeFormat= $1;
### filter
- } elsif($p =~ /^filter:(.+)$/) {
+ } elsif($p =~ /^filter:(.+)$/) {
my ($filtererror, $filterarrayref)= Calendar_simpleParseWords($1, ",");
return "$name: Filter parse error: $filtererror" if(defined($filtererror));
my @filterspecs= @{$filterarrayref};
@@ -2038,13 +2040,41 @@ sub Calendar_Get($@) {
}
}
- } else {
+ } elsif($p =~ /^returnType:(.+)$/) {
+ $returnFormat= $1;
+ if( ($returnFormat eq '$text') ||
+ ($returnFormat eq '@events') ||
+ ($returnFormat eq '@texts')) {
+ # fine
+ } else {
+ return "$name: Illegal return format: $returnFormat";
+ }
+ } elsif($p =~ /^include:(.+)$/) {
+ @includes= split(",", $1);
+ # remove duplicates
+ @includes= keys %{{ map{ $_ => 1 } @includes }};
+ #my %seen = ();
+ #@includes = grep { ! $seen{ $_ }++ } @includes;
+ } else {
return "$name: Illegal parameter: $p";
}
}
- my @texts;
my @events= Calendar_GetEvents($hash, $t, @filters);
+
+ if($#includes>= 0) {
+ foreach my $calname (@includes) {
+ next if($calname eq $name); # silently ignore inclusion of this calendar
+ my $dev= $defs{$calname};
+ if(defined($dev) && $dev->{TYPE} eq "Calendar") {
+ push @events, Calendar_GetEvents($dev, $t, @filters);
+ } else {
+ Log3 $hash, 2, "$name: device $calname does not exist or is not a Calendar";
+ }
+ }
+ @events= sort { $a->start() <=> $b->start() } @events;
+ }
+
# special treatment for next
if(defined($next)) {
my %uids; # remember the UIDs
@@ -2058,11 +2088,16 @@ sub Calendar_Get($@) {
} @events;
}
+ return @events if($returnFormat eq '@events');
+
my $n= 0;
+ my @texts;
foreach my $event (@events) {
push @texts, $event->formatted($format, $timeFormat);
last if(defined($count) && (++$n>= $count));
}
+ return @texts if($returnFormat eq '@texts');
+
return "" if($#texts<0);
return join("\n", @texts);
@@ -3248,15 +3283,15 @@ sub CalendarEventsAsHtml($;$) {
- Wildcards in url will be evaluated on every calendar update.
- - The evaluation of wildcards maybe disabled by adding literal 'noWildcards' to attribute 'quirks'.
- This may be useful in url containing % without marking a wildcard.
+ - The evaluation of wildcards maybe disabled by adding literal 'noWildcards' to attribute 'quirks'.
+ This may be useful in url containing % without marking a wildcard.
- Note for users of Google Calendar:
+ Note for users of Google Calendar:
- Wildcards must not be used in Google Calendar url!
- You can literally use the private ICal URL from your Google Calendar.
- - If your Google Calendar URL starts with
https://
and the perl module IO::Socket::SSL is
- not installed on your system, you can replace it by http://
if and only if there is
+ - If your Google Calendar URL starts with
https://
and the perl module IO::Socket::SSL is
+ not installed on your system, you can replace it by http://
if and only if there is
no redirection to the https://
URL. Check with your browser first if unsure.
@@ -3300,7 +3335,11 @@ sub CalendarEventsAsHtml($;$) {
Same as set <name> update
- get <name> events [format:<formatSpec>] [timeFormat:<timeFormatSpec>] [filter:<filterSpecs>] [series:next[=<max>]] [limit:<limitSpecs>]
+ get <name> events [format:<formatSpec>] [timeFormat:<timeFormatSpec>] [filter:<filterSpecs>]
+ [series:next[=<max>]] [limit:<limitSpecs>]
+ [include:<names>]
+ [returnType:<returnTypeSpec>]
+
The swiss army knife for displaying calendar events.
Returns, line by line, information on the calendar events in the calendar <name>
according to formatting and filtering rules.
@@ -3449,6 +3488,28 @@ sub CalendarEventsAsHtml($;$) {
get MyCalendar events limit:count=10,from=0,to=+10d
+ The include
parameter includes events from other calendars. This is useful for
+ displaying events from several calendars in one combined output. <names>
is
+ a comma-separated list of names of calendar devices. The name of the device itself as well as
+ any duplicates are silently ignored. Names of non-existant devices or of devices that are not
+ Calendar devices are ignored and an error is written to the log.
+ Example:
+ get MyCalendar events include:HolidayCalendar,GarbageCollection
+
+
+
+ The returnType
parameter is used to return the events in a particular type.
+ This is useful for Perl scripts.
+
+
+ <returnTypeSpec> | description |
+ $text | a multiline string in human-readable format (default) |
+ @texts | an array of strings in human-readable format |
+ @event | an array of Calendar::Event hashes |
+
+
+
+
@@ -3546,9 +3607,9 @@ sub CalendarEventsAsHtml($;$) {
the <timeFormatSpec> in quotes.
synchronousUpdate 0|1
- If this attribute is not set or if it is set to 0, the processing is done
+ If this attribute is not set or if it is set to 0, the processing is done
in the background and FHEM will not block during updates.
- If this attribute is set to 1, the processing of the calendar is done
+ If this attribute is set to 1, the processing of the calendar is done
in the foreground. Large calendars will block FHEM on slow systems.
Attribute value will be ignored if FHEM is running on a Windows platform.
@@ -3917,9 +3978,9 @@ sub CalendarEventsAsHtml($;$) {
-Die wildcards werden bei jedem Kalenderupdate ausgewertet.
-Die Auswertung von wildcards kann bei Bedarf fü einen Kalender deaktiviert werden, indem das Schlüsselwort 'noWildcards'
dem Attribut 'quirks' hinzugefügt wird. Das ist nützlich bei url die bereits ein % enthalten, ohne damit ein wildcard
- zu kennzeichnen.
+ zu kennzeichnen.
- Hinweise für Nutzer des Google-Kalenders:
+ Hinweise für Nutzer des Google-Kalenders:
- Wildcards dürfen in Google Kalender URL nicht verwendet werden!
- Du kannst direkt die private iCal-URL des Google-Kalenders nutzen.
@@ -3940,7 +4001,7 @@ sub CalendarEventsAsHtml($;$) {
define IrgendeinKalender Calendar ical file /home/johndoe/calendar.ics
-
+
Set
@@ -3964,19 +4025,23 @@ sub CalendarEventsAsHtml($;$) {
get <name> reload
Entspricht set <name> reload
-
-
- get <name> events [format:<formatSpec>] [timeFormat:<timeFormatSpec>] [filter:<filterSpecs>] [series:next[=<max>]] [limit:<limitSpecs>]
+
+
+ get <name> events [format:<formatSpec>] [timeFormat:<timeFormatSpec>] [filter:<filterSpecs>]
+ [series:next[=<max>]] [limit:<limitSpecs>]
+ [include:<names>]
+ [returnType:<returnTypeSpec>]
+
Das Schweizer Taschenmesser für die Anzeige von Terminen.
Die Termine des Kalenders <name> werden Zeile für Zeile entsprechend der Format- und Filterangaben ausgegeben.
Keiner, einer oder mehrere der Parameter format
,
timeFormat
, filter
, series
und limit
können angegeben werden, weiterhin ist es sinnvoll, den Parameter filter
mehrere Male anzugeben.
-
+
Der Parameter format
legt den zurückgegeben Inhalt fest.
Folgende Formatspezifikationen stehen zur Verfügung:
-
+
<formatSpec> | Beschreibung |
default | Standardformat (siehe unten) |
@@ -3985,13 +4050,13 @@ sub CalendarEventsAsHtml($;$) {
custom="<formatString>" | ein spezifisches Format (siehe unten) |
custom="{ <perl-code> }" | ein spezifisches Format (siehe unten) |
- Einzelne Anführungszeichen ('
) können anstelle von doppelten Anführungszeichen ("
) innerhalb
+ Einzelne Anführungszeichen ('
) können anstelle von doppelten Anführungszeichen ("
) innerhalb
eines spezifischen Formats benutzt werden.
-
+
Folgende Variablen können in <formatString>
und in
<perl-code>
verwendet werden:
-
+
variable | Bedeutung |
$t1 | Startzeit in Sekunden |
@@ -4016,22 +4081,22 @@ sub CalendarEventsAsHtml($;$) {
Wird der Parameter format
ausgelassen, dann wird die Formatierung
aus defaultFormat
benutzt. Ist dieses Attribut nicht gesetzt, wird "$T1 $D $S"
als Formatierung benutzt.
-
+
Das letzte Auftreten von format
gewinnt bei mehrfacher Angabe.
-
+
Examples:
get MyCalendar events format:full
get MyCalendar events format:custom="$T1-$T2 $S \@ $L"
get MyCalendar events format:custom={ sprintf("%20s %8s", $S, $D) }
- Der Parameter timeFormat
legt das Format für die Start-,
+ Der Parameter timeFormat
legt das Format für die Start-,
End- und Alarmzeiten fest.
In <timeFormatSpec>
kann die POSIX-Spezifikation verwendet werden.
Auf strftime.net gibt es ein Tool zum Erstellen von
<timeFormatSpec>
.
-
+
Wenn der Parameter timeFormat
ausgelassen, dann wird die Formatierung
aus defaultTimeFormat
benutzt. Ist dieses Attribut nicht gesetzt, dann
wird "%d.%m.%Y %H:%M"
als Formatierung benutzt.
@@ -4039,7 +4104,7 @@ sub CalendarEventsAsHtml($;$) {
doppelte ("
) Anführungszeichen verwendet werden.
Das letzte Auftreten von timeFormat
gewinnt bei mehrfacher Angabe.
-
+
Example:
get MyCalendar events timeFormat:"%e-%b-%Y" format:full
@@ -4051,7 +4116,7 @@ sub CalendarEventsAsHtml($;$) {
Alle Filterangaben müssen zutreffen, damit ein Termin angezeigt wird.
Die Angabe ist kumulativ: jeder angegebene Filter wird zur Filterliste hinzugef&uum;gt
und ber&uum;cksichtigt.
-
+
<filterSpec> | Beschreibung |
uid=="<uid>" | UID ist <uid>
@@ -4074,7 +4139,7 @@ sub CalendarEventsAsHtml($;$) {
Die doppelten Anführungszeichen auf der rechten Seite von <filterSpec> sind nicht
Teil des regulären Ausdrucks. Es können stattdessen einfache Anführungszeichen verwendet werden.
-
+
Examples:
get MyCalendar events filter:uid=="432dsafweq64yehdbwqhkd"
get MyCalendar events filter:uid=~"^7"
@@ -4086,7 +4151,7 @@ sub CalendarEventsAsHtml($;$) {
get MyCalendar events filter:field(summary)=~"Gelber Sack" filter:mode=~"upcoming|start"
- Der Parameter series bestimmt die Anzeige von wiederkehrenden
+ Der Parameter series bestimmt die Anzeige von wiederkehrenden
Terminen. series:next begrenzt die Anzeige auf den nächsten Termin
der noch nicht beendeten Termine innerhalb der Serie. series:next=<max>
zeigt die nächsten <max> Termine der Serie. Dies gilt pro Serie.
@@ -4099,10 +4164,10 @@ sub CalendarEventsAsHtml($;$) {
<limitSpec> | Beschreibung |
count=<n> | zeigt <n> Termine, wobei <n> eine positive Ganzzahl (integer) ist |
- from=[+|-]<timespec> | zeigt nur Termine die nach einer Zeitspanne <timespec> ab jetzt enden;
+ | from=[+|-]<timespec> | zeigt nur Termine die nach einer Zeitspanne <timespec> ab jetzt enden;
Minuszeichen für Termine in der Vergangenheit benutzen; <timespec> wird weiter unten im Attribut-Abschnitt beschrieben. |
to=[+|-]<timespec> |
- zeigt nur Termine die vor einer Zeitspanne <timespec> ab jetzt starten;
+ zeigt nur Termine die vor einer Zeitspanne <timespec> ab jetzt starten;
Minuszeichen für Termine in der Vergangenheit benutzen; <timespec> wird weiter unten im Attribut-Abschnitt beschrieben. |
when=today|tomorrow | zeigt anstehende Termin für heute oder morgen an |
@@ -4114,9 +4179,32 @@ sub CalendarEventsAsHtml($;$) {
get MyCalendar events limit:count=10,from=0,to=+10d
+ Der include Parameter schließt Termine aus anderen Kalendern ein. Das ist nützlich,
+ um Termine aus anderen Kalendern in einer kombimierten Ausgabe anzuzeigen.
+ <names> ist eine mit Kommas getrennte Liste der Namen von Calendar-Geräten.
+ Der Name des Kalenders selbst sowie Duplikate werden stillschweigend ignoriert. Namen von Geräten, die
+ es nicht gibt oder keine Calendar-Geräte sind, werden ignoriert und es wird eine Fehlermeldung ins Log
+ geschrieben.
+ Example:
+ get MyCalendar events include:Feiertage,Müllabfuhr
+
+
+
+ Der Parameter returnType wird verwendet, um die Termine als ein bestimmter Typ
+ zurückzugeben. Das ist nützlich für Perl-Skripte.
+
+
+ <returnTypeSpec> | Beschreibung |
+ $text | ein mehrzeiliger String in menschenlesbarer Darstellung (Vorgabe) |
+ @texts | ein Array von Strings in menschenlesbarer Darstellung |
+ @event | ein Array von Calendar::Event-Hashs |
+
+
+
+
-
-
+
+
get <name> find <regexp>
Gibt zeilenweise die UID von allen Terminen aus, deren Zusammenfassung dem regulären Ausdruck <regexp> entspricht.
@@ -4145,23 +4233,23 @@ sub CalendarEventsAsHtml($;$) {
defaultTimeFormat <timeFormatSpec>
Setzt das Standardzeitformat für get <name> events .
Der Aufbau wird dort erklät. <timeFormatSpec> nicht in Anführungszeichen setzten.
-
+
synchronousUpdate 0|1
- Wenn dieses Attribut nicht oder auf 0 gesetzt ist, findet die Verarbeitung im Hintergrund statt
+ Wenn dieses Attribut nicht oder auf 0 gesetzt ist, findet die Verarbeitung im Hintergrund statt
und FHEM wird während der Verarbeitung nicht blockieren.
- Wird dieses Attribut auf 1 gesetzt, findet die Verarbeitung des Kalenders im Vordergrund statt.
- Umfangreiche Kalender werden FHEM auf langsamen Systemen blockieren.
+ Wird dieses Attribut auf 1 gesetzt, findet die Verarbeitung des Kalenders im Vordergrund statt.
+ Umfangreiche Kalender werden FHEM auf langsamen Systemen blockieren.
- Das Attribut wird ignoriert, falls FHEM unter Windows betrieben wird.
+ Das Attribut wird ignoriert, falls FHEM unter Windows betrieben wird.
In diesem Fall erfolgt die Verarbeitung immer synchron.
update none|onUrlChanged
Wird dieses Attribut auf none gesetzt ist, wird der Kalender überhaupt nicht aktualisiert.
- Wird dieses Attribut auf onUrlChanged gesetzt ist, wird der Kalender nur dann aktualisiert, wenn sich die
+ Wird dieses Attribut auf onUrlChanged gesetzt ist, wird der Kalender nur dann aktualisiert, wenn sich die
URL seit dem letzten Aufruf verändert hat, insbesondere nach der Auswertung von wildcards im define.
-
+
removevcalendar 0|1
Wenn dieses Attribut auf 1 gesetzt ist, wird der vCalendar nach der Verarbeitung verworfen,
gleichzeitig reduziert sich der Speicherverbrauch des Moduls.
|