After many years of service, our trusty Harmony One remote bit the dust a few weeks ago. It turns out that the remote, while rugged, does not like being dropped on a hardwood floor—the touchscreen, while still intact and functional, no longer illuminated correctly. Sigh.

We had owned the Harmony One for quite a few years. I never blogged about it, meaning we acquired it sometime in 2008-2009 when my first blog slowdown hit. It replaced a Sony RM-AV3000 Universal Remote which was powerful but in every way impractical and unwieldy. The Harmony One was, by comparison, luxuriously easy to use. Harmony remotes differentiate between devices – directly driving components of your system by emulating their remote commands – and activities, like “watch TV” or “play games.” With activities, the remote sends a sequence of commands to the components required to do an activity, like “turn on TV,” “turn on Marantz receiver,” “turn on FIOS box,” “set TV to HDMI-1,” “set Marantz receiver to Cable,” and then the hard buttons on the remote are set to handle the most common tasks for the activity—for instance, the volume controls might go to your AV receiver while the channel commands go to your cable box.

The Harmony One was light years ahead of the Sony in usability, but it still had problems. One was programming it—you connected the remote to a Mac (or PC) with a USB A to B cable and then ran a Java application (!) on the device to assign devices and change settings on the remote or activity. Another issue, a daily challenge, was the remote technology. It’s an infrared (IR) remote, like most of the ones you’ve used, meaning it requires a “line of sight” to the device being controlled for the commands to work. Often that meant that one of the kids (or other family members) would inadvertently wave the remote away from the TV or receiver, resulting in cries that the TV wasn’t working and requiring my intervention.

I did some research and learned that the state of the art has moved along pretty far from the Harmony One. After comparing options, we bought a Harmony Companion. It’s light years ahead, though not without its challenges.

The Companion is really two devices, a universal remote without a display screen and a remote hub that sits near your devices. The universal remote communicates with the hub over radio frequency (RF) rather than IR, so you no longer have to have line of sight—you can pretty much aim the remote anywhere you like. The hub sends IR signals to your components, and it even comes with an attachable “IR Blaster” that you can position near components that are outside your cabinet (like your TV) to repeat the signal.

But that’s not the cool part. The best part of the setup is that the remote is fully programmable via an iOS (or Android…) app—and the app also serves as a remote that’s in some ways even more powerful than the physical remote, since it also allows direct access to the device remote commands in addition to the activities you set up. The app is pretty cool; when you set it up, it scans your local network for a hub, and if it finds it and the hub is already configured, it downloads the configuration to your device and you’re ready to go. Lisa getting full access to the remote 30 seconds after I told her which app to download was pretty magical.

So far the only pain point has been setup. I created an activity for watching Apple TV but, probably due to the way I used the wizard, it set the physical remote buttons to control our 55″ TV instead. I had to go through and reassign every button on the activity this morning, but it’s working now.

I’m also slightly irked that the Harmony Hub isn’t a HomeKit device. I suspect this is because Logitech views itself as a HomeKit competitor for controlling the entire home. There’s a workaround using an open source kit called Homebridge that I might check out.

Home theater technology has come a long way. But it’s noteworthy that most of the advances in controlling physical devices are due to investments in mobile computing rather than physical devices.

Smart thermostats, dumb market

One of the things I’ve been theoretically excited about for a while in iOS land is the coming of HomeKit, the infrastructure for an Internet of Things platform for the home that includes standard controller UI and orchestration of things like smart thermostats, light bulbs, garage door openers, blinds, and other stuff.

I’ve been personally and professionally skeptical of IoT for a while now. The combination of bad UX, poor software engineering, limited upgradeability, and tight time to market smells like an opportunity for a security armageddon. And in fact, a research paper from my company, Veracode, suggests just that.

So my excitement over HomeKit has less to do with tech enthusiast wackiness and more to do with the introduction of a well thought out, well engineered platform for viewing and controlling HomeKit, that hopefully removes some of the opportunities for security stupidity.

But now the moment of truth arrives. We have a cheap thermostat that’s been slowly failing – currently it doesn’t recognize that it has new batteries in it, for instance. It only controls the heating system, so we have a few more weeks to do something about it. And I thought, the time is ripe. Let’s get a HomeKit-enabled thermostat to replace it.

But the market of HomeKit enabled thermostats isn’t very good yet. A review of top smart thermostat models suggests that Nest (which doesn’t support HomeKit and sends all your data to Google) is the best option by far. The next best option is the ecobee3, which does support HomeKit but which is $249. And the real kicker is that to work effectively, both require a C (powered) wire in the wall, which we don’t have, and an always on HomeKit controller in the house, like a fourth generation Apple TV, to perform time-based adjustments to the system.

So it looks like I’ll be investing in a cheap thermostat replacement this time, but laying the groundwork for a future system once we have a little more cash. I wanted to start working on the next-gen AppleTV soon anyway. Of course, to get that, I have to have an HDMI enabled receiver…