Glossary of Terms¶
There tends to be a lot of home automation specific and other jargon used in documents, wiki articles, and in the support forums. This is where we'll capture those so it's easy to find the definition you need.
| Term | Definition |
|---|---|
| Action | Indigo actions are discrete tasks that cause things to happen -- such as turning on a light, changing a setpoint, writing information to the log, and so on. Indigo ships with many standard actions and plugin developers can create actions that apply to their plugins. |
| Action Group | Action groups are collections of actions that may be reused (and modified) easily between multiple triggers, schedules, and control pages and executed via various clients (the Mac Client, the Indigo Web Server (IWS) web pages, Indigo Touch, etc). |
| API | An API (Application Programming Interface) is a set of rules and protocols that allow different applications to exchange information with one another. It helps developers and users to integrate, leverage, or share data and processes from other systems without having to create their own. |
| AppleScript | A macOS scripting language that allows applications to be controlled and automated. AppleScript is considered a legacy scripting language in Indigo. |
| Association | A process used to link two or more Z-Wave devices together so they essentially react as a single device. |
| Control Page | Control pages are user-created interfaces to control their Indigo system - for instance you could create a graphical floor plan with light icons in the various rooms. |
| Condition | In Indigo, a condition is a logical test that's used to determine whether something should happen. For example, you might only want something to happen at nighttime, or only when all the windows are closed. |
| Controller | In Indigo, a controller is a device that controls another device. Z-Wave controllers include various peripherals such as USB sticks -- which send commands from Indigo to a device (like a dimmer) or from the device to Indigo. A controller may also be a responder (i.e. Insteon KeypadLinc). We've adopted the term from various Insteon documentation. |
| Developer | A person who writes plugins or scripts for the Indigo Server (IS). |
| Exclude/Exclusion | Used to remove a device from a Z-Wave controller. |
| Include/Inclusion | Used to add a device to a Z-Wave controller. |
| Insteon | A home automation protocol developed by SmartHome that uses a dual-band (powerline + RF) mesh network so devices can communicate directly with one another. Indigo supports Insteon devices via a USB PLM (PowerLinc Modem). |
| Insteon Link | A connection between two Insteon devices such that one device controls the other based on some input - a button press, etc. |
| Device | A device is any "thing" that Indigo can interact with - usually it's some kind of hardware (light switch, appliance module, motion sensor, etc.), but devices can also be other non-hardware things (iTunes server, calendar, etc.). Devices can also be "virtual" objects supported by plugins that have the potential to do all kinds of useful things. |
| I/O Device | Any device that has binary or analog inputs or outputs. These devices are generally used to interface at a low-level to other devices (security systems, sensors, etc). |
| Indigo Object Model | The Indigo Object Model (IOM) is how the various objects in Indigo are modeled in Python objects for scripters and plugin developers. |
| Interface | Indigo provides support for several different interface types, including: Z-Wave, Insteon/X10 Powerline, X10 RF, and Virtual Devices (software-based interface). Additional interfaces may be supported through user-submitted plugins. |
| JSON | JSON (JavaScript Object Notation) is a lightweight, human-readable data format used to represent structured information as key-value pairs and lists. It is widely used for data exchange between Indigo plugins, scripts, and external APIs and web services. |
| Node | A node is used to refer to a single device on a Z-Wave network. Nodes are assigned a unique node number by the Z-Wave controller. |
| Object | In Indigo, an object is any item managed by the server — such as a device, trigger, schedule, action group, control page, or variable. Objects are accessible to scripters and plugin developers via the Indigo Object Model (IOM). |
| Plugin | Indigo supports ways to extend its functionality such as Indigo Server (IS) plugins. IS plugins can extend Indigo by adding additional devices types, trigger events, and actions. |
| Python | The programming language used to write Indigo scripts and plugins. Indigo embeds a Python interpreter, allowing scripters and developers to automate logic, interact with the Indigo Object Model (IOM), and extend Indigo's capabilities beyond its built-in features. |
| Reflector | Indigo's secure tunnel service for remote access without the need for a VPN. |
| Responder | In Indigo terminology, it's a device that responds to commands. A responder may also be a controller (i.e. Insteon KeypadLinc). We've adopted the term from various Insteon documentation. |
| REST | REST (Representational State Transfer) is an architectural style for web APIs that uses standard HTTP methods (GET, POST, PUT, DELETE) to interact with resources. The Indigo Web Server (IWS) exposes a RESTful API that allows external applications and scripts to query and control Indigo objects over the network. Indigo's REST API has been deprecated in favor of the websocket and HTTP APIs. |
| RF | RF (Radio Frequency) interfaces use wireless radio waves to communicate with the Indigo Server. |
| Schedule | A schedule is similar to a trigger, but the event that causes the execution of the actions is a temporal event of some kind. Either a fixed point in time (5/2/2011 at 1:00pm) or more likely some repeating time (every day at 1:00pm). |
| Scripter | Someone who uses Python scripts to implement automation logic in Indigo via embedded or file-based script actions and script conditions. |
| Sync/Synchronize | A process initiated in Indigo to refresh a device's settings, states and other information in the Indigo server. Not all devices support a synchronization and battery devices that support synchronization will be updated at the next polling time. |
| Trigger | A trigger is generally some kind of "event" that occurs. Indigo can use that event to execute actions in response. For example, turn on an exhaust fan if the humidity exceeds a certain level. |
| Variable | A variable is a place where your home automation logic can store information that changes during the normal operation of your home and that can be used in other parts of your system: for instance, you can have a variable that represents whether your home is occupied or not - then you can have special automation logic that takes place when that variable changes. Indigo variables store values as plain text. |
| Webhook | an HTTP request that lets external services trigger Indigo actions. |
| X10 | One of the earliest home automation protocols, X10 sends on/off and dim commands over a home's existing electrical wiring (powerline). Indigo supports X10 devices through compatible controllers. X10 is considered a legacy protocol in Indigo. |
| XML | XML (Extensible Markup Language) is a structured text format that uses nested tags to represent data in a human- and machine-readable way. Indigo uses XML extensively for plugin device definitions, action configurations, and preferences files. |
| Z-Wave | A low-power wireless mesh networking protocol designed specifically for home automation. Z-Wave devices communicate in the sub-GHz band (908 MHz in North America) and support two-way communication. Indigo supports Z-Wave devices via a Z-Wave USB controller (often called a Z-Stick). |