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.
    • cowboysdudeC Offline
      cowboysdude Module Developer @ianperrin
      last edited by

      @ianperrin That sir is AWESOME! Thank you!

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

        Hey @ianperrin

        Great module by the way. Im messing about with it, and works really well.

        Do you think it would be possible to broadcast a notification to the module(s) that are being shown / hidden so they could react to it?

        So for example if any given module were able to check for SHOW_MODULE, HIDE_MODULE or DIM_MODULE in the notificationReceived function so that the module could react to it and handle some specific behaviour?

        What do you think?

        strawberry 3.141S 1 Reply Last reply Reply Quote 0
        • strawberry 3.141S Offline
          strawberry 3.141 Project Sponsor Module Developer @dr4ke616
          last edited by

          @dr4ke616 hide module will call the hide method of the module

          quote from the readme When a module is hidden (using the module.hide() method), the suspend() method will be called. By subclassing this method you can perform tasks like halting the update timers. so you can do the specific behaviour you want in there

          for show module it’s the resume method

          Please create a github issue if you need help, so I can keep track

          D 1 Reply Last reply Reply Quote 1
          • D Offline
            dr4ke616 @strawberry 3.141
            last edited by

            @strawberry-3.141 I didnt notice this - thanks for pointing it out. Thats exactly what i need!

            1 Reply Last reply Reply Quote 0
            • P Offline
              plumcraft
              last edited by paviro

              Hi,

              Great idea, i’ve tried your module but i does not work for me. I might have missed a step or something.

              I did put in the config file your module (after download and setup with npm install))) :

              {
                 module: 'MMM-ModuleScheduler'
              },
              

              And then :

              {
                module: 'MMM-WunderGround',
                position: 'top_right',
                config: {
                  module_schedule: {from: '0 14 * * *', to: '0 18 * * *' },
                  apikey: 'xxxxxxxxx', // private; don't share!
              				pws: 'pws:IBOULOGN39', //culemborg
              				hourly: '1',
              				fctext: '1',
              				fcdaycount: "5",
              				fcdaystart: "0",
              				hourlyinterval: "3",
              				hourlycount: "2",
              				alerttime: 10000,
              				alerttruncatestring: "french:"
              			},
              			classes: 'for_all default'
              		},
              

              It’s 13:30 and the weather is still showing on the mirror.

              Thanks for your help


              Note from admin: Please use Markdown on code snippets for easier reading!

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

                You’re missing the trigger ;)

                Here do this:

                {
                module: ‘MMM-WunderGround’,
                position: ‘top_right’,
                classes: 'scheduler',
                config: {
                module_schedule: {from: ‘0 14 * * *’, to: ‘0 18 * * *’ },
                apikey: ‘ad100f1e35ae51d2’, // **private; don’t share!**  
                pws: ‘pws:IBOULOGN39’, //culemborg
                hourly: ‘1’,
                fctext: ‘1’,
                fcdaycount: “5”,
                fcdaystart: “0”,
                hourlyinterval: “3”,
                hourlycount: “2”,
                alerttime: 10000,
                alerttruncatestring: “french:”'
                }
                },
                

                Note from admin: Please use Markdown on code snippets for easier reading!

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

                  @plumcraft

                  As @cowboysdude said, you need to configure the classes option to trigger the scheduler.

                  As you already have the classes option set up for what looks like @paviro 's MMM-FacialRecognition module I would suggest trying the following config.

                  {
                    module: 'MMM-WunderGround',
                    position: 'top_right',
                    config: {
                      module_schedule: {from: '0 14 * * *', to: '0 18 * * *' },
                      apikey: 'ad100f1e35ae51d2', // private; don’t share!
                      pws: 'pas:IBOULOGN39', //culemborg
                      hourly: '1',
                      fctext: '1',
                      fcdaycount: '5',
                      fcdaystart: '0',
                      hourlyinterval: '3',
                      hourlycount: '2',
                      alerttime: 10000,
                      alerttruncatestring: 'french:'
                    },
                    classes: 'for_all default scheduler'
                  },
                  

                  Please do report back if you are successful because I haven’t tested the compatibility of the two modules :)

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

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

                    Opps didn’t realize you were using Facial Recognition… LOL

                    Thanks @ianperrin !!

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      plumcraft
                      last edited by

                      @ianperrin @cowboysdude

                      Thank you both, it works with paviro’s MMM-FacialRecognition module.

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

                        Okay I have another curve ball for you… how about … the ability to turn the mirror off and back on with this? :)

                        I 1 Reply Last reply Reply Quote 0
                        • P Offline
                          plumcraft
                          last edited by

                          +1, would be great to add this feature :)

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

                            +1, be really nice if it not only just dimmed the running modules, but actually shut off the monitor.

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

                              @dr4ke616 Well you could actually do it with a straight cronjob … something like this…

                              55 6 * * * /home/pi/monitor_on.sh

                              And off the same way :) It’s like making your own schedule…

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

                                @cowboysdude thanks for pointing that out. Thats a better idea I didn’t think of :)

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

                                  @cowboysdude said in MMM-ModuleScheduler:

                                  Okay I have another curve ball for you… how about … the ability to turn the mirror off and back on with this? :)

                                  So I’m thinking there are a number of approaches here.

                                  One approach might be to add a mechanism to schedule the sending of notifications e.g
                                  notification_schedule: [{cronTime: '0 22 * * *', notification: 'MONITOR_OFF'}, {cronTime: '0 9 * * *', notification: 'MONITOR_ON'}]

                                  Another module could then be built (or may already exist) to listen to the notifications and react accordingly, e.g. control the monitor.

                                  What do you think?

                                  "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
                                  • cowboysdudeC Offline
                                    cowboysdude Module Developer
                                    last edited by

                                    Right now I’m doing it with crontab… my schedule is complex hahahah

                                    BUT you have a great idea there, That sir would work perfectly!!!

                                    Yes that would work… currently people are doing it with either the camera or PIR sensor but for those who have neither this would be a great replacement!

                                    My schedule works like this:

                                    On at 7 am
                                    Off at 9 am
                                    On at 5 pm
                                    Off at 11 pm

                                    However, this will change because I only want that to happen M-F on Sat and Sun I want it differently…

                                    On top of using the scheduler to show different things throughout those times… I gotta tell you how much I really like this module! :)

                                    1 Reply Last reply Reply Quote 0
                                    • AlvingerA Offline
                                      Alvinger
                                      last edited by Alvinger

                                      I can’t get the dimLevel to work on the clock. I have the following config:

                                      {
                                       module: "clock",
                                       position: "top_left",
                                       classes: "scheduler",
                                       config: {
                                        module_schedule: [
                                         {from: "00 06 * * *", to: "30 09 * * *", dimLevel: "50"},
                                         {from: "00 16 * * *", to: "30 22 * * *", dimLevel: "50"}
                                        ]
                                       }
                                      },
                                      

                                      When the time reaches “to” the clock just disappears rather than being dimmed.

                                      What am I doing wrong? (I am running the latest version of the module)

                                      cowboysdudeC I 2 Replies Last reply Reply Quote 0
                                      • cowboysdudeC Offline
                                        cowboysdude Module Developer @Alvinger
                                        last edited by cowboysdude

                                        @Alvinger

                                        Try this instead:

                                        {from: '0 06 * * * ', to: '30 09 * * * ', dimLevel: ‘50’},
                                        {from: '0 16 * * * ', to: '30 22 * * * ', dimLevel: ‘50’}

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

                                          @Alvinger:

                                          A few quick observations,

                                          Firstly I’d suggest removing the leading zeros from each field in the cron expression, i.e. changing 00 06 * * * to 0 6 * * * - some parsers may support this but I believe the cron tab specification states the valid values for the minute field is 0-59 and hour field is 0-23. If in doubt, try using http://crontab.guru/ to test your expressions.

                                          Next up, make sure you updated to the latest version (git pull from the module directory and restart the mirror) to ensure the dim functionality is available to your mirror.

                                          If after ensuring the cron expressions are correct and you have the latest version, you are still experiencing this problem, can you check the output of the log (pm2 logs mm). You should have something like this

                                          MM-ModuleScheduler received CREATE_MODULE_SCHEDULE
                                          MMM-ModuleScheduler is scheduling clock using '0 6 * * *' and '30 9 * * *'
                                          MMM-ModuleScheduler is dimming clock
                                          MMM-ModuleScheduler has scheduled clock
                                          MMM-ModuleScheduler will next show clock at Wed Oct 15 2016 06:00:00 GMT+0000 (UTC)
                                          MMM-ModuleScheduler will next dim clock at Wed Oct 15 2016 09:30:00 GMT+0000 (UTC)
                                          

                                          Can you share the output of your log here so I can take a look?

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

                                            @Alvinger, @cowboysdude

                                            Having looked at the code, there may be certain circumstances where the module is initially hidden, even when the dimLevel option is defined. I believe this only relates to schedules are defined using arrays with a particular show > dim > show > dim sequence.

                                            I’ve pushed an update to try an fix this, so feel free to update the module and give it a go.

                                            Alternatively, (and also highly recommended) would be to minimise the number of cron jobs create by simplifying your schedule as follows

                                            {
                                             module: "clock",
                                             position: "top_left",
                                             classes: "scheduler",
                                             config: {
                                              // Show at 06:00 and 16:00, then dim to 50% at 09:30 and 22:30 every day
                                              module_schedule: {from: '0 6,16 * * *', to: '30 9,22 * * *', dimLevel: '50'},
                                             }
                                            },
                                            

                                            "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

                                            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
                                            • 1 / 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