openhab / openhab1-addons

Add-ons for openHAB 1.x
Eclipse Public License 2.0
3.43k stars 1.71k forks source link

[CalDAV] EXDATE is ignored #5732

Closed fafische closed 5 years ago

fafische commented 5 years ago

EXDATE in repeating appointsments are ignored for caldav-command. The events are executed even on the dates excluded in the appointment.

Expected Behavior

Events are not executed on dates excluded in repeating appointment.

Current Behavior

The events are executed even on the dates excluded in the appointment.

Steps to Reproduce (for bugs)

the following event was fired on 4.,5. and 10. december:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Zarafa//7.2.4-29//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:(GMT +01:00) BEGIN:STANDARD DTSTART:19700101T030000 TZOFFSETFROM:+0200 TZOFFSETTO:+0100 RRULE:FREQ=YEARLY;WKST=SU;BYMONTH=10;BYDAY=4SU END:STANDARD BEGIN:DAYLIGHT DTSTART:19700101T020000 TZOFFSETFROM:+0100 TZOFFSETTO:+0200 RRULE:FREQ=YEARLY;WKST=SU;BYMONTH=3;BYDAY=-1SU END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT STATUS:CONFIRMED X-MOZ-SEND-INVITATIONS:TRUE ORGANIZER;CN=Fabian Fischer:mailto:abc@abc.abc TRANSP:OPAQUE X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY CREATED:20181121T194056Z LAST-MODIFIED:20181210T084149Z DTSTAMP:20181210T084149Z DTSTART;TZID="(GMT +01:00)":20181122T163000 DTEND;TZID="(GMT +01:00)":20181122T235500 SUMMARY:Heizen DESCRIPTION:BEGIN:Modus_Heizung_Interface:4\nEND:Modus_Heizung_Interface: 1 CLASS:PUBLIC UID:4f8277f0-88ba-40c2-b0de-990c8b7129f4 X-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE:20181212T183508Z X-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE:20181212T183508Z X-MICROSOFT-CDO-APPT-SEQUENCE:0 X-MICROSOFT-CDO-OWNERAPPTID:-1 X-MICROSOFT-CDO-ALLDAYEVENT:FALSE X-ZARAFA-REC-PATTERN:This item is recurring RRULE:FREQ=WEEKLY;UNTIL=20190328T153000Z;BYDAY=MO,TU,WE,TH EXDATE:20181204T163000 EXDATE:20181205T163000 EXDATE:20181210T163000 END:VEVENT

Context

I use a calendar-item to control heating. When I am off for some days, I remove the appointment for these days. Unfortunatly the event in openhab is executed anyway.

Your Environment

Rapspi2b (linux 4.9.59) Openhab 2.3.0 installed form package repository calendar-server: Zarafa 7.2.4

9037568 commented 5 years ago

The underlying library may not yet support this. See this ticket. Would you be willing to test an update to the latest library release?

fafische commented 5 years ago

When you give me an hint or better an detailed explanation ;-) how to embed the updated libary, I will be glad testing it. It will help me about one time a week when fully functional.

9037568 commented 5 years ago

Here are the jar files. This updates the ical4j library to 2.2.1.

caldav-io caldav-personal caldav-command

fafische commented 5 years ago

I got an exception in openhab.log. Full stacktrace and config attached stacktrace.txt caldavCommand.cfg.txt caldavio.cfg.txt

2018-12-13 18:56:08.832 [ERROR] [org.openhab.binding.caldav-command ] - [org.openhab.binding.caldav_command(226)] The addBindingProvider method has thrown an exception java.lang.IllegalArgumentException: argument type mismatch

9037568 commented 5 years ago

Check your bundles and make sure the right ones are running.

fafische commented 5 years ago

I tried again using https://community.openhab.org/t/frequently-asked-questions-faqs/17727#addons-1 to install snapshot version. When restarting openhab I get this error now: java.lang.NoClassDefFoundError: org/threeten/bp/temporal/TemporalAdjuster at net.fortuna.ical4j.model.TimeZoneRegistryImpl.(TimeZoneRegistryImpl.java:125) ~[224:org.openhab.io.caldav:1.13.0.201812130654] at net.fortuna.ical4j.model.TimeZoneRegistryImpl.(TimeZoneRegistryImpl.java:116) ~[224:org.openhab.io.caldav:1.13.0.201812130654] at net.fortuna.ical4j.model.DefaultTimeZoneRegistryFactory.createRegistry(DefaultTimeZoneRegistryFactory.java:48) ~[224:org.openhab.io.caldav:1.13.0.201812130654] at net.fortuna.ical4j.data.CalendarBuilder.(CalendarBuilder.java:105) ~[224:org.openhab.io.caldav:1.13.0.201812130654] at org.openhab.io.caldav.internal.job.EventReloaderJob.loadEvents(EventReloaderJob.java:334) ~[224:org.openhab.io.caldav:1.13.0.201812130654] at org.openhab.io.caldav.internal.job.EventReloaderJob.execute(EventReloaderJob.java:100) [224:org.openhab.io.caldav:1.13.0.201812130654] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]

A part of bundle:list -s: 224 │ Active │ 80 │ 1.13.0.201812130654 │ org.openhab.io.caldav 225 │ Resolved │ 80 │ 1.13.0.201812130655 │ org.openhab.binding.caldav-command

Can I manually install the missing libary or is a rebuild of caldav-io is needed?

9037568 commented 5 years ago

This is why it's bad to include supporting libraries directly.

I'll have to add the missing jar, determine if there are any others missing, and then rebuild. I'll try to get to that this weekend...

9037568 commented 5 years ago

Please try these: caldavIO caldavPersonal caldavCommand

Not seeing any exceptions when running in my OH 2.3.0 installation.

fafische commented 5 years ago

The new version is starting without exceptions. There are still some things wrong:

Loglines, an excerpt of bundle:list -s and content of /var/lib/openhab2/etc/caldav/openhab_tasks/4f8277f0-88ba-40c2-b0de-990c8b7129f4.ics are attached.

openhabCaldav2019-01-04.txt

cweitkamp commented 5 years ago

@9037568 Shall we give it another try an upgrade ical4j to release version 2.2.3? I will volunteer for testing.

//Edit: Did you change anything else except updating the library? If not I will prepare a test version.

daMihe commented 5 years ago

@cweitkamp Tried now a build with 2.2.3 and master: I think it works, EXDATE bahaved as expected, tried a single and multiple deletion of events in a series.

org.openhab.x.caldav-1.14-SNAPSHOT.zip

Just ical4j 2.2.3 was added and build-library-setting was changed.

cweitkamp commented 5 years ago

@daMihe Thanks for providing an updated version. I have installed it in my environment and will run and test it for a few days. Will report back if something will occurs. Otherwise feel free to contribute your changes.

cweitkamp commented 5 years ago

I am running it in my environment without any problems. :+1: for a PR.

daMihe commented 5 years ago

have created #5860 , but i'm not able to fix the error inside the build:

[WARNING] The effective compiler target level 1.8 is incompatible with the following OSGi execution environments: [JavaSE-1.7 (assumes 1.7)] @ MavenProject: org.openhab.io:org.openhab.io.caldav:1.14.0-SNAPSHOT @ /var/jenkins_home/workspace/PR-openHAB1-Addons/bundles/io/org.openhab.io.caldav/pom.xml

Maybe it happens as the library was taken from external source and not built in the same environment (as written: using a newer version than specified as target). I'm not sure if i should change the target version as official support of oracle java ended in 2015 on the other hand i don't know about internal dependencies which is quite magic for me inside the addons-project. I'm sorry i'm not able to create a usable PR currently.

cweitkamp commented 5 years ago

@daMihe See my https://github.com/openhab/openhab1-addons/pull/5860#pullrequestreview-236277396 in the PR.