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.

    MMM-ModuleScheduler - Module Schedules and Notifications

    Scheduled Pinned Locked Moved System
    moduleschedulecronnotifications
    82 Posts 20 Posters 140.3k Views 20 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.
    • I Offline
      ianperrin @MichMich
      last edited by

      @MichMich

      • one schedule can now be used to hide/show/dim all modules - see global scheduling
      • one schedule can now be create to hide/show/dim a group of modules - see group schedules

      To do:

      • add the ability to exclude specific modules from the global/group schedules
      • unit and regression tests ;)

      "Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

      1 Reply Last reply Reply Quote 1
      • MichMichM Offline
        MichMich Admin
        last edited by

        Nice work! LockStrings are not yet implemented, right? Until then I can’t use the module.

        I 1 Reply Last reply Reply Quote 0
        • cowboysdudeC Offline
          cowboysdude Module Developer
          last edited by

          I’m using it like this… but it’s not working for some reason:

          {
          module: ‘MMM-ModuleScheduler’,
          config: {
          global_schedule: [
          // SHOW MODULES WITH THE CLASS ‘daytime_scheduler’ AT 06:00 AND HIDE AT 22:00 EVERY DAY
          {from: ‘50 6 * * *’, to: ‘0 9 * * *’, groupClass: ‘scheduler_mfm’},
          {from: ‘50 6 * * *’, to: ‘0 23 * * *’, groupClass: ‘scheduler_mfd’},
          {from: ‘0 6 * * *’, to: ‘0 23 * * *’, groupClass: ‘scheduler_sat’},
          {from: ‘0 6 * * *’, to: ‘0 23 * * *’, groupClass: ‘scheduler_sun’},
          {from: ‘0 6 * * *’, to: ‘0 23 * * *’, groupClass: ‘scheduler_nflg’},
          {from: ‘0 6 * * *’, to: ‘0 23 * * *’, groupClass: ‘scheduler_nflng’}
          ]
          }
          },

          Then for example a module:

                   {
          		module: 'compliments',
          		position: 'lower_third',      
                              classes: 'scheduler_mfm'
          	},
          

          I did update the module with ‘git pull’ so that’s okay but it’s not rendering correctly and shutting the module ‘off’

          Did I miss something simple again? :)

          I 1 Reply Last reply Reply Quote 0
          • I Offline
            ianperrin @cowboysdude
            last edited by

            @cowboysdude - During my testing of the global scheduling feature, I identified an issue which meant the initial state of the modules may not have been correct. I’ve committed a potential fix for this which may fix your issue too so please feel free to git pull again and test.

            If it doesn’t work, can you let me know what is output in the logs pm2 logs mm - you should see something like the following for each of your global schedules

            MMM-ModuleScheduler is creating a global schedule for scheduler_mfm modules using '50 6 * * *' and '0 9 * * *' with dim level undefined
            MMM-ModuleScheduler is hiding scheduler_mfm modules
            MMM-ModuleScheduler has created the global schedule for scheduler_mfm modules
            MMM-ModuleScheduler will next show scheduler_mfm modules at Tue Nov 01 2016 06:50:00 GMT+0000 (UTC)
            MMM-ModuleScheduler will next hide scheduler_mfm modules at Tue Nov 01 2016 09:00:00 GMT+0000 (UTC)
            

            The second line in the above log example will only appear if the schedule means that the modules affected it should be initially hidden

            "Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

            1 Reply Last reply Reply Quote 1
            • I Offline
              ianperrin @MichMich
              last edited by

              @MichMich said in MMM-ModuleScheduler:

              Nice work! LockStrings are not yet implemented, right? Until then I can’t use the module.

              LockStrings should now be supported - feel free to test and let me know if it works as expected!

              "Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

              1 Reply Last reply Reply Quote 0
              • cowboysdudeC Offline
                cowboysdude Module Developer
                last edited by

                Will give it a try! Thanks @ianperrin !

                1 Reply Last reply Reply Quote 0
                • A Offline
                  anatius
                  last edited by

                  Hi,

                  I am trying to dim my mirror at nighttime - on weekdays between 10PM and 7AM, on weekends between 10Pm and 8AM. However, the below code does not do the trick - where is my mistake?

                    		{
                  			module: 'MMM-ModuleScheduler',
                  			config: {
                  				global_schedule: [ 
                  					{from: '0 7 * * 1-5', to: '0 20 * * 1-5', dimLevel: '30'},					
                  					{from: '0 8 * * 0,6', to: '0 20 * * 0,6', dimLevel: '30'},					
                  				]
                  			}
                  		},
                  
                  I 1 Reply Last reply Reply Quote 0
                  • I Offline
                    ianperrin @anatius
                    last edited by ianperrin

                    @anatius The config looks okay, can you check the output of the log pm2 logs mm once you have started MM2 and viewed it in a browser then post the results here?

                    It should look something like:

                    MMM-ModuleScheduler received INITIALISE_SCHEDULER
                    MMM-ModuleScheduler is setting the config
                    MMM-ModuleScheduler is removing all scheduled jobs
                    MMM-ModuleScheduler received CREATE_NOTIFICATION_SCHEDULE
                    MMM-ModuleScheduler received CREATE_GLOBAL_SCHEDULE
                    MMM-ModuleScheduler is creating a global schedule for all modules using "0 7 * * 1-5" and "0 20 * * 1-5" with dim level 30
                    MMM-ModuleScheduler is dimming all modules
                    MMM-ModuleScheduler has created the global schedule for all modules
                    MMM-ModuleScheduler will next show all modules at Mon Dec 19 2016 07:00:00 GMT+0000 (UTC)
                    MMM-ModuleScheduler will next dim all modules at Mon Dec 19 2016 20:00:00 GMT+0000 (UTC)
                    MMM-ModuleScheduler is creating a global schedule for all modules using "0 8 * * 0,6" and "0 20 * * 0,6" with dim level 30
                    MMM-ModuleScheduler is dimming all modules
                    MMM-ModuleScheduler has created the global schedule for all modules
                    MMM-ModuleScheduler will next show all modules at Sat Dec 24 2016 08:00:00 GMT+0000 (UTC)
                    MMM-ModuleScheduler will next dim all modules at Sat Dec 24 2016 20:00:00 GMT+0000 (UTC)
                    

                    "Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

                    A 1 Reply Last reply Reply Quote 0
                    • A Offline
                      anatius @ianperrin
                      last edited by

                      @ianperrin

                      Hi Ian,

                      Below is the relevant output of the log (error log is empty). Note that now (Monday at 3 PM) all modules are dimmed though they should not be…

                      MMM-ModuleScheduler received INITIALISE_SCHEDULER
                      MMM-ModuleScheduler is setting the config
                      MMM-ModuleScheduler is removing all scheduled jobs
                      MMM-ModuleScheduler received CREATE_NOTIFICATION_SCHEDULE
                      MMM-ModuleScheduler received CREATE_GLOBAL_SCHEDULE
                      MMM-ModuleScheduler is creating a global schedule for all modules using "0 7 * * 1-5" and "0 20 * * 1-5" with dim level 30
                      MMM-ModuleScheduler has created the global schedule for all modules
                      MMM-ModuleScheduler will next show all modules at Tue Dec 20 2016 07:00:00 GMT+0100 (CET)
                      MMM-ModuleScheduler will next dim all modules at Mon Dec 19 2016 20:00:00 GMT+0100 (CET)
                      MMM-ModuleScheduler is creating a global schedule for all modules using "0 8 * * 0,6" and "0 20 * * 0,6" with dim level 30
                      MMM-ModuleScheduler is dimming all modules
                      MMM-ModuleScheduler has created the global schedule for all modules
                      MMM-ModuleScheduler will next show all modules at Sat Dec 24 2016 08:00:00 GMT+0100 (CET)
                      MMM-ModuleScheduler will next dim all modules at Sat Dec 24 2016 20:00:00 GMT+0100 (CET)
                      

                      Many thanks for your support!
                      Christian

                      I 1 Reply Last reply Reply Quote 0
                      • I Offline
                        ianperrin @anatius
                        last edited by ianperrin

                        Hi @anatius (Christian)

                        Okay, I think I see the problem, and a fix is in the works, its just going to take a little time until I can finish it.

                        I’ve created an issue on github which contains more details on why this is happening.

                        Until the fix is in place, you have two (understandably sub-optimal) options

                        • leave the mirror running and it should self-correct after the next 8pm and/or 7/8am depending on when it is started :(
                        • temporarily use the same expression for all days of the week, e.g.
                        global_schedule: [ {from: '0 7 * * *', to: '0 20 * * *', dimLevel: '30'} ]
                        

                        "Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

                        A 1 Reply Last reply Reply Quote 1
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • 7
                        • 8
                        • 9
                        • 4 / 9
                        • 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