Categories
Uncategorized

Indigo Pro

Reading Time: 19 minutes

Indigo Domotics‘ Indigo Pro is an excellent automation software made exclusively for macOS.

I came across it several years ago looking for more advanced Insteon controller than the first party Insteon Hub.

Being a software solution it’s extremely compatible with anything and by itself it is very stable.

It serves as the base for integration with a virtually unlimited amount of systems through the use of third-party plugins. In the past, this was just a list on their forums but now it was a dedicated section on the website and it was branded as a Store, nothing costs money but the choice of words, at least for me, raises red flags. Furthermore, the fact that they don’t charge for plugins doesn’t mean that the maker of some plugin won’t charge for the use of it. It’s just not policed right now. I’m afraid it’s just a matter of time before this stops being true.

Indigo Pro is priced at USD249.95, previously there was a Lite version but it’s no longer available. The price difference wasn’t that great and it came artificially limited to a few devices only.

But then the company behind it decided it was not sustainable to put out a version every few years because it would keep them from constantly pushing out new features to users and jumped on the subscription model like pretty much every other opportunistic developer these days.

Unlike every other subscription model though, they have not lowered nor have they eliminated the entrance price, it is still among, if not the highest in the market–even for hardware controllers.

Currently the topmost version of Vera is the same price as Indigo Pro, USD249,95. Universal Devices’ controller with an bundled Insteon interface is less than USD180.00.

So what are have been the subscription benefits?

First of all, let’s not forget what Indigo is: a home automation software controller, meaning it’s meant to control things such as the lighting installed around your home, outlets, garage doors, regular doors, basically any fixture around your home. Through plugins it can control/integrate with other platforms.

The key word is fixture. It’s very important not to forget about it because it gives relevance to Indigo’s subscription benefits…or lack thereof.

Fixtures, by definition, are fixed. They usually have one job which is control the power output to something, it could be on, it could be off, it could be anywhere in between. The usually have some way of communicating back with a controller, but that’s expected, otherwise there it wouldn’t be a smart device. Sometimes though, this doesn’t even need to be a 2-way communication. Two-way communications just means that the device send acknowledgements (even if unrequested. i.e; broadcasts) to indicate its status to a controller.

With this in mind, think, really think, how many times over the lifetime of your home do you need to change these? Even if you’re a hardcore home decorator that’s keeping it fresh with seasonal decorations, I’m sure the redecorating rarely involves fixtures that many times involve complex network wiring in addition to power wiring. If your light switches are in need of constant updates, you have much bigger problems to deal with than the controller.

What might benefit from constant updates are integrations with other platforms, specially cloud-based ones such as Amazon’s Alexa or Google’s whatever it’s called because of their ever-changing APIs.

So, while a broader hardware compatibility support is good to have, once your meet it, you’re hardly ever going to outgrow it because the non-IP network protocols most of these technologies use rarely ever need to change.

The version first introducing Indigo’s new model was version 7.1. For a user with an already set up home, it came with no features that would benefit them. The blog post mentions general improvements and bug fixes, I ran version for a short time before I became fully aware of it being a major drawback overall. During that time I didn’t find any changes at all.

It also came with things that benefits people who can write code I wouldn’t know what they are because I don’t code. Let’s face it, if we’re using Indigo instead of making our own automation using things such as Arduino boards or Raspberry Pi boards, we either don’t know how to or don’t want to write code.

Finally version 7.1 came with remote activation support requirement, the most insidious form of DRM. I wrote an email through their contact form asking for clearer information about activation because on the website, unless you go to the blog posts, it’s nowhere to be found. The email read:

Are controller versions past 7.0.4 able to reactivate with an expired subscription. I looked around the website but I can find no mention of this. I found out that user get to keep using their current controller up to the version their subscription allowed them to but that’s not the same as activating (reinstalling, for instance) a controller if need be, sadly a must in the current state of Apple hardware and software.

Have you made each version past 7.0.4 available for download and will you commit to maintaining them online if this is true?

Lastly, do these versions need to be phoning home to maintain their activation status or can they go offline indefinitely?

They, within a day–got to give them credit for that, wrote back:

Hello Gustavo,

Yes, all versions of Indigo can be moved/transferred from one Mac to another. For version 7.1 and beyond this requires a license deactivation the user does before they move Macs (or they can contact us to have it reset manually here), and for versions earlier than 7.1 such as your case you just need to re-enter your name and registration code on the new Mac which can be found in your Indigo Account.

While we maintain downloads of all the major releases of Indigo here (all the way back 10 years to version 1), we no longer offer support for versions older than 7.1. They’ll continue to run on older macOS versions indefinitely, but as Apple updates macOS eventually the older versions stop working correctly because of changes Apple has made.

Regards,
– Matt
Indigo Domotics

So that’s at least reassuring.

I’ve been seeing this subscription model where, allegedly, the software is for you to keep and you just won’t get any more software updates but they very conveniently omit to mention you also don’t get to reactivate the old you were left off with. Plus they move up versions so fast that it becomes complicated to maintain old installers available for download or customer records on servers with the correct data, hopefully corruption-free data.

Allowing phoning home something as important as the piece of software that might prevent you from opening the doors to your home (or worse: closing them) for any purpose really but specially for activation is not a gamble you should ever be taking. You should be extremely wary if you want to allow your automation controller host (computer) to connect to the Internet, both inbound and outbound.

The question was ignored on the email, but I found out in the version 7.1 blog post that it only needs to connect to the Internet once for activation. I’m assuming for their benefit that this continues to be true up to the current version; 7.4.

There are still issues though: both the blog posts and the email indicate that existing controllers need to be deactivated first for activation of new controllers. This is troublesome in two ways.

First, the deactivation part. This is achieved, it seems, via the installed controller –it makes sense– or –if the controller host crashes– contacting Indigo Domotics for they to do it. That suggests it’s not automated (ironically) and it sort of clues that the old controller could at some point phone home to be deactivated, it’s iffy, but if true, this is a major privacy violation.

The second is a bit more complex: the state of Apple products and Apple as a company.

Apple has been increasing the price of their products across the board while at the same time reducing the quality of them both in hardware and software and on top of that, they have hindered immensely their repairability with the integration of the T2 chip. So let’s go over each: price, hardware, software and T2. Moving price at the end for obvious reasons.

Hardware. Failure rate of Apple devices has increased to unbelievable levels over the years, you just need to go to any techy site to find out something about it. Part of it is the appeal Apple has always brought, I still believe; Apple generates clicks. Another part of it is that is sells millions of copies of a limited inventory and it’s easier to pinpoint a single model. Whatever the case it doesn’t excuse the fact the hardware failure rate and bad decisions from Apple are still high and growing. Furthermore, their legendary stubbornness only adds to the problem.

Software. After each yearly macOS update, it’s usually not safe to update because it could very easily break you Indigo installation. Apple does deep level system 180s often and devs have to scramble to continue working with Apple. On Mojave and Catalina it has become obvious Apple’s heightened security is only self-serving, imposing new ways to update devices across the board (iOS, macOS, tvOS…) to be compatible with each other and thus force users to use their only software and content obtained from their respective stores whenever possible. They have went as far that even Safari extensions are now forced through the Mac App Store so they can make money out of what used to be fun little projects developers make. On Catalina specially, Apple went to the ultimate level by locking the system drive from the system’s owner. It’s nearly impossible for an average user to tinker with his/her own system now and it relocks itself after a restart. They removed old macOS versions from the stores too as well as the ability to create your own installers so you can’t go back.

T2. If you are tech-savvy enough to overcome the previous two obstacles, the still had the guts, or in top Apple executive Phils Schiller’s words, courage, to add a serializing chip that won’t let you boot your system unless all of its (mostly soldered now) parts match the blueprint it got from the factory that produced it.

Price. Skyrocketed. Skyrocketing.

With all of these reasons it’s rather obvious at some point you’ll need to reinstall your controller probably more than once. More so at those early deployment stages were you still don’t know your way around things and you want a perfect setup. Reinstalling everything or diagnosing can be such a hassle so what do you do? You just wipe and start over, right?

The problem is that now you forgot about deactivation and have to go through the apparently manual process.

This is just the basics, what was already there now is gone. Going into the subscription model so far has downgraded your feature set. Now let’s explore other benefits.

Platform Support

Indigo Pro as mentioned earlier, is a macOS-only software controller. So if your Mac goes on the fritz, and somehow you managed to save your database elsewhere but you don’t have any other Mac or are so upset at Apple’s fuckery that you ain’t buying more of their shit, you’re out of luck. You can’t deploy a Linux, FreeBSD, Windows or what-have-you server. Those developing costs the subscription brings, don’t cover that.

Improved UI/UX

To say that Indigo’s UI is sugarcoating it. Even when I first purchased my license several years back on version 6 it was very dated. It’s not user friendly at all. It resembles the days of early macOS, I’m talking the pre-Tiger era. Like Cheetah, Panther and some random kitty. When macOS was “MacOS X”. That’s how old it looks, even though it offers a native interface with native UI elements to it and it adapts to newer systems it still manages to remain old somehow. Now for the UX part, it’s quite infuriating at times. Automation through it requires a given set of steps at times and creation of tasks, commands or actions to react to triggers, it’s not always the case but using actions lets you do some sort of templates to reuse them in other things, such as virtual devices. The thing is, if you forgot about this before you started creating the trigger, which can be very complex on its own, you can’t go back to the main window and create the action or whatever without closing the window and losing your progress. Dialogs appear in new windows instead of those old attached hanging dialogs from before. With the poor quality control of macOS nowadays they can easily become separated and since technically only one can be used, only one, the wrong one, will appear on Exposé when you’re frantically looking for it. It’s annoying as fuck. So no, the subscription budget doesn’t allow for a UI nor a UX designer either.

Control Pages

This actually goes into UI/UX but it’s so big it deserves its own bullet point. Control Pages are what it sounds like. Web pages that let you control things. A web UI for you controller you can create own your own. There are two sets of Control Pages, the first is a very basic set that’s a mirror of your controller’s macOS UI but designed to fit and look as an original iOS 1 (iPhone OS 1.0) web app.

The second set is the one you can create on your own. All images or assets are also dated for the iOS 1 era, with photorealistic, in some cases actual low resolution pictures of real devices that are very old looking to begin with; a brown ceiling fan, a wire mesh metal-blade desktop fan, a nineteenth century floor lamp, these are mixed with a small assortment of flat-grayish/blueish icons for lights and fans as well as 3D iOS 1 buttons and a large selection of low resolution, very busy weather pictures.

Maybe you’re going to add your own anyway you may be thinking, but just spare a thought for those I mentioned earlier who can’t or won’t code and are looking for a prepackaged solution that includes the necessary pieces. Well, the subscription costs don’t even include the pre-bundling of the free FontAwesome basic icon set at least.

If you want to make it all on your own, Indigo has got you uncovered.

Indigo Control Pages designer is a very basic, extremely basic, web page design tool with almost no placement controls. Assets need to be uploaded to the server into the Indigo’s Application Support directory, which is a rather privileged area to mess with for starters. If you forget to add them beforehand it’s the trigger story all over again, you need to reload the editor. There’s no dragging and dropping. The assets appear in a dropdown menu and they appear to be sorted randomly on first load because it’s not in alphabetical order nor by modification date, which are the most common orders of sorting files, it’s so fucking infuriating. Zooming controls don’t exist and it comes up zoomed by default, if you’re dealing with Retina-like resolutions good luck with that. You need a Thunderbolt Display’s worth of resolution to be able to edit a non-Retina iPad control page without scrolling.

There is a grid but it’s not adjustable, the snapping of objects to it manages to be both too aggressive and not aggressive enough. Pages created with the editor are not fluid, meaning you most likely have to create a custom set of pages per-device accessing the controller or pinch to zoom into it which is horrible, looks horrible and makes you lose your sense of placement very easily.

Pages can show very little information without the need of plugins –all third party– because the subscription costs don’t cover a better Control Page designer nor functionality not provided by other people that were kind enough to share it with the world royalty-free in the form of a plugin so Indigo can provide functionality USD250 doesn’t cover. Even though it’s a major selling point.

Interfaces & Plugins

For things not covered by Interfaces, Indigo uses Plugins. This allows Indigo to be infinitely extensible and it’s sort of at the core of Indigo’s capability of being a universal controller.

Insteon, Z-Wave, X10 are non-IP networking protocols, so to interface with them you need an interfacing device, this is not included with your purchase of Indigo Pro. Without interfaces, Indigo would resort to control things through other controllers using plugins. You’d have to be very imaginative to achieve this because it’s not included (nor explained) out of the box.

Ideally Indigo should provide all of the logic necessary to do its thing needing nothing more than an interface or two if you’re running side by side systems (e.g; Insteon + Z-Wave). You already know where I’m going with this…

Obviously, it doesn’t.

Plugins are a way of providing functionality that interfaces wouldn’t, such as interfacing with the host system itself, e.g; controlling audio playback for broadcast through the host’s audio interface (i.e; the analog/optical audio jack) or through RogueAmoeba‘s Airfoil, for which another plugin would be needed. These basic plugins are included with Indigo.

Indigo has many, many, shortcomings that –because they’re logic functions for interface control– should be included out of the box, like Superconditions a third party plugin that allows for if else conditions that should be included with Indigo. It has existed for a very long time and yet as of Indigo 7.1, it was still not a native functionality of Indigo. This is what Indigo’s core functionality is, it should be there without resorting for people to fill in for the development the subscription fails to cover.

Amazon Alexa, is supported by Indigo but not natively, instead it’s an emulated Philips Hue bridge that Alexa finds and allows for some very basic controls. Logitech Harmony is a nightmare to setup and it’s you must place your hubs into a developer mode hard to get to for them to receive XMPP messages from the Indigo plugin. These are third party plugins.

The good news is that the plugin list has been steadily growing, increasing support for new products (though none strictly necessary), the bad news is that the plugin list is steadily growing while Indigo isn’t; it seems like it’s only a matter of time before it becomes what macOS has become, an infrastructure to force you into paying for apps, or in this case plugins, remotely controlled by means of updates.

Indigo Touch

Indigo Touch is the mobile app that interfaces with Indigo Server, the controller side of Indigo. A few words come to mind when I think of it: ugly, dated, non-intuitive, cumbersome, convoluted.

It has not been updated since it had to be updated back when Apple forced developers to migrate to 64-bit apps, even so, they waited up till the last minute to update it.

While also a mirror of the controller, it doesn’t mean that’s straightforward to use, for instance; there’s functionality attained only by the use of actions instead of having the controls for the device on its entry on the device list like anybody would expect. To execute it you need to the actions section in the controller main window select the action and click the Execute All button. The go back to the devices section to say, turn on a light. This on a touchscreen device get annoying, confusing, you have to be careful of naming of things and the issues go on.

A way to have both things in one place is thought the use of custom control pages, but y’know… Argh!

Speaking of onomatopoeia, Indigo Touch is also a control page browser. Besides of preauthenticating the user I really don’t know what else Touch accomplishes that a web browser doesn’t though, because, Indigo Touch doesn’t support HTTPS connections.

Furthermore, same as the server, Indigo Touch is only available for Apple devices.

As mentioned earlier, an Apple devices isn’t the most moddable device there is, if at all and other, universal-ish ways of control are limited to web browsers and control pages (with their extensive list of issues) Placing ever more expensive iPads around home is well…expensive, both the device itself and the accessory that would be needed to support it as well as the wiring to keep it on all the time. Apple has helped creating a big accessory market where manufacturers are comfortable charging USD50 or more for a molded piece of plastic to protect fragile expensive devices. Imagine the cost of the same thing made out of metal–actually you don’t have to, just go to Twelve South where you can find some of the most expensive not that useful accessories for Apple devices. The are better looking than average, though.

This before would have to change frequently as new models come out that no longer follow the original Apple 30-pin dock connector model of extreme compatibility where all pieces would fit regardless of generation. On the other hand, a touchscreen with a nearby hidden computer or compute stick is much easier a less destructive for your home to update because they all use VESA mounts.

The problem is that control pages are mediocre at best. Since they are not fluid you have to consider a given screen size and plan accordingly, ideally you would have to MDM an operative system to hijack the browser into running fullscreen full time so the resolution matches because placement is a big issue. I’ve sometimes had to draw fullscreen transparencies (alpha channels) with content only in a given area so positions would match.

This is a mockup of control pages:

For reference, the artboard with the magenta house icon is 1024×1024 pixels. The whole document is huge and contains hundreds of assets. You have to zoom in to see them and zoom even further out to see it all. These are control pages for 3 devices only.

For a long time I could not even fathom the possibility of abandoning iOS and believe-u-me I tried. Apple made it easier for me by forcing users to have MFA to use several components of iCloud, with a less useful iCloud it became much easier to spend time on Android but not quite. But then this developer did what the Indigo subscription has failed to cover, wrote an app for Android, Domotics Pad; the app is hideous much like Indigo’s own but it gets the job done and goes further by acting as an Android launcher and by supporting HTTPS connections and by supporting geolocation and by communicating back to the server status from the client, such as battery life and remember the hideous part? Well, it can be themed. I have not tried it yet but just because I have not had the time.

This app is not free, and basically if it was I wouldn’t have bothered to install as it would raise major concerns about giving a random free app access to your automation server. Nothing is free. But for its one-time entrance fee though, this app has seen several updates, many more than Indigo Domotics’ own…and that’s without a subscription. If the developer were to launch version 2 of it tomorrow I would not hesitate to purchase it again because it has not tried to trick me to buying into a meaningless evergreen status nor failed on delivering it like it would’ve been foreseen. Indigo on the other hand, did.

Security

Indigo uses a Python-based web server, I asked in the past if I could implement some other authentication like Kerberos to be able to use multiple users but I was merely pointed to the web server’s project site. In all fairness it’s better than a straight up no. On the other hand, I think we already established that if I knew how to code or wanted to code, I would not need Indigo in the first place, so…yeah.

Technically, I think Python is a scripting language, not coding. But for people like me who don’t know shit, it amounts to the same thing.

Outside of that you only get one user, might as well be the root user because it can do everything on the controller yet to run the controller it cannot run userless (i.e; as root) this is an unbelievable annoyance you have to put up with and they are in no hurry to fix it. The have separated the server process from the client process so nothing needs to be open and if you quit the main window’s process you’re still good to go, but, this is still far from ideal on a server computer. This is further complicated by the fact that Apple is moving towards a forced update future where systems are much less stable and you cannot longer depend on them.

Nor Indigo nor Indigo Touch support encrypted communications. Digest is used for the web server but that’s all you get. Using a web proxy you can add proper encryption but it’s not supported by the first party client, only by third party clients. (i.e; Domotics Pad, browsers.)

You’d think at least the subscription would cover that up but again no.

Website

This is in no way essential for Indigo’s operation but it never hurts to have a good presentation, I mean, I am one to talk, my own site (this one) looks hideous but 1. I am not making money off it; 2. I haven’t had that much time to work on it; 3. I am still learning my way to this and 4. It’s a fucking blog.

Purple/violet/indigo/magenta and some similar shades are some of my favorite colors but COME-ON-NN! Does it really need to be on the background. I mean, it looks like a twelve year old girl designed it. This is the professional presence of the business and furthermore, the website functions also as the documentation. Indigo Pro has no built-in documentation. It’s on a wiki. To me, for professional entities wiki screams we didn’t think it through and we’re puzzling it out as we go. Specially if it’s not an open wiki. I should know, I keep my own wiki for reference of what I have learned, and what do you know, it has a similar color scheme and even structure being tacky a lot less tacky:

My color scheme tends towards magenta but it would look just as good in Indigo Domotics’ color scheme. I’m only using it in the links to give it a touch of color without it being cartoonish/childish yet still having a certain edge, I mean, for a wiki. Everything else is some shade or gradient of gray. Mine is a private wiki, is not meant to be as a professional source of anything. It’s just personal documentation. A notebook if you will. I’ve spent at the most a day on it from install to a few articles.

I have taken care to upload high resolution imagery and the same server is running this website so…probably one more, I really have to check my DNS.

I have witnessed over and over developers don’t make good aesthetic decisions but after all of these years with the same website I’m sure that imaginary 12year old girl is now a grown woman with sense of style. They should look her up and hire her to keep a fresh website. The subscription should at least cover her payroll.

Rethinking the strategy

Subscriptions and freemiums are now plaguing the web. I think it’s offensive to dimwit users into thinking that only certain company has the prowess to keep users’ passwords away from harm, for example, and charge them monthly to sync mere kilobytes of user data when we’ve managed for years to survive on a password-protected spreadsheet which is essentially the same. And for the sake of completeness, you can use iCloud to sync it–there’s your password manager! I’ve been doing it for years now and it works even with Touch ID and all that Apple crap. So when these opportunistic companies (…antivirus companies also come to mind…) come sometimes with a good idea, sometimes only with the appearance of a good idea but then they go and try to stretch it forever by promising evergreen (always updated shit) things with no real features but plenty of bloat (…now I’m thinking Microsoft Office…) the new feature set only gets in the way of what was something good and it’s now hindered by the evergreen crap instead of improved.

As I mentioned at the very beginning, Indigo developers need to move on. There are only so many things automation can do. Unless moving walls and conveyors belts become commonplace in homes, really, there are only so many things automation can do. Even so, it’s probably a single job for the controlled device to do: control the power output to something, it could be on, it could be off, it could be anywhere in between. A relay (Insteon’s I/O Linc) comes to mind.

Moreover, hardware-based competitors which include one or more interfaces have or are catching on. Vera for instance, is a multi-protocol hardware controller with modern mobile apps. Being a hardware controller, it doesn’t require an always running Mac.

Universal Devices had always been a worse value than Indigo, but they learned and moved on, now it’s a more attractive offer if you’re already not running your own Indigo controller. It doesn’t require a Mac either.

Finally, there are the cloud-based offers. Ring, Nest, SimpliSafe, I think at least two of those are real. I don’t trust them at all in terms of privacy and I think that’s accelerated obsolescence but the fact that they are running remotely make them extremely cheap if you’re into that.

Personally, and specially in these days, I like paying for shit. Once and be done with it. Subscriptions are fine when you’re getting something like seasonal perishables in return or something ephemeral, like those subscriptions were they send you crap that cook it yourself or magazine subscriptions. A server rental is fine too, like Vultr, AWS, Azure, OVH… I find expiring software installed on your own hardware downright violating.

Mixing software subscriptions with hardwired hardware I think is an extremely bad idea that needs some serious rethinking.

Good wishes

I do really wish they manage to come up with an idea that gets them out of this situation because in spite of its shortcomings I really like Indigo Pro. Plus, the staff, they have always been kind, helpful and pointed me in the right direction or at least a direction when I needed it and I can’t help but to root for them.

That said, even if they’d manage to come up with a rad new subscription-free product, for the time being there’s little chance I were to upgrade because my needs have been already met. If they were to commit to always keep first party plugins for compatibility with other platforms and I’m talking like every player you can think of big or small and have support for hosting the server non-Apple hardware, maybe, just maybe, I’d give it a thought. But it’s hard to even contemplate when I have a functioning server with two identical backup servers all with Indigo installed and any of them can become the server of any given moment if the main fails–no activation needed.

Leave a Reply

Your email address will not be published. Required fields are marked *