diff --git a/fhem/FHEM/57_Calendar.pm b/fhem/FHEM/57_Calendar.pm index 9ae2d9735..03900883b 100644 --- a/fhem/FHEM/57_Calendar.pm +++ b/fhem/FHEM/57_Calendar.pm @@ -639,6 +639,7 @@ sub Calendar_CheckTimes($) { foreach $event (@endedevents) { $event->setMode("end"); } my @changedevents= grep { $_->modeChanged() } @allevents; + my @upcoming= sort map { $_->uid() } @upcomingevents; my @alarm= sort map { $_->uid() } @alarmedevents; @@ -649,7 +650,9 @@ sub Calendar_CheckTimes($) { my @ended= sort map { $_->uid() } grep { $_->modeChanged() } @endedevents; my @changed= sort map { $_->uid() } @changedevents; - readingsBeginUpdate($hash); + readingsBeginUpdate($hash); # clears all events in CHANGED, thus must be called first + # we create one fhem event for one changed calendar event + map { addEvent($hash, "changed: " . $_->uid() . " " . $_->mode() ); } @changedevents; readingsUpdate($hash, "lastCheck", $hash->{fhem}{lastCheck}); readingsUpdate($hash, "modeUpcoming", join(";", @upcoming)); readingsUpdate($hash, "modeAlarm", join(";", @alarm)); diff --git a/fhem/docs/commandref.html b/fhem/docs/commandref.html index ed4446d7b..5e3a6770b 100644 --- a/fhem/docs/commandref.html +++ b/fhem/docs/commandref.html @@ -1507,6 +1507,11 @@ A line ending with \ will be concatenated with the next one, so long lines </table> </ul> <p> + + When a calendar event has changed, an event is created in the form + <code>changed: UID mode</code> with mode being the current mode the calendar event is in after the change. + + <p> <b>Usage scenarios</b> <ul>