Announcing Indigo 2025.2.0 April 30, 2026

Announcing Indigo 2025.2

We're very pleased to announce the release of Indigo 2025.2. The main focus of this update is upgrading to Python 3.13, but we've also added a bunch of new Z-Wave definitions, an additional interface, and other improvements. Read on for details.

Python 3.13 Upgrade

Many of you may have been around for the Python 2->3 migration. It was a painful step because the two versions were so different, not only because of the differences in syntax, but also because of the differences in the libraries that were used. You will be happy to know that the Python 3.11 -> 3.13 upgrade will be MUCH easier than that, though it may not be totally painless. We've done a ton of work to try to help ease any disruptions, but there may be some. Plugins that specify required libraries that we install when the plugin starts will automatically have their requirements reprocessed by Python 3.13 since it's possible that the libraries have changed and need to be updated.

Also note that since we upgraded to Python 3.13, you should start using it in any scripts that you write that are started directly from Python (vs scripts started from Indigo which will automatically use Python 3.13). We do not uninstall any previously installed version of Python 3, but when we install it all the links to command line tools are updated to point to the new version. So, entering python3 in the terminal will now launch the Python 3.13 interpreter. You can still access older version of python by entering the full version: python3.11, pip3.11, etc.

If you installed any packages using pip3 in the past, you will need to reinstall them since the default location that packages are installed changes between Python versions (this is standard Python behavior and not something we can change).

IMPORTANT: Update all of your 3rd party plugins to the latest version before upgrading to Indigo 2025.2. This will help with the Python 3.13 upgrade as some developers have updated their plugins to support 2025.2 where there were issues (most won't require an update). Not all 3rd party plugins have been tested, so if you are risk adverse, please contact the plugin developer(s) to see if the plugins have been tested. Also note, you can easily switch back to Indigo 2025.1 if you need to by shutting down the Indigo 2025.2 server, quitting the client, then relaunching Indigo 2025.1.

Additional Z-Wave Device Support and Changes

Lots of new devices have been added to the Z-Wave definitions, along with new features and bug fixes.

New Devices Definitions

  • Aeotec Door/Window Sensor 8 (ZWA055) — door/window sensor with tamper, temperature, humidity, dew point, and acceleration subs; also includes a mold alarm sub.
  • Aeotec Home Energy Meter 8 (ZWA046) — 2-phase US whole-home energy monitor with three metering subs (total, Phase A, Phase B); includes parameter ordering note to prevent broadcast storms on first configuration.
  • Danfoss Keemple Smart Radiator — battery-powered TRV with temperature sensor.
  • EUROtronic Comet Z Radiator Thermostat (700-series) — FLiRS TRV with dual subs (thermostat + valve dimmer), operation mode support.
  • Fibaro Walli Controller (FGWCEU-201) — 2-channel mains-powered scene controller with Central Scene event mapping and LED frame configuration.
  • Inovelli mmWave Presence Dimmer (VZW32-SN) — dimmer with mmWave presence sub (CC 71 Home Security), illuminance sub (CC 31), and energy metering; Central Scene paddle/config button mapping.
  • Jasco In-Wall Smart Switch (800S) — single-endpoint relay switch.
  • Kwikset Home Connect 620 (HC620) — Z-Wave smart lock with status LED, buzzer, secure screen, and lock direction configuration.
  • MCOHome Occupancy Sensor (MH-OS11) — motion sensor with controllable relay output sub.
  • Minoston Outdoor Smart Plug 2-Outlet (MP24Z 800S) — dual-outlet outdoor plug with per-outlet endpoint routing; LED indicator, power-failure state, and LED brightness configuration.
  • NEO Coolcam Door Sensor (DS07Z) — door/window sensor with temperature, humidity, and tamper subs.
  • Remotec Thermostat (ZTS-500) — full HVAC wall thermostat with heat/cool setpoints, operation mode support, and temperature sensor; parameters for temp scale, swing, differential, dead band, and sensor calibration.
  • Ring Alarm Contact Sensor Gen2 (4SD2SZ) — door/window sensor with tamper sub; maps both Access Control and Home Security notification streams for armed/unarmed operation.
  • Ring Alarm Motion Sensor Gen1 (4SP1S7) — motion sensor with tamper sub; maps motion detection and intrusion notification streams with configurable dwell time and pet immunity.
  • Ring Alarm Motion Sensor Gen2 (4SP1SZ) — motion sensor with tamper sub; separate occupancy and intrusion clear delays, adjustable sensitivity.
  • Ring Alarm Smoke/CO Listener (4SS1S8) — acoustic listener that detects existing smoke and CO detector sirens via CC 71; CO listening enabled via parameter.
  • Schlage Connect Smart Deadbolt (BE468ZP) — Z-Wave Plus deadbolt with beeper, vacation mode, lock & leave, auto lock, and PIN length configuration.
  • Schneider Electric Z-Wave Plus Receptacle (SQR44102) — single-endpoint outlet with power-failure state restore and indicator LED configuration.
  • Shelly Wave Dimmer (QLDM-0A101) — single-channel dimmer with SW1/SW2 switch inputs.
  • Shelly Wave Pro 3 (QPSW-0A3X16) — three-channel relay with per-output power metering subs.
  • GE/Jasco Enbrighten Direct Wire 40A Outdoor Switch (14285 / ZW4007) — 500S direct-wire relay for high-power outdoor loads; includes energy metering and power-failure state, energy report mode/frequency, and alternate exclusion configuration.
  • Zooz RGBW Dimmer (ZEN56) — single-endpoint Color Dimmer with S1/S2 switch inputs, color cross-fade transition, per-input ramp rates, color animation presets, and Central Scene mapping for S1 and S2 (1–5 taps, hold, release).
  • Springs Window Fashions Motorized Blinds (CRZB) — battery-powered blind controller using SWITCH_MULTILEVEL for position control.
  • Vision Security Lamp Dimmer (Z-BRDG-433) — Z-Wave to 433 MHz bridge lamp dimmer; no configuration parameters.
  • Zipato Micromodule Single Switch (PH-PAN03) — single-endpoint relay with energy metering.

Updated Devices

  • Fibaro CO Sensor (FGCD001) — added additional model variant.

Interface Updates

  • Home Assistant Connect (ZWA-2) — added this Z-Wave 800 USB interface.
  • Added extra logic to determine firmware version of unknown interfaces. This should allow many of them to be more functional before we add official support.

New Feature

One of our biggest new Z-Wave features is that we've added support for the early distribution of new and/or updated device definitions. In the past, we had to wait for the device definitions to be released to the public before we could test them when we don't actually have the devices. Distrubuting device definitions to Indigo users between cycles was always difficult given how macOS security works. However, we've created a way for us to distribute device definitions without having those security restrictions. We protect these ad-hoc definitions so that they can't be tampered with once we generate them, so we enforce security through that mechanism. Only we can generate these definitions so they will only work if they come from us (no malicious code for instance). They will always require the latest Indigo release to work: we will not be distributing them to older releases.

Indigo Webserver (IWS) and Indigo Touch for Web (ITW) Enhancements and Fixes

We continue to improve Indigo Touch for Web (ITW), and this release includes some great new features. We've added click sounds (like you get in Indigo Touch for iOS), new functionality to the hamburger menu that more closely mirrors right-clicks in the Indigo Mac client, changed the default view to rows (instead of tiles), and fixed a few bugs.

We also upgraded the web server library (Sanic) to work with Python 3.13. This required a number of changes to the web server code, but again we've done our best to minimize the impact on users. Time marches on, and we need to keep pace so that we don't get behind.

Updates to built-in Plugins

Alexa

We've made some improvements to the Alexa plugin, mostly to address the circumstance where a device that is published to Alexa is deleted in Indigo but not in Alexa. While we don't yet have proactive notifications that we send to Alexa about these changes, at least we will now have a way for users to determine what device was deleted and what the Alexa name is so they can remove it using the Alexa app. This wil decrease the errors that users see and will help Alexa from going into a doom-loop repeatedly querying for device state for a device that no longer exists.

What we have done is to create a device publication file (/Library/Application Support/Perceptive Automation/Indigo 2025.2/Preferences/Plugins/com.indigodomo.indigoplugin.alexa.published-devices.json) that contains a list of all the device publications that you have performed, along with other relevant information. This file is updated whenever a device is published or unpublished. It is also updated whenever a device is renamed or deleted. If a device is deleted, we add the date that it was deleted, but leave the entry in the log file so that we have a record of it. Since this is a new feature, the first time the Alexa plugin starts up, it will create this file and populate it with all the device publications that it finds during startup.

Global Property Manager

We've added actions to this plugin that will allow users to create, edit, and delete global properties via the Action UI and also via the Web Socket and HTTP APIs. This is quite useful, particularly for other client applications. For instance, one of our 3rd party developers has created their own iOS client, and he's using the Global Property Manager to create a "rooms" feature, where users can assign a device to a "room" and his UI will display a rooms view. He does this by creating/updating room properties in the Global Property Manager. He also contributed to the Global Property Manager plugin and we appreciate his effort.

SQL Logger

We fixed several issues in the SQL Logger plugin. The primary fix is for when a user is using a plugin (like GhostXML) that automatically creates fields from the payload received from an external service. When using PostgreSQL, fields are assigned a type, but if the value of the data from the external service changes (to a number, bool, etc.) then the data can't be inserted because of the type change and an error would be generated. We have fixed the logic so that we just create a new field and assign the value, and rename the old field with a timestamp. We also catch and log errors in a better way. There are a few more bug fixes as well, including catching the scenario where there are too many fields added to a device's table.

Other Plugin Updates

  • NOAA Weather - set device error state correctly for stations that report a 404 error (station not found).
  • Timers and Pesters - fix a bug in the Toggle Debugging menu item.

Developer Enhancements/Improvements

We always try to include some changes to support our more technical users -- who we like to call developers --though that can cover users who write scripts as well. For this release:

  • As mentioned above, we've added the ability to create, edit, and delete global properties via both APIs.
  • We've added the ability to create variables via both APIs.
  • SDK: Added feature to thermostat and energy meter sample devices to optionally disable automatic state updates.
  • SDK: Standardized debug logging and added Toggle Debug to plugin Menus.

TestingBase

We've created a unit test framework called TestingBase that is quite useful for creating unit tests for plugins. We use it in about half of our plugins currently and expect to have the rest of them updated by the next release. We've also made the GitHub repo public so that anyone can use it in their own plugins. This repo will grow as we add more capabilities, but it's definitely worth considering for your plugins. Plugin unit tests help ensure that future plugin updates don't cause unintended consequences (regressions), and can help make plugin releases go more smoothly.

We've also added a CLAUDE.md file to help Claude code integrate with your plugin. It may do most of the work for you, but you may need to tweak it a bit if there's anything special about your plugin repo structure.

The repo is located at: https://github.com/indigodomo/TestingBase

If you want to contribute to the repo, feel free to fork it and submit a pull request with a full description of the change and examples of how they would be used. Note: we will not accept pull requests that contain AI attributions (co-authored-by, etc.) because there are still legal implications with those types of attributions. We don't mind anyone using a coding agent for assistance, but the changes must not contain attributions and should be thoroughly tested and documented.

Updated Requirements Processing

When a third-party plugin starts, we check for a Server Plugin/requirements.txt file in the plugin bundle and use pip to install dependencies into the plugin's own Packages/ directory. The change is that we now start the success and error files with the python version so that we can better handle an upgrade to a new version of python. For instance, the files for this release will be named:

- 3.13-pip-install-log-success.txt - 3.13-pip-install-log-error.txt

The files will be located in the plugin's Packages/ directory. We also handle the legacy file name from 2025.1 and earlier releases. If we see a change in the Python version, we attempt to surgically remove only the libraries that were installed with the previous version of Python, so that if you add your own files to your Packages directory, they will not be removed. Then we will run the pip install using the new version of Python. We believe this will solve the majority of issues, though of course if any libraries that you install behave differently, you will need to deal with that in your plugin.

Note: if you have any logic in your existing plugin that depends on the presence of the old success file, and/or you have logic that attempts to do its own install from a requirements.txt file, you will need to revisit that logic given this change.

Updates from our 3rd Party Developers

In case you missed it, we have begun doing monthly blog posts about new 3rd party plugins and updates to existing ones. You can find them in the blog section of the website. We very much appreciate all the contributions that our 3rd party developers make to the Indigo ecosystem, and are very excited to see an increased number of them. AI Coding agents are really helping to expand the Indigo ecosystem, and we're looking forward to seeing more of them.

Summary

Updating to Python 3.13 is a big step, and we've spent a good deal of time trying to mitigate any impacts on our users. But we've also made some big steps in other areas as well, including adding a bunch more Z-Wave device definitions and introducing ad-hoc definitions. This release is the first in which we've used Claude Code to assist with some of the work, and as we get more comfortable using it we hope that it will help us be more productive in the future.

Note: this release may not be available to all Indigo customers for free. Specifically, if you've allowed your Up-to-Date Subscription to lapse, you won't have access to Indigo 2025.2. Select the Indigo X.X->License Details... menu item in the Indigo Mac client to see the details of your subscription. You can also check the Licenses section of your Indigo Account to see the subscription status and the last version you are eligible to use, or you can go to the new Downloads Page (make sure you're logged in to your Indigo Account) to see which releases you can download and use.

Some expired subscriptions are not yet past their catch-up deadline date, so you may be able to catch up your subscription to get access to Indigo 2025.2 (otherwise you'll need to purchase a new license). As mentioned above, you'll need an active subscription not only to upgrade to 2025.2, but also to use an Indigo Reflector, Alexa integration and API key functionality.

Thanks for your continued support, and we hope you'll love all the new features and enhancements in Indigo 2025.2!

Back to article list