A flexible timer/scheduler (cron, solar events, simple dates) node for Node-RED with full dynamic control and time zone support
- Schedule by CRON, date sequences and solar events (with offset)
- Multiple schedules can be entered by the node editor UI or dynamically at runtime
- Send a default payload or any of the following: timestamp, string, number, boolean, flow variable, global variable, JSON, JSONata, Buffer or Env variable as the output.
- Example CRON expressions provided in the dropdown to get you started
- Map popup to help you enter coordinates for solar events
- Option to separate command responses from output 1 to separate 2nd output
- Fan out option to separate each static schedule to its own output (dynamic and command responses are sent on last 2 output pins) (as of V1.4.0)
- Settable output variable (normally
msg.payload
but it is up to you) - Inject-like button to fire the node (available when only one schedule is added)
- View dynamically created schedules in the node editor UI (updated in V2.0.0)
- Additional info about the triggered schedule is always sent in the output message in
msg.cronplus
- NOTE: if the payload is to "Default Payload", then the content of
msg.cronplus
is moved tomsg.payload
- NOTE: if the payload is to "Default Payload", then the content of
- Node status updates to show the next event
- NOTE: the status indicator will be shown as a "ring" for dynamic schedules or shown as a "dot" for static schedules
- Full flexibility & dynamic control.
- Ability to control via simple topic commands. Examples include...
- remove, remove-all, remove-all-dynamic, remove-all-static, remove-active, remove-active-dynamic, remove-active-static, remove-inactive, remove-inactive-dynamic, remove-inactive-static
- list, list-all, list-all-dynamic, list-all-static, list-active, list-active-dynamic, list-active-static, list-inactive, list-inactive-dynamic, list-inactive-static
- export, export-all, export-all-dynamic, export-all-static, export-active, export-active-dynamic, export-active-static, export-inactive, export-inactive-dynamic, export-inactive-static
- status, status-all, status-all-dynamic, status-all-static, status-active, status-active-dynamic, status-active-static, status-inactive, status-inactive-dynamic, status-inactive-static
- stop, stop-all, stop-all-dynamic, stop-all-static
- start, start-all, start-all-dynamic, start-all-static
- pause, pause-all, pause-all-dynamic, pause-all-static
- next (as of v2.0.0)
- Ability to add, remove, list, export, stop, start, pause schedules by a command payload input. Examples include...
- add - add one or more dynamic schedules
- describe - describe solar events or cron expression (without the need to add a schedule)
- useful for creating a dynamic dashboard like this
- Ability to control via simple topic commands. Examples include...
- Persist schedules and state
- In local file system (default)
- In memory or persistent context (as of V2.0.0)
- Persist state of schedules (as of V2.0.0) (i.e. if a schedule is paused, it will remain paused after a restart)
- Recognises system clock changes and recalculates schedules
- change detection can now be customised by adding an entry in
settings.js
or an environment variable namedCRONPLUS_MAX_CLOCK_DIFF
(as of V2.0.0)
- change detection can now be customised by adding an entry in
- Demo flows demonstrating many of the capabilities. Import via node-red menu > import > examples.
- Optional time zone setting supporting UTC and Region/Area (e.g. Europe/London)
-
Easiest...
Use the Manage Palette > Install option from the menu inside node-red
-
Harder...
Alternatively in your Node-RED user directory, typically ~/.node-red, run Run the following command in the root directory of your Node-RED install. (Usually this is
~/.node-red
or%userprofile%\.node-red
).Install from NPM
npm install node-red-contrib-cron-plus
Install from GIT
npm install Steve-Mcl/node-red-contrib-cron-plus
Alternatively, install from a folder
npm install c:/tempfolder/node-red-contrib-cron-plus
Or simply copy the folder
node-red-contrib-cron-plus
into a folder namednodes
inside your node-red folder thencd
intonodes/node-red-contrib-cron-plus
and executenpm install
- Inspired by node-red-contrib-cron
- Cron expression builder adapted for cron-plus from https://github.com/juliacscai/jquery-cron-quartz (not on NPM)
- Big thanks for continued support by @jaclark for the excellent cronosjs