MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Default Calendar module frequently refreshes

    Scheduled Pinned Locked Moved General Discussion
    15 Posts 3 Posters 115 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      DarrenO 0 @sdetweil
      last edited by

      @sdetweil
      Thanks Sam.
      Here is my config for the default calendar module:

      {
      module: “calendar”,
      header: “Upcoming Events”,
      position: “top_left”,
      config: {
      maximumEntries: 10000, // 10
      maximumNumberOfDays: 120, // 365 (30May25 - changed from 50)
      pastDaysCount: 0, // 0
      displaySymbol: true, // true
      defaultSymbol: “calendar”, // calendar
      showLocation: true, // false
      maxTitleLength: 50, // 25
      maxLocationTitleLength: 50, // 25
      wrapEvents: true, // false
      wrapLcoationEvents: false, // false
      maxTitleLines: 3, // 3
      maxEventTitleLines: 3, // 3
      fetchInterval: 300000, // 300000 (5 minutes)
      animationSpeed: 2000, // 2000 (2 seconds)
      fade: false, // true
      fadePoint: 0.25, // 0.25
      tableClass: “small”, // small,xsmall, medium, large, xlarge
      displayRepeatingCountTitle: false, // false
      dateFormat: “MMM Do”, // MMM Do
      dateEndFormat: “HH:mm”, // HH:mm
      showEnd: true, // true
      showEndsOnlyWithDuration: false, // false
      fullDayEventDateFormat: “MMM Do”, // MMM Do
      timeFormat: “relative”, // relative, absolute, dateheaders
      getRelative: 6, // 6, 0=absolute
      urgency: 7, // 7
      broadcastEvents: true, // true
      hidePrivate: false, // false
      hideOngoing: false, // false
      broadcastPastEvents: true, // false
      sliceMultiDayEvents: false, // false
      nextDaysRelative: false, // false
      limitDays: 0, // 0
      limitDaysNeverSkip: false, // false
      flipDateHeaderTitle: false, // false=left, true=right
      hideTime: false, // false
      hideDuplicates: true, // true
      showTimeToday: false, // false
      coloredBorder: false, // false
      coloredBackground: false, // false
      updateOnFetch: true, // true
      coloredText: false,
      coloredSymbol: true,
      customEvents: [
      {keyword: ‘Birthday’, symbol: ‘cake’, color: ‘White’},
      {keyword: ‘Greens’, symbol: ‘recycle’, color: ‘Orange’},
      {keyword: ‘Recycling’, symbol: ‘recycle’, color: ‘Green’},
      {keyword: “Anniversary”, symbol: ‘ring’, color: ‘Gold’},
      ],
      tableClass: “xsmall”,
      calendars: [
      {
      // Added : 26-Apr-23
      color: “#8B0000”, // dark red
      symbol: “users”,
      url: ‘https://calendar.google.com/calendar/ical/user1/basic.ics’,
      },
      {
      // Added : 26-Apr-23
      color: “#00008B”, // dark blue
      symbol: “male”,
      url: ‘https://calendar.google.com/calendar/ical/user2/basic.ics’,
      },
      {
      // Added : 26-Apr-23
      color: “#A020F0”, // purple
      symbol: “female”,
      url: ‘https://calendar.google.com/calendar/ical/user3/basic.ics’,
      },
      {
      // Added : 26-Apr-23
      color: “#023020”, // green
      symbol: “male”,
      url: ‘https://calendar.google.com/calendar/ical/user4/basic.ics’,
      },
      ]
      }
      },

      S D 2 Replies Last reply Reply Quote 0
      • S Do not disturb
        sdetweil @DarrenO 0
        last edited by sdetweil

        @DarrenO-0 also can you look at the output of npm start or however you start MagicMirror
        And find the messages

        Broadcasting xxx messages for url xxxx

        Collect 15 of those messages either the timestamp
        Xxx out the url string, or match them to your 4 utls
        These messages should be on the fetchInterval time cycle

        Each url fetch is done separately, and they contribute to the shown list of events immediately , which may cause a visual flash

        Looking at the code, it uses fixed timers which is restarted for the next cycle after processing this cycle. So that means longer/larger calendar lists will take longer than shorter ones. This will cause the fetch cycles to drift apart and constantly change
        I’m guessing is this is the randomness

        The log messages should show consistent cycle times for an individual url, but varying separation between url fetches
        If your system is low on memory and utilizes swap on an sd card this could also affect processing time for larger calendar memory requirements, causing additional drift

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • D Offline
          DarrenO 0 @DarrenO 0
          last edited by

          Thanks Sam.
          I get the requested information later today and add it the conversation.

          Just to clarify the “randomness” of the refresh that I am experiencing, the listing of the calendar events would temporarily disappear and reappear as would be expected with a refresh cycle, but it would do it repeatedly in quick succession/constantly do it.

          I took a ~45sec video of the issue, but the video is 86MB and i was unable to upload.
          Is there somewhere I can upload it to?

          I run two instances of MM from the host - the first one is the primary instance, which is the one experiencing the issue. This is viewed directly on a monitor attached to the host.
          The second instance is only viewable and viewed from a browser (Chrome) on my computer.

          I also view the first instance on my computer via a second browser tab and use an Extension to switch/rotate between the two tabs on 5 min intervals. The extension does have an option to refresh/reload the next tab to be displayed but I have not enabled this feature, knowing that it would force a pull of the calendar.

          My MMs start with the following commands :
          pm2 start ~/MagicMirror/installers/pm2_MagicMirror1.json
          pm2 start ~/MagicMirror/installers/pm2_MagicMirror2.json

          {
            "apps" : [{
              "name"        : "MagicMirror1",
              "cwd"         : "/home/user",
              "script"      : "/home/user/MagicMirror/installers/mm1.sh",
              "watch"       : ["/home/user/MagicMirror/config/config1.js"]
            }]
          }
          
          {
            "apps" : [{
              "name"        : "MagicMirror2",
              "cwd"         : "/home/user",
              "script"      : "/home/user/MagicMirror/installers/mm2.sh",
              "watch"       : ["/home/user/MagicMirror/config/config2.js"]
            }]
          }
          
          

          The bash scripts referenced in the .json files above, are :

          #!/bin/bash
          cd /home/user/MagicMirror
          export MM_CONFIG_FILE=config/config1.js
          export MM_PORT=8081
          
          if [ $(ps -ef | grep -v grep | grep -i -e xway -e labwc | wc -l) -ne 0 ]; then
             npm run start:wayland
          else
             DISPLAY=:0 npm start
          fi
          
          #DISPLAY=:0 npm start
          
          #!/bin/bash
          cd /home/user/MagicMirror
          export MM_CONFIG_FILE=config/config2.js
          export MM_PORT=8082
          npm run server
          
          #DISPLAY=:0 npm start
          

          I only experience the random/constant refresh issue with the first MM instance running the default Calendar module.
          The second instance runs a different calendar module, MMM-MonthlyCalendar from kolbyjack, for a different Google Calendar that is not one of the four accessed by the first instance.

          S 2 Replies Last reply Reply Quote 0
          • S Do not disturb
            sdetweil @DarrenO 0
            last edited by

            @DarrenO-0 the calendar fetch is done on the server side,
            All browsers access that same data

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            D 1 Reply Last reply Reply Quote 0
            • S Do not disturb
              sdetweil @DarrenO 0
              last edited by

              @DarrenO-0 those calendar modules fetch the days themselves in their own way

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • D Offline
                DarrenO 0 @sdetweil
                last edited by

                @sdetweil
                i forgot to mention that i experience the same constant refresh/reload issue on both the host and browser instances of the MM that displays the default calendar module, so i guess it’s not isolated to browser on my PC where I view both MM instances.

                What would the command be that I need to run to view the npm output?

                S 1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @DarrenO 0
                  last edited by sdetweil

                  @DarrenO-0 as MagicMirror is started by pm2 the command would be

                  pm2 logs —lines=xxxx
                  

                  Two dashes in front of lines
                  Where xxxx is the number of most recent lines of output, default 15

                  You can also examine the files the logs are collected in,
                  In the ~/.pm2/logs. Folder, notice the . in front of pm2

                  The fact that you see it on other browsers confirms to
                  Me that this is fetch timing cycle related.
                  If you look at both displays at once, my guess is the refresh at the same time

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  D 1 Reply Last reply Reply Quote 0
                  • D Offline
                    DarrenO 0 @sdetweil
                    last edited by

                    @sdetweil
                    I restored my MM from an image i took of it from prior to upgrading to Debian 13 and, so far, I am not experiencing the same refresh.
                    I’ll keep an eye on things over the next few hours and see if the issue re-occurs.

                    S 1 Reply Last reply Reply Quote 0
                    • S Do not disturb
                      sdetweil @DarrenO 0
                      last edited by

                      @DarrenO-0 thx. Id really like to see the logs from both for the event broadcast cycle

                      There was a big calendar parser change in. 33 and another coming in. 34

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      D 1 Reply Last reply Reply Quote 0
                      • M Offline
                        michaelarnauts
                        last edited by

                        I just made this github issue to track this issue.

                        https://github.com/MagicMirrorOrg/MagicMirror/issues/3971

                        S 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 2 / 2
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy