(→Days) |
(→time) |
||
Line 95: | Line 95: | ||
==== time ==== | ==== time ==== | ||
time: Time in hh:mm format, of sunrise, sunset with or withour offset (e.g. sunrise-22m) | time: Time in hh:mm format, of sunrise, sunset with or withour offset (e.g. sunrise-22m) | ||
+ | |||
+ | The time field can have either fixed times, expressed in 24h format, e.g. "06:00", "17:25", "23:57" | ||
+ | It can also be "sunrise" or "sunset", or a time relative to those. 20 minutes before sunrise would be stated as "sunrise-20m". The time offset has to be stated in minutes; also if you want longer periods of time. 2 hours before sunset would be stated as "sunset-120m" | ||
==== days ==== | ==== days ==== |
Contents |
The ago scheduler module allows triggering action on specific times of the day.
You can add one or many times of day to a device, a group of devices or to a scenario. You can add on or many rules to the event. Some examples:
As of now, there's no UI to create the scedules. For now, you'll need to edit a json file to suit your needs. The scheduler file has to be placed in the config dir (e.g. /etc/opt/agocontrol/conf.d/). You can name the schedule file as you like and have more than one file. You use the scheduler.conf file to control which scheduler file to activate. You could e.g. have a winter.json and a summer.json schedule that are different.
{ "items": [ { "device": "1111-1111", "name": "Lamp in window", "enabled": true, "actions": [ { "action": "on", "time": "08:00", "days": ["weekdays"], "enabled": true, "fixed": true }, ... more actions for this device ] }, { "device": "2222-2222", "enabled": true, "actions": [ { "action": "dim", "level": 100, "time": "08:10", "days": ["all"], "enabled": true, "comment": "xyz" }, ... more actions for this device ] }, { "scenario": "4321-4321", "name": "Plant lights on", "enabled": true, "actions": [ { "action": "run", "time": "06:00", "days": ["mo", "we", "sa"], "enabled": true, "rule": "1234-1234" }, { "action": "run", "time": "15:00", "days": ["tu", "th", "su"], "enabled": true, "rule": "1234-1234" } ] }, { "group": "5555-5555", "enabled": true, "actions": [ { "action": "on", "time": "06:00", "days": ["tu"], "enabled": true }, { "action": "off", "time": "06:00", "days": ["tu"], "enabled": true } ] } ], "rules": [ { "name": "Alarm - at home", "uuid": "1234-1234", "rules": [ { "type": "variable check", "variable": "HouseMode", "operator": "eq", "value": "At home" } ] }, { "name": "Alarm - empty house", "uuid": "1235-1235", "rules": [ { "type": "variable check", "variable": "HouseMode", "operator": "eq", "value": "Empty" } ] } ] }
on, off, setlevel, fade, run
time: Time in hh:mm format, of sunrise, sunset with or withour offset (e.g. sunrise-22m)
The time field can have either fixed times, expressed in 24h format, e.g. "06:00", "17:25", "23:57" It can also be "sunrise" or "sunset", or a time relative to those. 20 minutes before sunrise would be stated as "sunrise-20m". The time offset has to be stated in minutes; also if you want longer periods of time. 2 hours before sunset would be stated as "sunset-120m"
Days can have the following content: "all", "weekdays", "weekends" or any combination of "mo", "tu", "we", "th", "fr", "sa", "su"
The time field can have either fixed times, expressed in 24h format, e.g. "06:00", "17:25", "23:57" It can also be "sunrise" or "sunset", or a time relative to those. 20 minutes before sunrise would be stated as "sunrise-20m". The time offset has to be stated in minutes; also if you want longer periods of time. 2 hours before sunset would be stated as "sunset-120m"
The scheduler execution is controlled with scheduler.conf, placed in the config dir (e.g. /etc/opt/agocontrol/conf.d/). Example:
[scheduler] schedule=winter.json <-- Which schedule file do you want to use? log_level=info print_daily_schedule=No <-- Should you print the schedule to the log when you shift day? random=5 <-- If you want to use a random time delta, state the number of minutes.
With the 'print_daily_schedule' parameter you can select to print the daily schedule. Example:
INFO: 05:52 Scenario - Plant lights on - run INFO: 08:00 ----> now <---- INFO: 08:05 Device - Lampa 1111-1111 - on INFO: 08:19 Device - 2222-2222 - dim INFO: 08:54 Device - Lampa 1111-1111 - off INFO: 17:02* Group - Living room - on INFO: 20:38 Device - 2222-2222 - fadedown INFO: 21:37 Device - 2222-2222 - fadedown INFO: 21:52 Group - Living room - off INFO: 23:02 Device - 2222-2222 - off
The 17:02* means it's a time based on sunrise or sunset. All times in the above example are random times with a 5 minutes plus/minus the base time.
Not much error handling in place when it goes to content parsing. Most errors in the scheduler json file will be ignored. If you're not getting the scheduler to work, test the validity of your json file by loading it to [1] and you'll see any format errors.
Scheduler json files need to be UTF-8 and strangely, local characters (e.g. åäö) mess up the parser, so skip those for now.