Scheduler

From ago control wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "= Ago Scheduler = The ago scheduler module allows triggering action on specific times of theday. You can add one or many times of day to a device, a group of devices or to a...")
 
(Added configuration)
Line 1: Line 1:
 
= Ago Scheduler =
 
= Ago Scheduler =
The ago scheduler module allows triggering action on specific times of theday.  
+
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 scenarion. You can add on or many rules to the event. Some examples:
+
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:
* Run scenarion for closing the drapes and switch on the porch light at 19:00, but oly if the housemode = "At home".
+
* Run scenarion for closing the drapes and switch on the porch light at 19:00, but only if housemode is "At home".
 
* Irrigate the lawn every Tue 9:00am and Fri 8:00pm
 
* Irrigate the lawn every Tue 9:00am and Fri 8:00pm
...
 
 
* Turn on all window lights 30 minutes before sunset.
 
* Turn on all window lights 30 minutes before sunset.
  
== Configuration ==
+
== Schedules ==
As of now, there's no UI to create the scedulesFor now, you'll need to edit a json file to suit your needs.
+
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. Yu could e.g. have a winter.json and a summer.json schedule that are different.
  
 
=== File format ===
 
=== File format ===
Line 96: Line 96:
 
The time field can have either fixed times, expressed in 24h format, e.g. "06:00", "17:25", "23:57"
 
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"
 
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"
 +
 +
== Configuration ==
 +
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
 +
log_level=info

Revision as of 18:21, 12 February 2017

Contents

Ago Scheduler

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:

  • Run scenarion for closing the drapes and switch on the porch light at 19:00, but only if housemode is "At home".
  • Irrigate the lawn every Tue 9:00am and Fri 8:00pm
  • Turn on all window lights 30 minutes before sunset.

Schedules

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. Yu could e.g. have a winter.json and a summer.json schedule that are different.

File format

{
"items":
[
   {
     "device": "1111-1111", "name": "Lamp in window",
     "enabled": true,
       "actions": [
         {
           "action": "on", "time": "08:00", "days": ["weekdays"], "enabled": 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"
       }
     ]
   }
 ]
}


Days

Days can have the following content: "all", "weekdays", "weekends" or any combination of "mo", "tu", "we", "th", "fr", "sa", "su"

Time format

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"

Configuration

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
log_level=info
Personal tools