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 154.7k 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
      last edited by

      @MichMich - some great ideas, keep them coming.

      I’ve created issues (or rather enhancements) for these on GitHub - https://github.com/ianperrin/MMM-ModuleScheduler/issues. Feel free to review, comment etc.

      "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
      • Mr.MeeseeksM Offline
        Mr.Meeseeks
        last edited by

        Is it required to restart mm/server if a scheduler configuration is changed, add, removed?
        Thanks

        CAAAAN DOO!👍

        I 1 Reply Last reply Reply Quote 0
        • I Offline
          ianperrin @Mr.Meeseeks
          last edited by

          @Mr.Meeseeks Apologies for missing this one.

          The schedules are set up after the ALL_MODULES_STARTED or DOM_OBJECTS_CREATED notifications have been received from the core. So a restart should not be required and a refresh of the browser should be sufficient to pick up config changes.

          "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

            In retrospect I only wanted to be able to hide a module now and then LOL

            NEVER thought it would turn into such an awesome module!!!

            Thanks @ianperrin !!!

            1 Reply Last reply Reply Quote 2
            • MitchfarinoM Offline
              Mitchfarino Module Developer
              last edited by Mitchfarino

              @cowboysdude @ianperrin how would would I implement a schedule so that a module appeared for 5 minutes, then disappear and reappear in 5 minutes time?

              I’ve tried this

              module_schedule: { */5 * * * * },
              

              2nd edit- I thought I’d got it with this…

              module_schedule: { from: '*/2 * * * *', to: '*/3 * * * *'},
              
              cowboysdudeC I 2 Replies Last reply Reply Quote 0
              • cowboysdudeC Offline
                cowboysdude Module Developer @Mitchfarino
                last edited by cowboysdude

                @Mitchfarino said in MMM-ModuleScheduler:

                @cowboysdude @ianperrin how would would I implement a schedule so that a module appeared for 5 minutes, then disappear and reappear in 5 minutes time?

                I’ve tried this

                module_schedule: { */5 * * * * },
                

                2nd edit- I thought I’d got it with this…

                module_schedule: { from: '*/2 * * * *', to: '*/3 * * * *'},
                

                Yes that should make it run every five minutes…

                Copy and try this without brackets…

                '*/5 * * * *'

                example - schedule: ‘30 9 * * *’,

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

                  @Mitchfarino said in MMM-ModuleScheduler:

                  @cowboysdude @ianperrin how would would I implement a schedule so that a module appeared for 5 minutes, then disappear and reappear in 5 minutes time?

                  Try this

                  module_schedule: {from: '0/10 * * * *',  to: '5/10 * * * *'}, 
                  

                  Which should equate to the module being

                  • shown every 10 minutes starting from 0 minutes past the hour, i.e. 0, 10, 20 etc
                  • hidden every 10 minutes starting from 5 minutes past the hour, i.e. 5, 15, 25 etc

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

                  MitchfarinoM 1 Reply Last reply Reply Quote 1
                  • MitchfarinoM Offline
                    Mitchfarino Module Developer @ianperrin
                    last edited by

                    @ianperrin cheers mate!

                    I’ll have a look tonight!

                    Fantastic module by the way

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

                      @Mitchfarino said in MMM-ModuleScheduler:

                      @ianperrin cheers mate!

                      I’ll have a look tonight!

                      Fantastic module by the way

                      Thank you and no worries.

                      Unfortunately, I’ve just done a quick test with the expressions I posted above and they didn’t work. :(

                      If you check the cron expressions i suggested using crontab.guru, it would appear they are non-standard. Therefore, I suspect they are not supported by the node cron module.

                      Not to worry, there’s always a solution! crontab.org states that step values can be used in conjunction with ranges. So the expressions I believe you require are as follows:

                      module_schedule: {from: '0-59/10 * * * *',  to: '5-59/10 * * * *'}, 
                      

                      "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
                        last edited by

                        Any ETA for https://github.com/ianperrin/MMM-ModuleScheduler/issues/4 and https://github.com/ianperrin/MMM-ModuleScheduler/issues/6?

                        I 2 Replies Last reply Reply Quote 0
                        • I Offline
                          ianperrin @MichMich
                          last edited by

                          @MichMich said in MMM-ModuleScheduler:

                          Any ETA for https://github.com/ianperrin/MMM-ModuleScheduler/issues/4 and https://github.com/ianperrin/MMM-ModuleScheduler/issues/6?

                          Wow - someone is keen ;)

                          The first iteration of #4 has been committed. Global schedules can now be added to show/hide/dim all modules - see the updated documentation for more info.

                          On the to list is to

                          • add support for showing/hiding/dimming modules in groups
                          • add the ability to exclude specific modules from the global schedules

                          #6 comes afterwards when I can switch my dev environment to the develop branch

                          "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
                          • 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
                              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

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 3 / 5
                                            • 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