Announcing Indigo 2022.1 May 10, 2022

We are pleased to announce the release of Indigo 2022.1, the first Indigo feature release in 2022. We know many of you have been patiently waiting for this release given that Apple's changes to macOS 12.3 made Indigo 2021.2 incompatible earlier this year.

The main focus for this release was to replace Apple's Python implementation (which they surprisingly removed in the non-major macOS release of 12.3) with our own, and to upgrade to the latest supported Python version.

While this doesn't sound like a big deal, it was in fact a major overhaul of the internals of Indigo and took a considerable amount of work. We even recruited some of our 3rd party developers to help both directly and indirectly with this huge task. Without them, this release would still probably be weeks if not months out.

NOTE: as you'll read below, in order to ship faster, we added some components in this release which are Intel-only, and while that doesn't effect how Indigo works on M1 Macs, you will see the Apple nag dialog about the app needing to be updated. We will remove this in the next Indigo feature release later this year.

Python 2 Replacement

As mentioned above, Apple unexpectedly removed their built-in Python 2 implementation in macOS 12.3. They normally don't make breaking changes in dot releases (12.3, etc) but rather hold off for major releases (macOS 12.0, 13.0, etc). We were preparing to deal with the loss of the built-in Python 2 interpreter with our 2022.2 release later this year (in support of macOS 13.0), but because of this unexpected breaking change we had to radically rethink our release strategy for this year.

We had some of the Python 3 work done when we learned that Python 2 would disappear, so we finished that work up as quickly as we could. But we know that users and plugin developers would not be fully ready to make a wholesale switch to Python 3 in one step (the original plan was to do it in a phased approach). So, the quickest way to get Indigo working on macOS 12.3 and later without forcing an upgrade to Python 3 for our plugin developers was to include an existing Python 2 installer for macOS directly from Python.org (the Python Software Foundation's website).

An unfortunate side effect is that their Python 2 installer is Intel only, so it runs under Rosetta 2 on M1 Macs. This doesn't pose any performance issues, but it does result in the annoying dialog when Installing Indigo 2022.1 on an M1 Mac warning that the app needs updating. That was a fair tradeoff to get everyone operable again on macOS 12.3 until we can get critical plugins moved over to Python 3 by later this year.

While we haven't been able to test every 3rd party plugin, we have had a select group of beta users testing many plugins, including the most popular ones, and we've found that the majority will continue to work under our Python 2 implementation without any issues. There may be a few that will require users to manually install dependent libraries or that might need slight tweaking. We and our awesome developer community will do everything we can to get everyone that finds issues up and running.

Python 3 Update

One of the most exciting improvements in this version is the upgrading of Indigo's Python infrastructure to version 3.10. This will not only get us back on track with a supported version of Python, but it also will enable a new class of plugins that use new features in Python 3 and that can take advantage of Python 3 libraries that were not compatible with Python 2.

We've been working with our developer community to get some of the most popular plugins updated to work with Python 3, many of which include new features. We also have a few new plugins by those developers that add functionality to Indigo that was not feasible before our Python 3 update. These new and updated plugins may already be available in the Plugin Store and many more will be added in the coming days and weeks.

Here are just a few examples of new plugins from our great 3rd party developer community:

  • HomeKitLink Siri - this plugin falls under the "couldn't have been easily done before Python 3" category. It will integrate Indigo devices into HomeKit in a much more straight-forward and reliable way than the old HomeKit Bridge plugin. We expect this to quickly become one of the most popular plugins.
  • MQTT Broker - some of you may know of plugins that use an MQTT broker to pass information from other systems to Indigo and back (like the HassBridge, MQTT Connector, MQTT Shims, ShellyMQTT and probably others). In the past this required that installation and management of your own broker (often Mosquitto) outside of Indigo. This plugin now implements an MQTT broker directly inside an Indigo plugin so that you don't need any external components.
  • Solcast - this plugin will integrate solar forecast data. Coming soon, watch for it in the Plugin Store.
  • Starling Bridge - this plugin will integrate the Starling hub with Indigo, providing integration of Nest Thermostats and Protects. Coming soon, watch for it in the Plugin Store.

And here's a list of existing plugins that have been upgraded to use Python 3 (and in some cases new functionality has been added as a result). These should become available in the Plugin Store in the next few days if they aren't there already:

Developer/Scripting enhancements

As mentioned above, we've enabled plugins to be written using Python 3, which opens up a bunch of new possibilities.

But one change that users that use Python scripts should be aware of is that all embedded and external scripts are now run in Python 3. Fortunately, for the majority of scripts out there, no change will be required. If you happen to run across a script that doesn't work correctly, there are a couple of things you can do:

  • We've added a brief writeup of typical things that might be found in Python 2 scripts that need to be updated in Python 3. This can be found in our SDK Github repo.
  • You can also feel free to post your script on our Help Converting to Python 3 forum and we or one of our very friendly/helpful power users will help you update your script.
  • If you want some very detailed conversion information, check out the The Conservative Python 3 Porting Guide.

Plugin Version indicators and Plugin Store Enhancements

Because of the migration of plugins to Python 3, we have made some enhancements to the status icons on the Plugins menu to more clearly show the status of the plugin and available updates - check out the documentation for details. We also updated the Plugin Store to more clearly show the status of plugins with respect to the Indigo and Python versions required.

Bug fixes and small enhancements

We also made a few enhancements and fixes in this release, despite the tight timeframe, and we added a support for some new Z-Wave devices from HomeSeer, First Alert and Aeotec, and fixed a few module definitions. See the Indigo 2022.1 Release Notes for details.

Summary

This release has been a significant challenge for us. The changes required to completely replace Python in the Indigo environment were pervasive. We really appreciate everyone's patience while we worked as fast as we could to finish the development and QA to our customary level of quality.

We also want to recognize our dedicated 3rd party developers and a small group of beta testers for getting us over the finish line. They provided development support, documentation contributions, extensive testing and significant plugin updates. Their contributions helped us achieve a high level of quality and gives everyone a ton of native Python 3 plugins available right now. We are extremely lucky to have such a group of dedicated individuals helping to keep Indigo alive and thriving.

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 2022.1. Select the Indigo X.X->License Details... menu item in Indigo 7+ 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.

Many 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 2022.1 (otherwise you'll need to purchase a new license). As mentioned above, you will need an active subscription not only to upgrade to 2022.1 but also to use an Indigo Reflector, the Alexa integration and API key functionality.

Thanks for your continued support and patience, and we hope you enjoy Indigo 2022.1!

Back to article list