Read the statement by Michael Teeuw here.
MMM-CalendarExt3 only one calendar not updating
-
@emlowe its clearly a timing issue… multiple people have encountered it…
I think you can change the waitFetch value up , depending on the time between fetchs as shown in the pm2 logs…
-
Was out for a week - some more details:
Here are relevant log entries:
0|MagicMirror | [2025-01-27 10:54:33.580] [LOG] Launching application.
0|MagicMirror | [2025-01-27 10:54:50.855] [LOG] Create new calendarfetcher for url: - Interval: 300000
0|MagicMirror | [2025-01-27 10:55:44.585] [INFO] Calendar-Fetcher: Broadcasting 23 events from
…
0|MagicMirror | [2025-01-27 11:01:33.443] [INFO] Calendar-Fetcher: Broadcasting 23 events fromSo that was about a minute to broadcast the first time, and then it follows the refresh interval reasonably closes.
I have the Ext3 module
waitFetch
set to 5 minutes (5 * 60 *1000) - well after the first broadcast. When the Ext3 module draws after 5 minutes, there is nothing in it, and it is empty with no events whatsoever. It’s like it has no data at all.I have the Ext3 module
refreshInterval
set to 7 minutes (7 * 60 * 1000) - after the 7 minutes the module will refresh and it remains empty despite the calendar having done two broadcasts. The Ext3 module will remain empty for hours.However, if I manually refresh the browser using the remotecontrol module - the Ext3 module takes 5 minutes to appear (based on
waitFetch
but will have all the data) -
@emlowe waitfetch is from CalendarExt3 start to latest broadcast
i cannot see start but latest is at 11:01:33
find start time and subtract. add a couple seconds for variability
his default waitfetch is 5 SECONDS
Then after that, next screen refresh is at updateInterval time
also 23 events seems small, if this is mm v2.23.0, you did put on the clipping fixes right?
is this the SAME calendar broadcasting?
then to its first broadcast from ext3 start -
I am on the develop branch
The entire start is at 10:54:23
[2025-01-27 10:54:23.207] [LOG] Starting MagicMirror: v2.31.0-develop
I’m not sure when Ext3Agenda starts as there is no log item specific to that afaik - but I assume it’s sometime around:
[2025-01-27 10:54:26.290] [LOG] No helper found for module: MMM-CalendarExt3Agenda.
so Ext3 start is no earlier than
10:54:23
and the first broadcast was at10:55:44
- this is much less than the 5 minutes I have manually configured forwaitFetch
.(in other words, I am waiting much longer than should be needed, but it does not work unless I manually refresh)
The log at 11:01 is the
second
broadcast of the same calendarI am only pulling 5 days of data and not broadcasting past events, 23 is correct.
module: "calendar", hiddenOnStartup: true, position: "top_left", config: { broadcastEvents: true, broadcastPastEvents: false, maximumNumberOfDays: 5, maximumEntries: 100, fetchInterval: 5 * 60 * 1000, calendars: [ { name: "family", URL: "<redacted>" } ] }
module: "MMM-CalendarExt3Agenda", position: "top_left", config: { showMiniMonthCalendar: false, firstDayOfWeek: 1, startDayIndex: 0, endDayIndex: 0, calendarSet: ['family'], waitFetch: 5 * 60 * 1000, refreshInterval: 7 * 60 * 1000, }
-
@emlowe ok, in the case of modules that only have a browser component ( no node helper) then
starting application message is the start timeanother use just resolved the same issue w waitfetch, but he had multiple calendars
https://forum.magicmirror.builders/topic/19359/mmm-calendarext3agenda-on-a-higher-screen-resolution?page=2 -
Further strangeness.
Let’s say I change
waitFetch
to something that shouldn’t work (eg 5 seconds) - clearly, this doesn’t work since the first broadcast is after a minute or so.But if I manually refresh the browser as soon as I see the log entry about the broadcast - everything appears just fine.
So for example, setting
waitFetch: 5 * 1000, refreshInterval: 2 * 60 * 1000,
Nothing will appear in the calendar - not at start (expected) and not after 2 mins (1 refresh), or 4 mins, or 10 mins or however long I want to wait - nothing.
But if I manually refresh - everything appears right away as long as I refresh
after
the broadcast log line -
@MMRIZE will have to advise. this is the depth of my knowledge
i work on the default calendar
well, one thing
when you refresh the page, all the modules web components are reloaded. the default cal sends a request to its node helper to get events. and it has them already, so sends immediatelyand of course because the default cal will be shown, its shows with the correct events, right??
-
Yea, I believe the default calender is working and broadcasting correctly - not sure exactly where Ext3Agenda is having problems - but I have a few ideas I plan to try out.
-
Bah! I have to apologize - I was on the develop branch but apparently, I was some commits behind and I think I was missing the commit that fixed the “clipping” problem
I made sure to update to the head of develop and things are working much better now. So it seems all along it has been the known issue
Doh!
-
Actually have to take this back. Currently testing running in server only mode and a browser so I can see the console easier
When I see in the log this line:
[2025-01-27 13:52:24.893] [INFO] Calendar-Fetcher: Broadcasting 22 events from <redacted>
I can say that modules are NOT getting any calendar notifications, despite this log entry. They are not broadcast. I added some code to Ext3Agenda to print out when it gets
any
notification, and it never gets any CAL items. (I see it getting DOM_CREATED, DOM_UPDATED, etc,etc)I see in the console log the following:
sorting events count=0
slicing events total maxcount=100which seems odd given that the helper reported broadcasting 22 events. Those items repeat in the console log , but it’s always
sorting events count=0
UNTIL I refresh the browser - Now I see the Ext3Agenda module getting CALENDER_EVENTS and
sorting events count=22