Schedules
6 minute read
Holds a collection of schedules.
Schedules are executed by a scheduler service.
Schedule can bse used for different use cases.
The most famous one is turn ON a light at specific time and turn OFF a light at a specific time.
But in MyController it is not limited to lights. You can control variety of resources.
Schedule has a different sections. All the sections are explained here.
Important
Schedules will be executed based on the system timezone.If you change the system timezone, it is mandatory to restart the MyController service.
Identity
Form View
YAML View
id: my_first_schedule # (1)
description: This is my first schedule # (2)
enabled: true # (3)
id
- should be a unique identifierdescription
- add description about this scheduleenabled
- enable/disable this schedule
Labels
You can add any number of labels. Labels can be used to filter a group of schedule.
Labels can be used to perform an action on a group schedules.
Form View
YAML View
labels:
group: essential
Validity
Validity is a special feature. You can control when this schedule should be effective.
All the fields are optional. By omitting a field gives different meanings
To get activate this feature validity should be enabled
Date and Time
Based on the given fields, validity reacts as follows,
-
If non of the fields entered - valid for all the time.
-
date.from
- schedule will be valid from the givenfrom date
.
There is nofrom time
entered here, butfrom date
is available. Hencefrom.time
will be calculated as00:00:00
Example:2021-09-16
becomes2021-09-16 00:00:00
-
date.to
- schedule will be valid till the givento date
.
There is noto time
entered here, butto date
is available. Henceto.time
will be calculated as23:59:59
Example:2021-09-24
becomes2021-09-24 23:59:59
-
date.from
,time.from
- schedule will be valid from the givenfrom date
andfrom time
. -
date.to
,time.to
- schedule will be valid till the givento date
andto time
. -
date.from
,date.to
,time.from
,time.to
- schedule can be valid between thefrom date/time
~to date/time
. -
validateTimeEveryday
=>Disabled
- valid exactlyfrom date/time
~to date/time
.
Example:2021-09-16 11:15:00
to2021-09-24 19:00:00
-
validateTimeEveryday
=>Enabled
- between these date and the time valid for every day.
Example: between2021-09-16
to2021-09-24
- time is valid for every day between11:15:00
to19:00:00
Form View
YAML View
validity:
enabled: true
date:
from: '2021-05-14'
to: '2021-06-21'
time:
from: '00:00'
to: '23:59'
validateTimeEveryday: false
Schedule Type
Schedule supports different types.
Repeat
Repeat is a super simple schedule.
- Executes the schedule on the specified
interval
till it reaches therepeat count
. - Set
repeat count
to0
to keep on repeating.
Note
Very first execution starts after the giveninterval
.
Cron
Cron is a time-based job scheduler in Unix-like computer operating systems.
In MyController in addition to that, it supports seconds
field.
Refer Cron wikipedia page to know more about cron.
┌───────────── second (0 - 59)
| ┌───────────── minute (0 - 59)
│ | ┌───────────── hour (0 - 23)
│ | │ ┌───────────── day of the month (1 - 31)
│ | │ │ ┌───────────── month (1 - 12)
│ | │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;7 is also Sunday on some systems)
│ | │ │ │ │
│ | │ │ │ │
│ | │ │ │ │
* * * * * *
The first field second
is optional, you can omit it.
Also supports @yearly
, @monthly
, @weekly
, @daily (or @midnight)
, @hourly
Simple
Simple is a friendly schedule type.
It supports different type of frequencies.
Schedule executes on the specified time, if the day meets the specified frequency.
Time
can be specified in the format of hh:mm:ss
. hours should be in 24 hours format
Examples:
05:00:00
- 5 AM12:30:20
- 12:30:20 PM17:15:00
- 5:15 PM
Frequency - Daily
In this mode you can restrict the schedule to the selected week days.
- Possible select multiple days of a week.
- Schedule executes on the selected days of the week.
Frequency - Weekly
In this mode you can restrict the schedule to particular week day.
- Select a day in week.
- Schedule executes on the selected day of the week.
- In simple words, only once in a week.
Frequency - Monthly
In this mode you can restrict the schedule to particular day of month.
- Select a date in a month
- Schedule executes on the selected date of the month
- In simple words, only once in a month
Note
If you select non-common date, ie:29
, 30
, and 31
The schedule execution will be skipped for a month, if it does not have the date mentioned above.
Frequency - On Date
In this mode you can restrict the schedule to particular date and time.
- This schedule executes only once in a life time.
Sunrise
Sunrise works similar to Simple schedule, expect the time part.
Here explained only about the time part. refer Simple schedule for other options.
Based on the GEO Location configured for the system,
Sunrise time will be calculated. This calculation happens every day at midnight of the system timezone.
Offset
Offset used to calculate the exact time to execute the schedule.
Offset is a time duration. Refer duration guide for the detailed information.
Examples:
10m
- executes 10 minutes after the sunrise time-10m
- executes 10 minutes before the sunrise time1h20m
- executes 1 hour and 20 minutes after the sunrise time-1h20m
- executes 1 hour and 20 minutes before the sunrise time
Sunset
Sunset works similar to Simple schedule, expect the time part.
Here explained only about the time part. refer Simple schedule for other options.
Based on the GEO Location configured for the system,
Sunset time will be calculated. This calculation happens every day at midnight of the system timezone.
Offset
Offset used to calculate the exact time to execute the schedule.
Offset is a time duration. Refer duration guide for the detailed information.
Examples:
10m
- executes 10 minutes after the sunset time-10m
- executes 10 minutes before the sunset time1h20m
- executes 1 hour and 20 minutes after the sunset time-1h20m
- executes 1 hour and 20 minutes before the sunset time
Load variables
Load variables is an optional configuration.
Follow Load Variables Guide for the detailed configuration.
Use variables when you want to,
- play with Javascript
enable
ordisable
Parameters to handler
Load Custom Variables
Sometimes you may want to do some calculations or based on a value you want to set something,
In those cases Load Custom Variables
will be used.
Types
- None
- Javascript
- Webhook
None
Whe you do not want to use Load Custom Variables
feature, use None
option.
Javascript
Follow Javascript Guide for the details.
Webhook
Follow Webhook Guide for the details.
Parameters to Handler
Follow Parameters to Handlers Guide for the detailed configuration.
Notify Handlers
Follow Notify Handlers Guide for the detailed configuration.