For Designers. Design in Sketch - For visual designers, Indigo Studio now fully integrates with Sketch, the design tool of choice for UX professionals. Using the new Export to Indigo Plug-In for Sketch, you can export your designs directly from Sketch into Indigo Studio, where you can bring them to life and transform them into a fully interactive and testable prototype.
Contribution Library Looking for some cool graphics for your Control Pages? Want to integrate your smart home with other software? Need to see some example Indigo Python scripts to help you get started? Below are some great user contributions for working with Indigo in different ways. Additionally, some of these are excellent tutorials-by-example, so fire up your favorite editor and see how they work. Be sure to check out the for more direct integrations with Indigo from our amazing third party developers.
Indigo 2.x-4.x I needed a script that would reliably close my garage door. Using the I/O Linc (Model 2450 - 1 input & 1 output set to momentary ON) and the magnet from the garage kit I had all the info required. I wanted the script to address situations where a momentary ON (i.e. Button press) would not result in the door closing. This could occur if the door were partially opened (button press may open the door fully instead of closing it) or if the door sticks occasionally and 'rebounds' to the open position. I limit the number of close attempts to five so that the motor doesn't burn out if things go haywire.
Indigo 2.x-4.x This script downloads and speaks a weather forecast from Weather.com through your computers speakers. Note: This script expects the weather report to be in English.
That is reasonable since the documentation and support pages for Indigo are in English and it is probably safe to assume that if you found this script you speak some English. BUT: If you would like to use a language other than English for your reports, this script can be tuned to other languages and alternative web sites. If you need help doing this, post your request to the Indigo 'Indigo & Applescript' forum. Update 1.0.1 includes revised instructions for locations outside the US and Canada and corrects a minor error in the instructions on changing the number of periods reported. Indigo 2.x-4.x I do this to detect my blackberry and my wife's iphone by watching for them to login to our airport routers.
It's a hacked up version of someone else's script that I found online. Some caveats: - The airport extreme seems to not like being polled so often, I have to reboot it once a day (I have a controllable PDU in my rack) to keep it happy. SNMP stops responding, it otherwise is fine.
The airport express does not seem to have this problem, I complained to apple. The iphone will disable the wireless if not plugged in and the screen lock kicks in - You would need to work out the SNMP OIDs for the MACs of your devices with snmpwalk. You need to do the snmpwalk before the snmpget's or it has stale info (I'd love to know why?) - The time appears to be an epoch in hundredths of a second since boot.
I use this to turn on our outside lights at night when we arrive. It's sort of hit or miss whether the clients associate fast enough for this to be helpful.
Credit to: - Daniel Chote ( - Date: December 1, 2007. Indigo 2.x-4.x Script to get the location of a cellphone from Instamapper Lookup the location with geoNames and update Indigo with the location.
Assumes that your account on Instamapper has been setup and API access enabled - Instamaper stipulates the API not be called more frequently than every 10 seconds - Geonames offers 50,000 API 'credits' a day in their free service. Each lookup in this script uses 1 credit. If run every couple of minutes it should be well within their rules as this time.
Indigo 5 only This sample script demonstrates how to control Indigo from Siri utilizing iMessage on the iPhone and Messages on the Mac. Please consider this a proof of concept, since I'm not a programmer capable of making a polished app.
However, it works great in my setup and most of the functions are generally useful in other installations. I've only tested the solution in Indigo 5 since I haven't tried Indigo 6 yet. However, assuming Indigo 6 still works with Applescript, there should not be any problem there.
This is my first submission so I hope it's complete enough to be useful. Indigo 2.x-4.x The iTunes attachment script defines several AppleScript functions for controlling iTunes from Indigo. These functions can be called from Indigo Execute AppleScript Actions or from within any AppleScript tell app 'IndigoServer' block. The script also listens for X10 A/V commands (stop, play, vol+, vol-, etc.) from the MR26 or W800RF32 and passes on the commands to iTunes. This functionality requires an X10 'Entertainment Anywhere' remote control, like the UR81, and a MR26 or W800RF32 RF receiver interface. Indigo 2.x-4.x I usually listen to my main library in shuffle mode, but quite often a track comes on and I say 'I'd like to hear this album in its entirety, in correct track order. With this script I can issue an X-10 command that causes iTunes to create and play a new, non-shuffled, non-repeating playlist consisting of the album of the current track, sorted by track order.
The script will announce 'Now playing album by artist'. When iTunes is stopped, either by user action or by the playlist finishing, iTunes will delete the playlist and resume play in the main library at the next song by a different artist. Indigo 4.x only This package is used to simplify access to and inneroperability of three applications:. iTunes. PandoraBoy (- Plays Pandra 'radio stations'.
AirFoil (- used to send audio from any application to the AirPort Express units, apple TV(not just iTunes) My goal is to have a way to control my whole-house audio system that plays iTunes, Pandora and making announcements. If iTunes were the only application involved, access is very simple - and the fitures in the scripts included in Indigo would more than suffice.
When one adds the complexity of adding Pandora to the mix, it gets a little more complex:. AirPort Express devices only work with iTunes by default. Pandora - a web service - is not easily controlled with Applescript. Most likely, you would not want iTunes and Pandora playing simultaneously. A random mashup of Cake and AC/DC is less pleasing to the ear than one might expect.
A quick note on Pandora: After some brief testing with Pandora, I quickly learned that paying for the 'Pandora One' is a great value. The environment described here is not intended for use with the ad-based, free Pandora experience - the frequent pauses and ads make the environment unworkable. To solve the above issues, two applications were required:. AirFoil - an inexpensive (but not free) application that allows sending audio from any application to Airport Express devices, Macs, Apple TVs, iPhones and iPod Touches. PandoraBoy - a simple wrapper application that allows AppleScript control of the Pandora web-based service.
Indigo Plugin. Indigo 5.x-6 This plugin allows you to perform actions on any Mac in your network, whether it is the Indigo server or not. What you can do is only limited to what Applescript can do on the given machine. At its core this plugin is a Python program that executes Applescript commands on your desired machine. While this is easily accomplished using Indigo's scripting, I wanted to be able to take it a step further by having an On/Off state associated with the command.
For example (and why I built this in the first place): I have Plex running on one of my Macs in the house (not the Indigo server) and wanted to be able to turn the Plex Server on and off at will. I accomplished this easily with some Indigo scripting but it was just firing into the blind.
![Indigo Studio For Mac Indigo Studio For Mac](/uploads/1/2/5/4/125486203/151074695.jpg)
What this app does is allow me to assign an 'On' command (start Plex server), and 'Off' command (stop Plex server) and a 'Polling' option to see if Plex server is running or not and dynamically turn my 'device' on or off as a result. More information and documentation with screenshots can be found via this Script. Indigo 2.x-4.x This plug-in allows Weather Display fMac data integration with Indigo Web Server (IWS).
Weather Display is the most popular weather station software on the Windows PC and now has been ported to the Mac. It supports a myriad of personal weather station hardware from almost all manufacturers (Davis, Lacross, Irox, Oregon Scientific, Ultimeter, Weather Hawk, Rainwise, Texas Instruments, Dallas 1-wire, and others) as well as Internet based weather sources. And it now supports data transfer straight in to Indigo variables. Read more about WD Mac here: The WDMac Plugin goes to work as soon as you install it, waiting for the data you have specified to arrive from Weather Display. If the variable has not been created the plugin will do that for you also, and name the variable based on the field definition you configured in Weather Display. Indigo 5.x-6 This Indigo 5 and Indigo 6 (beta 7) Plugin supports one or more Aprilaire Communicating Thermostats over a StatNet Network.
This has been tested with an Aprilaire Model 8870 thermostats, and Aprilaire Model 8800 thermostats. Both can exist on the same StatNet network at the same time.
This Plugin is now fully integrated into the Indigo Thermostat device model. Up to 32 Thermostats can be controlled over the one StatNet communication network but the practical limit would be 4 to 8 thermostats on a single network. Each thermostat supports unto 4 remote sensor modules, with two remote temperature or humidity sensors per module connected on each thermostats' local RS485 bus.
The Aprilaire thermostat can be hardware configured as a Thermostat or Humiditstat Controller. These remote sensor modules and controller types are supported by the plugin. A typical configuration would include: - Thermostat Model 8870 or 8000 - Protocol Adaptor 8811 - Distribution Panel 8818 / 8819 - Remote Sensor Modules 8062 / 8082 or 8061 / 08081 - Remote Sensors 8051 or 8052 Note: Please check the Aprilaire documentation when mixing the older and newer generation components. There are some considerations required.
Communication has been tested with a 'local connection' USB - Serial to the 8811 Protocol Adaptor as well as 'Net Socket connection' through Global Cache GC-100-12 Serial to the 8811 Protocol Adaptor. Indigo Plugin. Indigo 4.x-6 BrightenWithRate 1.0 This is an Indigo Pro 4 and 5 compatible Attachment AppleScript which allows you to set the on-level (brightness) of an INSTEON dimmable device, specifying a ramping time that is different from the device's programmed default ramp rate.
This has been tested and found to work on Smarthome SwitchLinc Dimmers, LampLinc Dimmers and KeypadLinc Dimmers. It should also work on In-Line Linc Dimmers and the dual-band versions of these devices. It may or may not work on other INSTEON dimmable devices (like ICON dimmers). Indigo Plugin.
Indigo 6.x-7 Indigo 6 Plugin for Caddx NetworX Series Security System (version 1.3.0) OVERVIEW It is a comprehensive protocol implementation of Caddx NX-584 RS-232 Gateway Interface Protocol (April 2000) spec. This should work with the Caddx NX-584 RS-232 Gateway Interface for the Caddx NX-4, NX-6 and NX-8 but I do not have the hardware to test this. It has only been tested with NX-8e. The following is a list of supported message transactions: - Interface Configuration Request/Message (read interface configuration parameters in alarm panel) - Zone Name Request/Message (read alarm panel configured 'Zone Name' if supported by KeyPad (NX-148e only)) - Zone Status Request/Message (read completed status of the request 'zone x') - Zone Sna IndigoWebServer Plug-In.
Indigo 6.x-7 Enphase Envoy-S Plugin (including per Panel Individual Data/Monitoring) Emphase is a per panel solar generation solution - via the use of roof based microinverters. This plugin monitors each panels output, and reports all useful data from the solar Enphase system via the Envoy-S. See & For a international map of their thousands of installs see.
(last count I see 540,000 installations.:P ) (gotta be some Indigo users out there???) This Plugin connects the the local Enphase Envoy-Sdevice and pulls all information; including individual panel output (regardless of whether you have that option with your install) It connects locally to the envoy device - and does not use the enlighten / web-service API. The local connection provides much more information, is more UpToDate and can be pulled every few minutes without problem. Having compared the two over some time there is no comparison to this minute-minute data. Indigo Plugin. Indigo 5.x-6 I had been looking for a solution to remotely monitor the level LP gas in my outside tanks with Indigo for years.
I gave up waiting, and decided to create one myself. I'm happy to say that it has been working quite reliably for a year now. I can see my tanks' level (as a% full value) on my control page, and get text alerts when the level passes thresholds I choose, and also when the propane company comes and refills it while I'm away. This solution operates over ZWave and requires two special hardware items, a MimoLite, and an R3D Hall Effect Module. More detail in the attached document. Please note that I am not an electrician or plumber.
I believe this implementation is very safe, and the R3D device is intrinsically safe, per the Rochester specifications. Having noted that, install this solution at your own risk. Please feel free to contact me if you find any information you feel is incorrect. Indigo 6.x-7 miDoor is an Internet-enabled device that allows users to remotely view their garage door and/or gate status and open or close it with an iPhone, Android device, iPad or a Web-browser. Connect miDoor to an existing garage door switch, add the door sensor and then set the basic configuration. From there you will be able to create multiple user-profiles, view the door status anywhere in the world using your iPhone, iPad or a Web-browser and open or close the garage door using your iPhone, iPad or Web-browser. Alarms can be created that can notify you if the door is activated at unexpected times, is left opened too long, or if activated by a specific user.
Alarms status is visible by LED, from an iPhone, iPad or Web-browser and/or by receiving email notifications. No longer will you have to worry about who gets the two standard issued remotes from the garage door opener nor have to worry about trying to program the garage door openers in your car, miDoor will allow up to 36 unique user accounts to open or close the garage door using an Android device, iPhone, iPad or Web-browser. Every time the garage door is opened or closed it is logged into an event buffer. View the log and get a history of the events with the times in which they occurred.
![Indigo Studio For Mac Indigo Studio For Mac](/uploads/1/2/5/4/125486203/577770929.jpg)
Indigo Plugin. Indigo 5.x-6 The is a 4 outlet power distribution switch that allows individual outlets to be switched on & off remotely via a wired Ethernet connection. This plugin extends the Mac home automation application to support the IP9258 and allow each outlet to be configured and controlled as a separate device. Models supporting UK, European & US power outlets are available. I've used these to replace X10 appliance modules where a number of devices need to be controlled within a small area (e.g.
Behind the TV) or where the devices being switched require a higher degree of reliability than can be achieved using X10. Indigo 6.x-7 This Indigo 6.0+ plugin allows Indigo to act as a remote control for select network-connected Sony devices. All commands/buttons found on the standard, included remote can be sent to the device as well as a multitude of additional commands generally available only through network or advanced universal remotes. The protocol exposed by Sony devices, and utilized by this plugin, does not allow for state information about the device to be obtained (such as what current application/channel is active or what input the television is currently showing).
If the protocol is changed or a device comes out that does provide feedback then it may be possible to enhance the plugin at that time. Indigo Plugin. Indigo 6.x-7 If you have a Tesla Model S you may or may not be aware that Tesla exposes an API that lets you get, among other things, the location of the car at any given time. The values are returned as GPS coordinates. This is quite handy for setting up something like a geofence whereby you can have actions occur when you hit certain distances from your house. This is similar to the geofencing others have described this works very well given that the Tesla can very acccurately tell you where it is. I'm attaching my scripts (cleaned of my location data/passwords/private stuff) by which I track where my car is and speed up polling as I approach home.
Note you should not poll too quickly ( once every 10 seconds) or Tesla will block your IP (and then you have to reset your cablemodem and other funky things). Note you'll need to find similar landmarks near your house via google maps or apple maps and then grab the coordinates from the map to plug into this script similar to this format: 46.455135,-102.761278 There's two parts to this system.
One is the AppleScript which manages Indigo and the triggers/variables, and the other which is a shell script which calls the Applescript at set times (again, never once every 10 seconds). The shell script is running continuously, in the background.
Note this also ties in to the I/O Linc that controls my garage door opener. Also note that I have a second Mac that gets sent the Tesla's location. It then opens up Apple Maps (on my non-primary Mac) and shows the location of the Tesla. Hit me up with questions if you have any.
Indigo 4.x only Here it is, an attachment script that will allow Venstar Insteon Thermostat users to monitor their daily usage of AC, Heating, and Fan usage This is a basic attachment script that is designed to extend Indigo When installed, the changes are most noticeable in the Log file Received INSTEON 'Furnace Link' off (button 2) Thermostat Insteon Thermostat Event being processed Thermostat Thermostat requesting Heating - Off Thermostat Furnace Heat Ran for 14 Minutes Thermostat Thermostat Event Processing Done Script. Indigo 2.x-4.x The Xytronix Temperature module can read up to 4 electronic thermometers and this AppleScript passes the temperature readings along to Indigo. The Temperature Module connects to your Local Area Network (or via the internet with proper routing).
Getting accurate and reliable temperature data is an important part of improving overall energy efficiency. Automatically controlling windows, shutters and shades, whole-house fans, heat exchangers, solar hot water', and much more is possible using Indigo, AppleScript and the Xytronix Temperature module. Indigo 4.x only What is the Indigo Restful Interface? The Indigo Web server, as of Version 4, includes a restful (Representational State Transfer) web interface. REST interfaces are an attempt to make a easy way to simplify access to server based data. Either sending data to the server, or changing the information on the server.
Restful interfaces are quite useful, but since they are dealing directly with the server, they are often very low-level. I have started to create a higher level python wrapper for it. This higher level wrapper, simplifies the details by abstracting the process.
The code, is available from for the project. What Does the API Support? Currently the wrapper supports:. Added getdevicelist, and getdevicebyname. Added setthermostatheatingmode, and setthermostatfanmode. Fetchdevicesfromindigo.
changedevicestatebyname. toggledevicestatebyname. changebrightnessstatebyname.
setvariablebyname. getvariablelist. getactiongrouplist. getactiongroupbyname. activateactiongroupbyname. getvariablebyname. returndevicefrominsteonaddr.
returndevicefromx10addr Indigo Plugin. Indigo 6.x-7 Smart Devices aims to become a collection of “meta” or “virtual” devices and “tools” that combines several other devices and logic to solve practical challenges. The first Smart Device to be published is the “Simple Smart Thermostat”. It is a “virtual thermostat” device with simple but effective logic for controlling heating. This is done by selecting one or more temperature sensor device inputs, and one or more relay switches that control heater(s). Thus the heater(s) will be turned on and off according to the sensed temperature(s) and your “Simple Smart Thermostat” set point. Smart Devices is released as 'works for me software'.
I have changed versioning to reflect semantic versioning (and dropped the 'beta' annotation. New in v1.2.0:. Ability to use variables instead of sensor devices to collect sensor data. Ability to get and set the thermostat set point from or to a variable.
New in v1.2.1:. Automatic Update Checker. Implemented configurable max and min setpoint boundaries so the values for boundary check will make sense for Fahrenheit users that can now set correct values in Fahrenheit. New in v1.2.2:. Ability to control other thermostats. Minor bugfixes, improvements in heaters list and UI New in v1.2.3:. Bug fixes.
Fully implemented validation of device configuration dialog New in v1.2.4:. Removed verbose logging and cleaned up general logging.
New in v1.2.5: This update contains several improvements in safety features and user preferences and fully implements validation of all fields in the Simple Smart Devices configuration dialog. Safety shut down removed. Skipping safety check when changing setpoint. User configurable safety mode.
Configurable default setpoint value. Configurable setpoint step value.
Graphics & Icons. Indigo 5.x-6 This script is a Python library for Indigo that will examine a variable value, and if that value is the name or ID of another variable, it will examine that variable's value, recursively. When it finds a name or ID that's not a variable, it will check to see if it's an action group and if so it will execute that action group. This allows the user to create a tree of choices that can easily be traversed until it finds what the user wants. It's used in the but can be used in a variety of other ways. Graphics & Icons.
Indigo 2.x-6 The Wunderground Script will poll a Wunderground Airport Station and/or PWS (Personal Weather Station) and retreive the latest weather information for the specified station code. Data from the PWS and Airport stations can be merged. If more than one PWS is specified, and good data is not available for the first PWS, the script will try the additional PWSs in order until good data is found. The weather information will be saved into Indigo Variables. Support is provided for weather icons to indicate the current conditions.
A basic set of Wunderground icons is included. Changes in V2.5.4 This update corrects a formatting bug in the Wunderground daily metric precipitation data.
Indigo 4.x only This plugin will generate a report for the specified day (yesterday by default) that shows how long each device was on for that day (in minutes). The plugin makes a couple of assumptions:. All times are in local time, so the values may be a little odd on days when DST changes. If the first command seen for a device is to turn it OFF, the plugin assumes that the device was on since midnight. For any device whose last command seen was an ON, the plugin assumes that it was on up to midnight. The report doesn't currently include Thermostats, Sprinklers, and IO devices - it does however include some devices that may not make any sense, specifically motion sensors. This report should be used only as rough insight into what devices in your home are used most.
It requires that SQL logging be turned on and SQLite as the database type. The plugin reads all the necessary config information from the IndigoSqlClient.conf file that you must configure in order to make SQL logging work correctly. NOTE: When the IndigoServer first starts up or switches Indigo Databases broadcasts some device state changes during the startup process that the SQL logger then adds to the log database. Unfortunately, these don't actually represent real state changes. However, from the plugin perspective, it's not possible to distinguish these from normal state changes. Therefore, you may see some days that contain erroneous data. Unfortunately, until we figure out a good solution for those errant changes, you may need to just skip days where you restarted the IndigoServer.
Indigo 4.x-6 This application is based on the original Perl script from seanadams. This update packages that script as an OS X app called iHealth. All required Perl modules are included. IHealth sends Insteon requests to the devices listed in a devices file and measures the response time. Results can help find problem devices or areas that have poor signal propagation. NOTE: iHealth works on OS 10.5 through 10.7, PowerPC and Intel. IHealth will also run on Tiger, but some problems have been observed.
Specifically, the URL passed to Safari to view the report may wrong and the PLM interface may not be brought back online automatically. This release fixes a compatibility problem with Indigo 5.x. Indigo 4.x-6 The Survey plugin will go through your Indigo Devices, and “Ping” (Status Request) any devices that support the Status Request command. This allows you to get a survey of all your devices, and ensure that they are online easily.
Simply turn off a breaker, and then run a Survey through this plugin, it will cycle through each device, forcing a status request, and will report any devices that do not respond to the status request. This should give you a list of devices that are on each breaker. Indigo 5.x-6 Switchboard is the successor / replacement to the Indigo Security Script.
It allows Indigo to monitor any device for status changes and can trigger actions based on the status of the device. It also adds X10 Security monitoring, and allows for Monitored Device groups. This allows you to create a group of devices that can trigger an action, without having to write triggers for each and every device that makes up the group. Instead the Monitored device group will self manage the triggers. See more details here: automation/indigo-v5-plugins/switchboard/ While this can be used for 'Security Purposes', this can be easily be used to simplify and customize any Indigo configuration easily. This is not limited to security purposes. Indigo 3.x only This plug-in will allow you to perform some Indigo action then redirect to a control page: the idea being that you might have a control on a page that you want to click which could then do something and end up on a different (or the same) control page afterward.
NOTE: requires 3.0.6 or greater, but will NOT work with 4.x+ (this functionality is built-in). To that end, there's currently one function in this plugin, execGroup, which takes an Action Group name and a Control Page name. It executes the Action Group and then forwards to the Control Page.
IndigoWebServer Plug-In. Indigo 3.x-4.x This plugin will allow you to edit variables from a web page (in fact, you can do it without the page but since you can already do that it's redundant). When the edit form is saved, the variable is updated and you're redirected to the control page specified. If you cancel the edit form, you're just redirected to the control page. Another use for this is to have some other process/application/webservice/etc make changes to variables directly: introduces an entirely new integration point. NOTE: requires 3.0.6 or greater, but this functionality is built-in to v4.0.
Graphics & Icons.