
Device Extensions Overview
Device Extensions is a plugin for the Indigo home automation platform for Mac. Originally it was designed as a way to enhance control pages by converting or otherwise manipulating the values of other device states, properties or configuration to represent a value more useful for your control page, although many people use the plugin for its ability to convert data in a number of ways rather than just for the sake of control pages.
Most notably Device Extensions performs the following functions:
- Read a variable, device state, device attribute or device property and convert the data to another format
- Represent an alternative device state in the Indigo user interface
- Wrap devices in order to manipulate some or all of the standard device functions or data
- Wrap and Alias devices to work with voice controlled home automation systems such as HomeKit (via Homebridge Buddy), Amazon Echo (via Alexa Hue Bridge) or Google Assistant (TBD).
The plugin works by creating a device and then referencing other devices, variables and action groups from the configuration options and selecting the operation that you need it to perform, thus creating a new device with a new device state and new device functions - thereby extending the original referenced device.
Thermostat Wrapper (Available in 2.1.0 or earlier)
Instead of extending a device, this allows you to wrap a device and completely change how it works or simply create a one-off device not attached to any other thermostat device for your voice controlled automation. It will work with any built-in or third party thermostat device and gives you the ability to:
- Optionally wrap another thermostat so that any functions not specifically overridden will pass through to the referenced thermostat
- Override the temperature value from any device state, device property or device attribute as well as any variable value so long as the value is a number
- Override the humidity value from any device state, device property or device attribute as well as any variable value so long as the value is a number
- Allow Indigo to specify the device icon or select from any Indigo device icon you wish to use in the UI
Voice Controlled Home Automation (i.e., Siri or Alexa)
This device will detect if you have a valid voice controlled HA system and enable you to attach to supported systems. Currently you can only attach to Homebridge Buddy for HomeKit.
Conversion Extension
The following conversions can be performed by Device Extensions by referencing a variable or a device state, property or configuration and then performing one of the following conversions:
Boolean Type Conversions
Because of the variety of ways that Indigo can represent a boolean value, the following conversions can be made:
- True/False
- Yes/No
- Open/Closed
- 1/0
- Ready/Not Ready
- Available/Not Available
- On/Off
- Good/Bad
- Locked/Unlocked
Weather Extension
Use the Weather Extension to convert the value of any device state, attribute or property - including all weather plugin devices - to track and represent the following:
- Daily High Temperature
- Daily Low Temperature
- Daily High Humidity
- Daily Low Humidity
- Is It Raining?
Device State For UI
Once created you can have the Indigo device list represent any of the following as the device state:
- Current Temperature in F or C
- Current Humidity
- High Temperature
- Low Temperature
- High Humidity
- Low Humidity
Thermostat Extension
Using any valid Indigo thermostat device, either native or from a plugin, the following new abilities are provided to you when using the Thermostat Extension:
- Represent temperature in F or C regardless of the "Parent" thermostat
- Have up to four presets that can be called to set the heat point, cool point, HVAC mode and fan
- Change the increment/decrement of heat or cool points from the default of 1 to any amount, giving you the ability to have, say, a control page change the temperature by X degrees on each tap instead of 1
- Auto preset time out allowing you to use a preset and have it return to where it started at the end of the time out
- Means to toggle the HVAC mode on and off with a single action in a control page
Device State For UI
Once created you can have the Indigo device list represent any of the following as the device state:
- Current Temperature in F or C
- Current Humidity
- High Temperature
- Low Temperature
- High Humidity
- Low Humidity
- Preset Number
- Current Setpoint
- Cool Setpoint
- Heat Setpoint
- Operation Mode (heat/cool)
Irrigation Controller Extension
Using any valid Indigo irrigation controller device, either native or from a plugin, the following new abilities are provided to you when using the Irrigation Extension:
- Automatic rain control (turn off when rain is detected) using any Indigo device, including all weather devices, with the ability to either stop the running schedule or pause it until the selected device no longer reports a rain condition
- Automatically resume a paused schedule and pick up right where it left off
Device State For UI
Once created you can have the Indigo device list represent any of the following as the device state:
- Zone run time remaining as HH:MM:SS, HH:MM, MM:SS, MM or :SS
- All zone times remaining, aka the time remaining for the full schedule
- Current running zone name
- If the schedule is paused
URL Extension
The URL Extension allows you to treat a URL as an on/off device in Indigo by allowing you to:
- Use a URL for an ON command
- Use a URL for an OFF command
- Use a URL for a TOGGLE command
- Force off a device if the ability to auto detect it's on state isn't possible
v2.0.4 |
Requires Indigo v7.0.2 thru v2022.2 |
Released Jan. 12, 2018 |
Version 2.0.4 |
Changes in this release
Originally an Interim release this has been made a full release since it addresses an annoying startup bug.
- Added new Thermostat Wrapper device to allow you to either wrap an existing thermostat and re-assign select fields and functions or to create a thermostat from device states, variables and action groups (created as an option to use with voice control such as Homebridge Buddy)
- Improved idle performance by 100%: CPU performance at idle now at 50% of previous after moving extraneous concurrent threading calls into a conditional variable instead. Before the fix the idle CPU usage of the plugin was between 0.6% and 0.8% and now is between 0.3% and 0.4%
- Added global variables for thermostat preset expiration times and high/low reset times to take them out of concurrent threading where it was checking all devices of that type every thread occurrence
- Fixed issue in the concurrent thread that could cause an error if a device of a certain type had not been created by the user
v2.0.3 |
Requires Indigo v7.0.2 thru v2022.2 |
Released Jan. 8, 2018 |
Version 2.0.3 |
Changes in this release
- Added new field to the conversion for Lux to Word Value called Adjustment, this value will change the word value based on the upper limit of your light sensor. For example, the Fibaro motion sensor only detects up to 32,767 lux (normally lux is detected up to 100,001), so entering .32767 in this adjustment field will change the calculation to be more accurate based on the equipment reporting the value.
- Added lux adjustment according to the value of the new lux Adjustment field, a value of 1 indicates that the sensor can go to the full 100,001 lux (direct sunlight)
- Fixed a bug when starting a device or editing a device that did not check if a referenced device ID was valid before trying to load the device, resulting in an error. Now it will check beforehand and log an error to let the user know that there is an invalid Indigo device being referenced by a plugin device
v2.0.2 |
Requires Indigo v7.0.2 thru v2022.2 |
Released Dec. 18, 2017 |
Fixed Indigo Plist release version |
Changes in this release
A ground-up rewrite from the original 1.x version to be 100% compatible for Indigo 7 (and thusly incompatible with any previous version of Indigo). If you need the previous version please find that under Device-Extensions-Legacy.