# Indigo Documentation > Documentation for Indigo home automation software ## Integration APIs - [Integration APIs](https://docs.indigodomo.com/2025.2/api/): Overview of the Integration APIs: choosing between the HTTP API and the WebSocket API to integrate external systems with Indigo. - [HTTP API](https://docs.indigodomo.com/2025.2/api/http/): HTTP API reference for querying and commanding Indigo objects via authenticated HTTP requests using JSON. - [API Messages](https://docs.indigodomo.com/2025.2/api/messages/): JSON message format reference for WebSocket and HTTP API commands, events, plugin messaging, and error responses. - [Migrating from the REST API](https://docs.indigodomo.com/2025.2/api/rest-migration/): Examples showing how to convert legacy Indigo REST API calls to the new HTTP API format. - [Webhooks](https://docs.indigodomo.com/2025.2/api/webhooks/): How to configure Indigo to send and receive webhooks for integration with external services and automation platforms. - [WebSocket API](https://docs.indigodomo.com/2025.2/api/websocket/): WebSocket API reference: persistent bidirectional connections for receiving live Indigo object updates and sending commands. ## Plugin Development - [Plugin Development](https://docs.indigodomo.com/2025.2/plugin-dev/): Developing Indigo plugins: the Developer's Guide, tutorials, the plugin.py and XML references, and the SDK example plugins. - [Developer's Guide](https://docs.indigodomo.com/2025.2/plugin-dev/guide/): Introduction to the Indigo Plugin Developer's Guide: plugin bundle structure, Info.plist, folder layout, and the server plugin architecture. - [SDK Example Plugins](https://docs.indigodomo.com/2025.2/plugin-dev/sdk-examples/): The example plugins that ship with the Indigo SDK: custom devices, energy meters, relays, sensors, sprinklers, Insteon/X10 listeners, database traversal, and more — with full XML and Python source. - [Setting Up a Development Environment](https://docs.indigodomo.com/2025.2/plugin-dev/reference/dev-environment/): Tools and setup for developing Indigo plugins: choosing an IDE or editor, organizing your project, virtual environments and version control, symlinking a plugin for development, debugging with pdb/PuDB/PyCharm, and packaging tips. - [plugin.py Method Reference](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/): Reference for plugin.py: PluginBase lifecycle methods, device/action/event callbacks, logging, HTTP request handling, and message flow. - [Additional Topics](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/additional-topics/): Additional plugin topics: the preferences file, bundling 3rd-party Python libraries, and setting up a development environment. - [Device Methods](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/device-methods/): Device-related plugin callbacks: device start/stop comm, config UI, and device action handling. - [General Plugin Methods](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/general-methods/): General PluginBase lifecycle methods: startup, shutdown, runConcurrentThread, prefs, and update callbacks. - [Helper Methods](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/helper-methods/): Helper methods available to plugins for common tasks. - [Processing HTTP Requests](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/http-requests/): Handling HTTP requests inside a plugin: request, reply, and error handling. - [Logging](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/logging/): Plugin logging: the indigo_log_handler, file handler, log levels, and logging from submodules and embedded scripts. - [Event and Message Flow](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/message-flow/): How events and messages flow between the Indigo Server and a plugin. - [Properties](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/properties/): PluginBase instance properties available to your plugin code. - [Trigger Methods](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/trigger-methods/): Trigger-related plugin callbacks: trigger start/stop processing and event handling. - [Variable Methods](https://docs.indigodomo.com/2025.2/plugin-dev/reference/plugin-py/variable-methods/): Variable-related plugin callbacks. - [Plugin XML Reference](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/): Reference for Indigo plugin XML configuration files: ConfigUI fields, PluginConfig.xml, Devices.xml, Events.xml, Actions.xml, and MenuItems.xml. - [Actions.xml](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/actions/): Reference for Actions.xml: declaring custom plugin actions and their ConfigUI. - [Devices.xml](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/devices/): Reference for Devices.xml: declaring device types, their ConfigUI, states, and display. - [Events.xml](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/events/): Reference for Events.xml: declaring custom plugin trigger/event types. - [MenuItems.xml](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/menuitems/): Reference for MenuItems.xml: adding items to the plugin menu. - [PluginConfig.xml](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/pluginconfig/): Reference for PluginConfig.xml: the plugin-wide configuration dialog. - [SupportURL Elements](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/supporturl/): Reference for SupportURL elements: linking plugin UI to documentation. - [Configuration Dialogs](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/): Reference for ConfigUI dialog field types: buttons, checkboxes, lists, popups, text fields, validation, and dynamic lists. - [Button](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/button/): ConfigUI Button field reference. - [Checkbox](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/checkbox/): ConfigUI Checkbox field reference. - [Color Picker](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/color-picker/): ConfigUI Color Picker field reference. - [Dialog Close Notification](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/dialog-close/): ConfigUI dialog close notification callback. - [Dynamic Lists & Filters](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/dynamic-lists/): ConfigUI dynamic lists and filters: populating menus and lists at runtime. - [Label](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/label/): ConfigUI Label field reference. - [List](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/list/): ConfigUI List field reference. - [Popup Menu](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/popup-menu/): ConfigUI Popup Menu field reference. - [Separator](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/separator/): ConfigUI Separator field reference. - [Serial Port](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/serial-port/): ConfigUI Serial Port field reference. - [Text Field](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/text-field/): ConfigUI Text Field reference. - [Validation Methods](https://docs.indigodomo.com/2025.2/plugin-dev/reference/xml/configui/validation/): ConfigUI validation callbacks: validateDeviceConfigUi, validateEventConfigUi, validateActionConfigUi, validatePrefsConfigUi, and serial-port validation. - [Building a Plugin](https://docs.indigodomo.com/2025.2/plugin-dev/tutorials/building/): Tutorial for building an Indigo plugin: adding device types, actions, and event handlers to a working plugin project. ## Bundled Plugins - [Bundled Plugins](https://docs.indigodomo.com/2025.2/plugins/): Documentation for the plugins that ship with Indigo: Airfoil Pro, Alexa, EasyDAQ, Email+, Global Property Manager, NOAA Weather, SQL Logger, and Timers and Pesters. - [Airfoil Pro](https://docs.indigodomo.com/2025.2/plugins/airfoilpro/): Documentation for the Airfoil Pro bundled plugin: controlling Airfoil audio routing from Indigo actions and scripts. - [EasyDAQ Relay Card](https://docs.indigodomo.com/2025.2/plugins/easydaq_1/): Documentation for the EasyDAQ Relay Card plugin: controlling EasyDAQ USB relay boards from Indigo. - [Email+](https://docs.indigodomo.com/2025.2/plugins/email/): Documentation for the Email+ bundled plugin: sending and receiving email from Indigo actions. - [Global Property Manager](https://docs.indigodomo.com/2025.2/plugins/globalpropertymanager/): Documentation for the Global Property Manager bundled plugin: storing and retrieving persistent key-value data shared across plugins. - [NOAA Weather](https://docs.indigodomo.com/2025.2/plugins/noaaweather/): Documentation for the NOAA Weather bundled plugin: fetching weather conditions and forecasts into Indigo variables. - [SQL Logger](https://docs.indigodomo.com/2025.2/plugins/sql_logger/): Documentation for the SQL Logger bundled plugin: logging device state changes and variable updates to a SQLite database. - [Timers and Pesters](https://docs.indigodomo.com/2025.2/plugins/timersandpesters/): Documentation for the Timers and Pesters bundled plugin: countdown timers, repeating actions, and scheduled one-shot events. - [Alexa](https://docs.indigodomo.com/2025.2/plugins/alexa/): Documentation for the Alexa bundled plugin: linking Indigo devices to Amazon Alexa for voice control. - [Custom Indigo Skill](https://docs.indigodomo.com/2025.2/plugins/alexa/custom-skill/): How to execute Indigo action groups and read variable values by voice with the Custom Indigo Alexa Skill. - [Migrating from Alexa-Hue Bridge](https://docs.indigodomo.com/2025.2/plugins/alexa/migrating/): How to migrate from the legacy Alexa-Hue Bridge plugin to the current Alexa plugin. - [Plugin Operations](https://docs.indigodomo.com/2025.2/plugins/alexa/operations/): Day-to-day operation of the Alexa plugin: publishing devices, managing the device list, and discovery. - [Smart Home Skill](https://docs.indigodomo.com/2025.2/plugins/alexa/smart-home-skill/): How to control Indigo devices with Alexa using the Indigo Smart Home Skill. - [Troubleshooting](https://docs.indigodomo.com/2025.2/plugins/alexa/troubleshooting/): Troubleshooting the Alexa plugin: discovery failures, naming, and skill-linking problems. ## Scripting - [Scripting Indigo](https://docs.indigodomo.com/2025.2/scripting/): Scripting Indigo with Python: the Script Editor, embedded and external scripts, the Indigo Object Model (IOM), and the complete IOM reference. - [IOM Concepts](https://docs.indigodomo.com/2025.2/scripting/iom-concepts/): Overview of the Indigo Object Model (IOM): the Python API namespaces for devices, variables, triggers, action groups, schedules, and server commands. - [Scripting Tutorial](https://docs.indigodomo.com/2025.2/scripting/tutorial/): Tutorial for writing Indigo scripts: using the IOM from the Script Editor, accessing devices, variables, and sending commands. - [Python Packages](https://docs.indigodomo.com/2025.2/scripting/guides/python-packages/): List of Python packages bundled with Indigo 2025.2 and guidance on installing additional packages for use in plugins and scripts. - [Action Groups](https://docs.indigodomo.com/2025.2/scripting/reference/action-groups/): Reference for the ActionGroup class: properties and the execute command for running action groups from scripts. - [Actions](https://docs.indigodomo.com/2025.2/scripting/reference/actions/): Complete reference for the Actions class: properties, methods, and commands for all built-in action types. - [Event Data Path Specifiers](https://docs.indigodomo.com/2025.2/scripting/reference/event-data-paths/): Reference for path specifier strings used to extract specific fields from event data objects in triggers and action scripts. - [Folders](https://docs.indigodomo.com/2025.2/scripting/reference/folders/): Reference for the Folder class: properties and methods for working with Indigo organizational folders in scripts. - [Insteon Commands](https://docs.indigodomo.com/2025.2/scripting/reference/insteon-commands/): Reference for the indigo.insteon.* command namespace: send raw Insteon commands, manage links, and control the interface. - [Schedules](https://docs.indigodomo.com/2025.2/scripting/reference/schedules/): Reference for the Schedule class: properties and the execute command for time-based automations in scripts. - [Server Properties & Commands](https://docs.indigodomo.com/2025.2/scripting/reference/server-commands/): Reference for indigo.server.* properties and commands: logging, speaking, sending email, launching URLs, and managing the server. - [Triggers](https://docs.indigodomo.com/2025.2/scripting/reference/triggers/): Reference for the Trigger class: properties, conditions, and commands for event-driven automation objects in scripts. - [Utility Classes & Functions](https://docs.indigodomo.com/2025.2/scripting/reference/utils/): Reference for the indigo.utils module: ValidationError, the JSON encoder, return_static_file, email/boolean helpers, is_int, and the indigo.Dict/List conversion methods. - [Variables](https://docs.indigodomo.com/2025.2/scripting/reference/variables/): Reference for the Variable class: properties and commands for reading and writing Indigo variables in scripts. - [X10 Commands](https://docs.indigodomo.com/2025.2/scripting/reference/x10-commands/): Reference for the indigo.x10.* command namespace: send raw X10 commands from scripts. - [Device Subclasses](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/): Reference for Indigo device subclasses: DimmerDevice, RelayDevice, SensorDevice, SpeedControlDevice, SprinklerDevice, ThermostatDevice, and MultiIODevice. - [DimmerDevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/dimmer/): IOM reference for DimmerDevice: properties, states, and the indigo.dimmer.* commands. - [MultiIODevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/multiio/): IOM reference for MultiIODevice: analog/binary/sensor inputs and outputs. - [RelayDevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/relay/): IOM reference for RelayDevice: properties, states, and commands. - [SensorDevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/sensor/): IOM reference for SensorDevice: properties, states, and commands. - [SpeedControlDevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/speedcontrol/): IOM reference for SpeedControlDevice: properties, states, and commands. - [SprinklerDevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/sprinkler/): IOM reference for SprinklerDevice: properties, states, and commands. - [ThermostatDevice](https://docs.indigodomo.com/2025.2/scripting/reference/device-subclasses/thermostat/): IOM reference for ThermostatDevice: properties, states, and commands. - [Devices](https://docs.indigodomo.com/2025.2/scripting/reference/devices/): Reference for the Indigo Device base class: properties, methods, and the dictionary representation used in scripting. - [Device Base Class](https://docs.indigodomo.com/2025.2/scripting/reference/devices/base-class/): IOM reference for the Device base class: properties, plugin properties, custom states, and the indigo.device.* command namespace. - [Device Capabilities](https://docs.indigodomo.com/2025.2/scripting/reference/devices/capabilities/): The device capability model: how a device's capabilities (supports* attributes, subclass, and plugin properties) map to the controls a UI should offer — the cross-cutting companion to the per-subclass reference. - [Dictionary Representation](https://docs.indigodomo.com/2025.2/scripting/reference/devices/dictionary/): How an Indigo device is represented as a Python dictionary, and the keys it contains. ## User Guide - [Indigo User Guide](https://docs.indigodomo.com/2025.2/user/): The Indigo User Guide: getting started, core concepts, the Mac client, hardware interfaces, remote access, automation techniques, and maintenance. - [Glossary](https://docs.indigodomo.com/2025.2/user/glossary/): Definitions of key Indigo terms: devices, triggers, action groups, variables, control pages, and more. - [Apple Shortcuts](https://docs.indigodomo.com/2025.2/user/automation/apple-shortcuts/): How to use Apple Shortcuts with Indigo to trigger actions, control devices, and query status from iOS and macOS. - [Event Data Passing](https://docs.indigodomo.com/2025.2/user/automation/event-data/): How to pass data from the event that triggered an action — device state changes, variable values, and trigger metadata. - [Get Contents of URL](https://docs.indigodomo.com/2025.2/user/automation/get-contents-of-url/): How to use the Get Contents of URL action to fetch data from HTTP endpoints and store responses in Indigo variables. - [Substitutions](https://docs.indigodomo.com/2025.2/user/automation/substitutions/): How to use Indigo substitution syntax to embed dynamic device state, variable values, and date/time data in action parameters. - [Core Concepts](https://docs.indigodomo.com/2025.2/user/concepts/): Overview of Indigo's building blocks: devices, triggers, schedules, actions and action groups, variables, control pages, conditions, and plugins. - [Actions & Action Groups](https://docs.indigodomo.com/2025.2/user/concepts/actions/): What Indigo actions and action groups are: the full catalog of device, server, variable, notification, Z-Wave, and Insteon actions, and grouping them for reuse. - [Conditions](https://docs.indigodomo.com/2025.2/user/concepts/conditions/): What Indigo conditions are: restricting when triggers and schedules execute, including condition scripts. - [Control Pages](https://docs.indigodomo.com/2025.2/user/concepts/control-pages/): What Indigo control pages are: building custom touch/browser interfaces with the Control Page editor. - [Devices](https://docs.indigodomo.com/2025.2/user/concepts/devices/): What Indigo devices are: representing Z-Wave, Insteon, X10, virtual, and plugin hardware, device options, and multi-personality devices. - [Managing Plugins](https://docs.indigodomo.com/2025.2/user/concepts/plugins/): What Indigo plugins are and how to manage them: installing and updating from the Plugin Store, the Plugins menu, preferences, and uninstalling. - [Schedules](https://docs.indigodomo.com/2025.2/user/concepts/schedules/): What Indigo schedules are: time and date options for running actions on a schedule, including sunrise/sunset and randomization. - [Triggers](https://docs.indigodomo.com/2025.2/user/concepts/triggers/): What Indigo triggers are: every trigger event type, from device state changes and variable changes to email, interface, and plugin events. - [Variables](https://docs.indigodomo.com/2025.2/user/concepts/variables/): What Indigo variables are: storing state and data for use in triggers, conditions, and substitutions. - [Getting Started Guide](https://docs.indigodomo.com/2025.2/user/getting-started/): Step-by-step guide to installing Indigo, configuring interfaces, adding devices, and setting up your first automations. - [Installation & Server Setup](https://docs.indigodomo.com/2025.2/user/getting-started/installation/): Installing Indigo, starting and configuring the Indigo Server, general preferences, location settings, and keeping the Mac awake for continuous operation. - [Managing the Built-in Interfaces](https://docs.indigodomo.com/2025.2/user/getting-started/interfaces/): Enabling, disabling, and configuring Indigo's four built-in interfaces: Z-Wave, Insteon, X10, and Virtual Devices. - [Accessing Indigo Remotely](https://docs.indigodomo.com/2025.2/user/getting-started/remote-access/): Reaching the Indigo Server from other Macs, Indigo Touch, and web browsers — firewall settings, server discovery, and reflector activation. - [Virtual Devices](https://docs.indigodomo.com/2025.2/user/interfaces/virtual-devices/): How to create and use Virtual Devices in Indigo to represent non-physical devices or aggregate states. - [Managing Insteon Devices](https://docs.indigodomo.com/2025.2/user/interfaces/insteon/): How to add, configure, link, and troubleshoot Insteon devices in Indigo using the Mac client. - [Advanced PowerLinc Options](https://docs.indigodomo.com/2025.2/user/interfaces/insteon/advanced-powerlinc/): Advanced configuration options for the PowerLinc 2413U/2413S Insteon interface, including LED brightness and signal timing. - [FanLinc and KeypadLinc](https://docs.indigodomo.com/2025.2/user/interfaces/insteon/fanlinc_and_keypadlinc/): Configure a 6-button KeypadLinc as a radio group to control a FanLinc: setting auto-off button groups, non-toggle mode, creating the links, and keeping button LEDs in sync from Indigo. - [Insteon Links (Scenes)](https://docs.indigodomo.com/2025.2/user/interfaces/insteon/insteon_links/): How Insteon device links (scenes) work, how they compare to Indigo triggers, and when to use each — or both together. - [PowerLinc 2413S](https://docs.indigodomo.com/2025.2/user/interfaces/insteon/powerlinc-2413s/): Setup and configuration guide for the PowerLinc 2413S serial Insteon interface. - [Connecting X10 Interfaces](https://docs.indigodomo.com/2025.2/user/interfaces/x10/): How to add and control X10 devices in Indigo, including configuring the X10 RF interface and assigning house/unit codes. - [X10 RF Options](https://docs.indigodomo.com/2025.2/user/interfaces/x10/rf-options/): Configuration options for the X10 RF receiver interface, including supported hardware and frequency settings. - [Managing Z-Wave Devices](https://docs.indigodomo.com/2025.2/user/interfaces/z-wave/): How to add, interview, configure, and troubleshoot Z-Wave devices in Indigo, including secure inclusion and network repair. - [Z-Wave Technology Overview](https://docs.indigodomo.com/2025.2/user/interfaces/z-wave/about/): A general-terms overview of Z-Wave technology: the wireless mesh network, primary and secondary controllers, including and excluding devices, associations, network healing, and a glossary of Z-Wave terms. - [Association Management](https://docs.indigodomo.com/2025.2/user/interfaces/z-wave/associations/): How to view and manage Z-Wave device associations in Indigo, including adding, removing, and troubleshooting association groups. - [Mac Client](https://docs.indigodomo.com/2025.2/user/mac-client/): Tour of the Indigo Mac client interface: the main window, device list, event log, editors, and key menu items. - [Event Log Window](https://docs.indigodomo.com/2025.2/user/mac-client/event-log/): Tour of the Indigo Mac client interface: the main window, device list, event log, editors, and key menu items. - [Home Window](https://docs.indigodomo.com/2025.2/user/mac-client/home-window/): Tour of the Indigo Mac client interface: the main window, device list, event log, editors, and key menu items. - [Menus](https://docs.indigodomo.com/2025.2/user/mac-client/menus/): Tour of the Indigo Mac client interface: the main window, device list, event log, editors, and key menu items. - [License Transfers](https://docs.indigodomo.com/2025.2/user/maintenance/license-transfer/): Step-by-step guide to transferring an Indigo license to another user. - [Moving to Another Mac](https://docs.indigodomo.com/2025.2/user/maintenance/moving/): Step-by-step guide to moving your Indigo software to another computer. - [Uninstalling Indigo](https://docs.indigodomo.com/2025.2/user/maintenance/uninstalling/): Step-by-step guide to uninstalling Indigo. - [Upgrading Indigo](https://docs.indigodomo.com/2025.2/user/maintenance/upgrading/): Step-by-step guide to upgrading the Indigo software. - [Indigo Reflectors](https://docs.indigodomo.com/2025.2/user/remote-access/reflector/): How to set up and use the Indigo Reflector Service to access your Indigo server remotely without port forwarding. - [SSL Certificates Examples](https://docs.indigodomo.com/2025.2/user/remote-access/ssl-certificates/): How to configure SSL/TLS certificates for the Indigo Web Server to enable secure HTTPS connections. - [Indigo Touch for Web](https://docs.indigodomo.com/2025.2/user/remote-access/touch-for-web/): Guide to using Indigo Touch for Web — the browser-based control interface powered by the Indigo Web Server. - [Indigo Web Server](https://docs.indigodomo.com/2025.2/user/remote-access/web-server/): Complete guide to configuring and using the Indigo Web Server (IWS): authentication, ports, SSL, and the REST/WebSocket APIs. - [Insteon/X10 Signal Troubleshooting](https://docs.indigodomo.com/2025.2/user/troubleshooting/powerline-signal-troubleshooting/): How to diagnose and fix Insteon and X10 power-line signal problems: bridging your home's power legs, changing the signal path, removing or filtering noisy electronics and signal absorbers, and isolating problem circuits. - [Python Version Conflicts](https://docs.indigodomo.com/2025.2/user/troubleshooting/python-conflicts/): Explanation of Python version conflicts between Indigo's embedded Python and system Python, and how to resolve them. ## Documentation - [Deletion Dependencies](https://docs.indigodomo.com/2025.2/user/concepts/deletion-dependencies/): Reference table showing which Indigo objects depend on others and what is deleted or disabled when an object is removed.