Read the statement by Michael Teeuw here.
MMM-CalendarExt3 not syncing automatically with icloud
-
Hi, relative newbie to world of Pi and Magic Mirror. I have installed MM 2.26 with several modules on a Pi4, these all seem to be working. I have installed the MMM-CalendarExt3 module which i am using with a shared icloud calendar. The calendar on first install synced and pulled events through after following instructions on installing Vdirsyncer from the fantastic instructions given by Beh.
However, changing event information does not update on Calendar-Ext3 after the next refresh interval. I see the Calendar fade and re-appear as it refreshes but with same info.
Checking the ics file in Modules, Calendars properties I see that the file has not been updated since the initial sync.
I can however force CalendarExt3 to Sync and Update using the Vdirsyncer Sync command.
I am getting two errors logged in the error file pm2 creates.[3010:0324/105027.892355:ERROR:gbm_wrapper.cc(75)] Failed to get fd for plane.: No such file or directory (2) [3010:0324/105027.897460:ERROR:gbm_wrapper.cc(258)] Failed to export buffer to dma_buf: No such file or directory (2)
I am unsure what these errors are telling me? gbm_wrapper? And if they are related to my issue.
Here is my config ,in case there is something amiss with this.let config = { address: "localhost", // Address to listen on, can be: // - "localhost", "127.0.0.1", "::1" to listen on loopback interface // - another specific IPv4/6 to listen on a specific interface // - "0.0.0.0", "::" to listen on any interface // Default, when address config is left out or empty, is "localhost" port: 8080, basePath: "/", // The URL path where MagicMirror² is hosted. If you are using a Reverse proxy // you must set the sub path here. basePath must end with a / ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses // or add a specific IPv4 of 192.168.1.5 : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], useHttps: false, // Support HTTPS or not, default "false" will use HTTP httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true language: "en", locale: "en-GB", logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging timeFormat: 24, units: "metric", modules: [ { module: "alert", }, { module: "calendar", //position: "", config: { maximumEntries: 20, broadcastPastEvents: true, calendars: [ { fetchInterval: 10 * 60 * 1000, //10mins symbol: "calendar-check", url: "http://localhost:8080/modules/calendars/*****.ics" } ] } }, { module: "updatenotification", position: "top_bar", }, { module: "clock", position: "top_left", }, { module: 'MMM-GoogleMapsTraffic', position: 'top_left', config: { key: '******', lat: *******, lng: *******, height: '550px', width: '550px', zoom: 13, styledMapType: "standard", disableDefaultUI: true, backgroundColor: 'hsla(0, 0%, 0%, 0)', }, }, { module: "MMM-CalendarExt3", position: "lower_third", config: { firstDayOfWeek: 0, locale: 'en-GB', }, }, { module: "weather", position: "top_right", config: { weatherProvider: "ukmetoffice", type: "current", location: "********", locationID: "******", //ID apiKey: "*******" } }, { module: "weather", position: "top_right", header: "Weather Forecast", config: { weatherProvider: "ukmetoffice", type: "forecast", location: "*******", locationID: "*******", //ID apiKey: "********" } }, { module: "newsfeed", position: "bottom_bar", config: { feeds: [ { title: "BBC News", url: "https://feeds.bbci.co.uk/news/rss.xml#" } ], showSourceTitle: true, showPublishDate: true, broadcastNewsFeeds: true, broadcastNewsUpdates: true } }, ] };
I know that there are quite a few posts on this subject and I have tried various answers offered from within these posts without any success.
Is this an issue with Vdirsyncer fetching?
Is there anything else I can try? Or maybe not doing correctly?
Thanks in advance. -
@lightfixer2000
At this moment, I’m unsure the exact symptom what you said.
There is an undocumented options for more detail configuration.
Tryexpand: false,
in your module config.{ module: "MMM-CalDAV", config: { servers: [ { envPrefix: "ICLOUD_", // I assumed. serverUrl: "https://caldav.icloud.com", expand: false, // <== This. targets: [ ...
I’m not sure whether this will help yours or not. I just suspect.
PS. (more detail).
This option is related to expanding repeated events to a series of single independent events. As far as I remember, in some prior calendars, there were some issues handling repeated events by RRULE. So, I made this module to forcefully avoid that issue by default. I think recently things might be changed, so hidden optionexpand: true
might cause your symptom. -
@lightfixer2000
Nothing seems wrong. It seems just a sync timing issue. I don’t think it is the kind of issue to fix, but…
Your vdirsyncer may sync calendars at some point, and the calendar module fetches the change at another point (repeatedly in 10 minutes). CX3 will refresh itself at the other point (by default, every 10 minutes).
So when you change an event at some point, vdirsyncer may not have synced that event yet, or even if vdirsyncer synced successfully, the calendar module may not have fetched the event yet.
In the worst case, I think at least 20 minutes may be needed to reflect the change of event. It takes 2 cycles of CX3’s defaults.Should it be the problem? I don’t think so. Calendar events are usually very stable and not frequently changed. Just waiting 20 ~ 30 minutes is an acceptable time for daily usage.
However, if you want a more urgent reflection of the change, shorten the period of sync/fetch/refresh of the 3 related programs(vdirsync, calendar module, CX3). But 99% of the process would be wasted with unchanged, same events,
-
@MMRIZE
Hi, Thanks for your response.
The actual MM works well and the CalendarExt3 display’s ok. I will leave the calendar for a longer time to allow further syncs to take place.
Any thoughts on the errors that are being reported in the log?
Thanks -
@lightfixer2000 said in MMM-CalendarExt3 not syncing automatically with icloud:
[3010:0324/105027.892355:ERROR:gbm_wrapper.cc(75)] Failed to get fd for plane
this is an electron reported ‘error’, but is really a warning. you can ignore it. we can’t hide it
-
even though the module loads, I see this error all the time; even after a refresh.
Should I ignore it? -
@greedyvegan That is not an error, just warning you can ignore it.
-
@MMRIZE I’ve left the MMM Calendar running for a far longer period and sync has never occured.
I did some digging/reading on Vdirsyncer and located the journal, here’s what it has been recording over and over.Mar 26 00:11:18 raspberrypi systemd[923]: vdirsyncer.service: Scheduled restart job, restart counter is at 2. Mar 26 00:11:18 raspberrypi systemd[923]: Stopped vdirsyncer.service - Synchronize calendars and contacts. Mar 26 00:11:18 raspberrypi systemd[923]: vdirsyncer.service: Start request repeated too quickly. Mar 26 00:11:18 raspberrypi systemd[923]: vdirsyncer.service: Failed with result 'exit-code'. Mar 26 00:11:18 raspberrypi systemd[923]: Failed to start vdirsyncer.service - Synchronize calendars and contacts. Mar 26 00:26:18 raspberrypi systemd[923]: Started vdirsyncer.service - Synchronize calendars and contacts. Mar 26 00:26:18 raspberrypi (irsyncer)[4142]: vdirsyncer.service: Failed to locate executable /usr/bin/vdirsyncer: No such file or directory Mar 26 00:26:18 raspberrypi (irsyncer)[4142]: vdirsyncer.service: Failed at step EXEC spawning /usr/bin/vdirsyncer: No such file or directory Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Main process exited, code=exited, status=203/EXEC Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Failed with result 'exit-code'. Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Scheduled restart job, restart counter is at 1. Mar 26 00:26:18 raspberrypi systemd[923]: Stopped vdirsyncer.service - Synchronize calendars and contacts. Mar 26 00:26:18 raspberrypi systemd[923]: Started vdirsyncer.service - Synchronize calendars and contacts. Mar 26 00:26:18 raspberrypi (irsyncer)[4143]: vdirsyncer.service: Failed to locate executable /usr/bin/vdirsyncer: No such file or directory Mar 26 00:26:18 raspberrypi (irsyncer)[4143]: vdirsyncer.service: Failed at step EXEC spawning /usr/bin/vdirsyncer: No such file or directory Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Main process exited, code=exited, status=203/EXEC Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Failed with result 'exit-code'. Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Scheduled restart job, restart counter is at 2. Mar 26 00:26:18 raspberrypi systemd[923]: Stopped vdirsyncer.service - Synchronize calendars and contacts. Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Start request repeated too quickly. Mar 26 00:26:18 raspberrypi systemd[923]: vdirsyncer.service: Failed with result 'exit-code'. Mar 26 00:26:18 raspberrypi systemd[923]: Failed to start vdirsyncer.service - Synchronize calendars and contacts.
It states it can’t find the vdirsyncer file which isn’t really a file but a symlink as per Beh instructions.
Here are my vdirsyncer service and timer files in case I’m missing something?
[Unit] Description=Synchronize calendars and contacts Documentation=https://vdirsyncer.readthedocs.org/ StartLimitBurst=2 [Service] ExecStart=/usr/bin/vdirsyncer sync RuntimeMaxSec=3m Restart=on-failure
[Unit] Description=Synchronize vdirs [Timer] OnBootSec=2m OnUnitActiveSec=10m AccuracySec=5m [Install] WantedBy=timers.target
I did the Clean but Hard Way install of vdirsyncer and it created a vdirsyncer_env folder which according to instructions keeps Python contained. Could this be the issue?
Thanks in advance. -
@lightfixer2000 many python scripts require a virtual environment. using the venv command to load from from the folder the installer creates before executing any python script
-
@lightfixer2000 I try not to use services anymore as pm2 can launch anything, like my installer sets up for MagicMirror.
see the pm2 --help
-
@sdetweil Thanks. I have pm2 installed and it runs MMM at boot up. According to the timer file the first fetch is after 2 mins of program start. I still don’t see any update to the ics file.
I will read pm2 help is a config or something else with pm2 I should be using?