Problem mit wiederkehrendem ganztägigem Termin (Keine Ende Event)

Begonnen von cseuss, 09 Oktober 2020, 18:32:37

Vorheriges Thema - Nächstes Thema

cseuss

Hallo zusammen,

ich nutze schon lange das Calendar-Modul. Ich habe meinen iCloud-Kalender angebunden.

defmod Chris_Kalender Calendar ical url http://p21-calendars.icloud.com/published/2/<id> 41220\

attr Chris_Kalender cutoffLaterThan 30d
attr Chris_Kalender cutoffOlderThan 2d
attr Chris_Kalender defaultFormat $S
attr Chris_Kalender room Kalender



Ich habe eine Funktion, die bestimmte Kalendereinträge auswertet und dann Dummy setzt.

sub Kalenderstart_Chris ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Chris_Kalender events filter:uid==\"$uid\"");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Chris_Urlaub ja");
};
if ($Kalendertext =~ /Andrea-spät/) {
fhem("set Chris_Urlaub ja");
};
if ($Kalendertext =~ /Besuch/) {
fhem("set Gast_dummy ja");
};
if ($Kalendertext =~ /Beregnung1/) {
fhem("set du_Beregnung_Kalender_1 on");
};
if ($Kalendertext =~ /Beregnung2/) {
fhem("set du_Beregnung_Kalender_2 on");
};
};
}
sub Kalenderende_Chris ($) {
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Chris_Kalender events filter:uid==\"$uid\"");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Chris_Urlaub nein");
};
if ($Kalendertext =~ /Andrea-spät/) {
fhem("set Chris_Urlaub nein");
};
if ($Kalendertext =~ /Besuch/) {
fhem("set Gast_dummy nein");
};
if ($Kalendertext =~ /Beregnung1/) {
fhem("set du_Beregnung_Kalender_1 off");
};
if ($Kalendertext =~ /Beregnung2/) {
fhem("set du_Beregnung_Kalender_2 off");
};
};
}


Aufgerufen wird das Ganze in dieser Art:

defmod n_Chris_Kalender_Ende notify Chris_Kalender:modeEnded:.* {Kalenderende_Chris("$EVENT");;}

In letzter Zeit habe ich häufiger das Problem, dass bei ganztägigen wiederkehrenden Termine kein Endeevent um 00:00 Uhr ausgelöst wird. Der entsprechende Dummy wird dann leider nicht zurückgesetzt.

Im Log sieht man gut, dass das Start-Event kommt:

2020.10.08 00:00:00 3: CUL_HM set Ga.Licht_Vorgarten off
2020.10.08 00:00:00 3: get Chris_Kalender events filter:uid=="444707E4081C01E30F22FF010073B" : Andrea-spät
Andrea-spät
Andrea-spät
Andrea-spät
Andrea-spät
2020.10.08 00:00:00 3: ABFALL Abfall - CALENDAR:AbfallKalender triggered, updating ABFALL Abfall ...
2020.10.08 00:00:35 3: UWZ Unwetterzentrale: UWZ.1811 Done fetching data


Es gibt aber am 09.10.2020 um 00:00 Uhr keine Event.

Die Einträge scheinen aber korrekt ausgelesen werden zu können:

...
444707E4081C01E30F22FF010073B       end  08.10.2020 00:00-09.10.2020 00:00 Andrea-spät 
...
444707E4081C01E30F22FF010073B  upcoming  15.10.2020 00:00-16.10.2020 00:00 Andrea-spät 
...
444707E4081C01E30F22FF010073B  upcoming  22.10.2020 00:00-23.10.2020 00:00 Andrea-spät 
...
444707E4081C01E30F22FF010073B  upcoming  29.10.2020 00:00-30.10.2020 00:00 Andrea-spät 
...
444707E4081C01E30F22FF010073B  upcoming  05.11.2020 00:00-06.11.2020 00:00 Andrea-spät 
....


Was kann das sein?

Habt Ihr eine Idee?

Vielen Dank und Gruß
Christian

cseuss

Nachtrag:

Ich habe gerade gesehen, dass ich vor einigen Tagen schon ein FileLog für Kalenderevents erstellt hatte:

2020-10-08_00:00:00 Chris_Kalender changed: 444707E4081C01E30F22FF010073B start
2020-10-08_00:00:00 Chris_Kalender start: 444707E4081C01E30F22FF010073B
2020-10-08_00:00:00 Chris_Kalender modeUpcoming: D255FDEA8CD543818065C68E15F61196;7686B7353FEF4F46A74B728CF38EA0F5;2050CCBE543A4BE593C9D072ECF85C93;FT_2020_feiertag5f28b7c2d5c22schulferienorg
2020-10-08_00:00:00 Chris_Kalender modeAlarmOrStart: 444707E4081C01E30F22FF010073B
2020-10-08_00:00:00 Chris_Kalender modeChanged: 444707E4081C01E30F22FF010073B
2020-10-08_00:00:00 Chris_Kalender modeStart: 444707E4081C01E30F22FF010073B
2020-10-08_00:00:00 Chris_Kalender modeStarted: 444707E4081C01E30F22FF010073B
2020-10-08_00:00:00 Chris_Kalender modeEnd: 7C1D1551533D461191FD19ECB18FE23D;D34A855DBAF54D52BB2B31B33F492247;444707E2080701E31230FF2C0073A;E16C59904B9C43A286F0AD4BFE5FF623;B81FF2B1901D475981F1416BCE8ED4DD;444707E2050C02970621FF2200739;5AE79F200B91475DB3CAF922795F532A;435DE1EAE6064A14B7C4FC7BD23C227F;8FA22F03602A49E0B5B070D0CE98A3B5;D4C298B0B2E34FFEA8EE25C11230BC19
2020-10-08_00:00:00 Chris_Kalender triggered
2020-10-08_00:00:00 Chris_Kalender nextWakeup: 2020-10-08 05:33:36
2020-10-08_05:33:38 Chris_Kalender retrieved
2020-10-08_05:33:40 Chris_Kalender parsed
2020-10-08_05:33:40 Chris_Kalender calname: Privat
2020-10-08_05:33:40 Chris_Kalender lastUpdate: 2020-10-08 05:33:36
2020-10-08_05:33:40 Chris_Kalender nextUpdate: 2020-10-08 17:00:36
2020-10-08_05:33:40 Chris_Kalender modeUpcoming: D255FDEA8CD543818065C68E15F61196;FT_2020_feiertag5f28b7c2d5c22schulferienorg;7686B7353FEF4F46A74B728CF38EA0F5;2050CCBE543A4BE593C9D072ECF85C93
2020-10-08_05:33:40 Chris_Kalender modeChanged:
2020-10-08_05:33:40 Chris_Kalender modeStarted:
2020-10-08_05:33:40 Chris_Kalender modeEnd: 444707E2080701E31230FF2C0073A;E16C59904B9C43A286F0AD4BFE5FF623;B81FF2B1901D475981F1416BCE8ED4DD;444707E2050C02970621FF2200739;5AE79F200B91475DB3CAF922795F532A;435DE1EAE6064A14B7C4FC7BD23C227F;7C1D1551533D461191FD19ECB18FE23D;D34A855DBAF54D52BB2B31B33F492247;8FA22F03602A49E0B5B070D0CE98A3B5;D4C298B0B2E34FFEA8EE25C11230BC19
2020-10-08_05:33:40 Chris_Kalender triggered
2020-10-08_05:33:40 Chris_Kalender nextWakeup: 2020-10-08 17:00:36
2020-10-08_17:00:36 Chris_Kalender retrieved
2020-10-08_17:00:39 Chris_Kalender parsed
2020-10-08_17:00:39 Chris_Kalender calname: Privat
2020-10-08_17:00:39 Chris_Kalender lastUpdate: 2020-10-08 17:00:36
2020-10-08_17:00:39 Chris_Kalender nextUpdate: 2020-10-09 04:27:36
2020-10-08_17:00:39 Chris_Kalender modeUpcoming: D255FDEA8CD543818065C68E15F61196;FT_2020_feiertag5f28b7c2d5c22schulferienorg;2050CCBE543A4BE593C9D072ECF85C93;7686B7353FEF4F46A74B728CF38EA0F5
2020-10-08_17:00:39 Chris_Kalender modeEnd: 435DE1EAE6064A14B7C4FC7BD23C227F;5AE79F200B91475DB3CAF922795F532A;444707E2050C02970621FF2200739;B81FF2B1901D475981F1416BCE8ED4DD;E16C59904B9C43A286F0AD4BFE5FF623;444707E2080701E31230FF2C0073A;D34A855DBAF54D52BB2B31B33F492247;7C1D1551533D461191FD19ECB18FE23D;D4C298B0B2E34FFEA8EE25C11230BC19;8FA22F03602A49E0B5B070D0CE98A3B5
2020-10-08_17:00:39 Chris_Kalender triggered
2020-10-08_17:00:39 Chris_Kalender nextWakeup: 2020-10-09 00:00:00
2020-10-09_00:00:00 Chris_Kalender changed: 444707E4081C01E30F22FF010073B end
2020-10-09_00:00:00 Chris_Kalender end: 444707E4081C01E30F22FF010073B
2020-10-09_00:00:00 Chris_Kalender modeUpcoming: 2050CCBE543A4BE593C9D072ECF85C93;7686B7353FEF4F46A74B728CF38EA0F5;FT_2020_feiertag5f28b7c2d5c22schulferienorg;D255FDEA8CD543818065C68E15F61196;444707E4081C01E30F22FF010073B
2020-10-09_00:00:00 Chris_Kalender modeAlarmOrStart:
2020-10-09_00:00:00 Chris_Kalender modeChanged: 444707E4081C01E30F22FF010073B
2020-10-09_00:00:00 Chris_Kalender modeStart:
2020-10-09_00:00:00 Chris_Kalender modeEnd: D4C298B0B2E34FFEA8EE25C11230BC19;8FA22F03602A49E0B5B070D0CE98A3B5;7C1D1551533D461191FD19ECB18FE23D;D34A855DBAF54D52BB2B31B33F492247;435DE1EAE6064A14B7C4FC7BD23C227F;5AE79F200B91475DB3CAF922795F532A;B81FF2B1901D475981F1416BCE8ED4DD;444707E2050C02970621FF2200739;E16C59904B9C43A286F0AD4BFE5FF623;444707E2080701E31230FF2C0073A
2020-10-09_00:00:00 Chris_Kalender triggered
2020-10-09_00:00:00 Chris_Kalender nextWakeup: 2020-10-09 04:27:36
2020-10-09_04:27:36 Chris_Kalender retrieved
2020-10-09_04:27:38 Chris_Kalender parsed
2020-10-09_04:27:39 Chris_Kalender calname: Privat


Ich denke, hier fehlte vielleicht das ModeEnded Event.

Bei einem Termin innerhalb eines Tages kommt das ohne Probleme.

7C1D1551533D461191FD19ECB18FE23D       end  07.10.2020 16:30-07.10.2020 17:30 Friseur Sylvia  Bei uns

2020-10-07_06:39:38 Chris_Kalender nextWakeup: 2020-10-07 16:30:00
2020-10-07_16:30:00 Chris_Kalender changed: 7C1D1551533D461191FD19ECB18FE23D start
2020-10-07_16:30:00 Chris_Kalender start: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_16:30:00 Chris_Kalender modeUpcoming: D255FDEA8CD543818065C68E15F61196;444707E4081C01E30F22FF010073B;2050CCBE543A4BE593C9D072ECF85C93;7686B7353FEF4F46A74B728CF38EA0F5;FT_2020_feiertag5f28b7c2d5c22schulferienorg
2020-10-07_16:30:00 Chris_Kalender modeAlarmOrStart: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_16:30:00 Chris_Kalender modeChanged: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_16:30:00 Chris_Kalender modeStart: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_16:30:00 Chris_Kalender modeStarted: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_16:30:00 Chris_Kalender modeEnd: D34A855DBAF54D52BB2B31B33F492247;435DE1EAE6064A14B7C4FC7BD23C227F;5AE79F200B91475DB3CAF922795F532A;B81FF2B1901D475981F1416BCE8ED4DD;444707E2050C02970621FF2200739;E16C59904B9C43A286F0AD4BFE5FF623;444707E2080701E31230FF2C0073A;D4C298B0B2E34FFEA8EE25C11230BC19;8FA22F03602A49E0B5B070D0CE98A3B5
2020-10-07_16:30:00 Chris_Kalender triggered
2020-10-07_16:30:00 Chris_Kalender nextWakeup: 2020-10-07 17:30:00
2020-10-07_17:30:00 Chris_Kalender changed: 7C1D1551533D461191FD19ECB18FE23D end
2020-10-07_17:30:00 Chris_Kalender end: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_17:30:00 Chris_Kalender modeAlarmOrStart:
2020-10-07_17:30:00 Chris_Kalender modeStart:
2020-10-07_17:30:00 Chris_Kalender modeStarted:
2020-10-07_17:30:00 Chris_Kalender modeEnd: 7C1D1551533D461191FD19ECB18FE23D;D34A855DBAF54D52BB2B31B33F492247;5AE79F200B91475DB3CAF922795F532A;435DE1EAE6064A14B7C4FC7BD23C227F;B81FF2B1901D475981F1416BCE8ED4DD;444707E2050C02970621FF2200739;444707E2080701E31230FF2C0073A;E16C59904B9C43A286F0AD4BFE5FF623;D4C298B0B2E34FFEA8EE25C11230BC19;8FA22F03602A49E0B5B070D0CE98A3B5
2020-10-07_17:30:00 Chris_Kalender modeEnded: 7C1D1551533D461191FD19ECB18FE23D
2020-10-07_17:30:00 Chris_Kalender triggered
2020-10-07_17:30:00 Chris_Kalender nextWakeup: 2020-10-07 18:06:36
2020-10-07_18:06:38 Chris_Kalender retrieved
2020-10-07_18:06:40 Chris_Kalender parsed
2020-10-07_18:06:40 Chris_Kalender calname: Privat
2020-10-07_18:06:40 Chris_Kalender lastUpdate: 2020-10-07 18:06:36

Beta-User

Das mit dem fehlenden Ende-Tag in manchen Kalendern ist ein bekanntes Problem... Ein Lösungsansatz wäre in der cref zu Calendar zu finden:

ZitatPlug-ins
Experimentell, bitte mit Vorsicht nutzen. Ein Plug-In ist ein kleines Perl-Programm, das Termine nebenher verändern kann.
[...]

Zum Ergänzen einer fehlenden Endezeit, kann folgendes Plug-In benutzt werden:

attr MyCalendar onCreateEvent { $e->{end}= $e->{start}+86400 unless(defined($e->{end})) }
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors