Automations script

The Automation script language is based on YAML, and has a hierarchical schema. The basic structure looks like this:

metadata contains the name of the Automation and a description
automations defines the logic of the Automation
starters defines the conditions which trigger the Automation
condition defines additional conditions evaluated to start the Automation
actions lists the actions to take


Each field is a key-value pair:

<key>: <value> # <comments>


  • <key> is a literal keyword

  • <value> can be:

    • A primitive type: bool, number, string, time, etc.

    • A struct type: a collection of fields.

    • An array of the data type. For example, - string is an array of strings.

    • A reference to a data value, which is defined elsewhere. For example, in device: $tv, the tv is a variable, which refers to a device data.

  • <comments> are used for any additional information for the author. The script engine ignores comments-they have no bearing on the operation of the script.