SmartHome – Postmortem

Posted: 13th December 2014 by Quinn Dunki in Hacks

Attempting to determine why it sucks so very much.

 

Like many hackers and tinkerers, home automation is a subject of irrational fascination for me. When I bought my house, I started making plans for an elaborate home-brew automation system. However, I quickly realized that the amount of effort involved far exceeded what I was interested in investing, and the end-result would be less feature-rich than what you can buy for reasonable cash money. Furthermore, many friends and colleagues swore by the Insteon system for this purpose. Insteon is a home automation system (I hesitate to use the word “standard”) for which various companies make products. If you’re an average consumer, you’re likely to buy the SmartHome equipment, which works on the Insteon system. There are other commercial-grade options, but for most people, “Insteon” is fairly synonymous with “SmartHome”.

I did a basic installation in my house, using a SmartHome-branded Insteon wi-fi base station, and a couple of switches. It was difficult to set up, initially, because the software is quite awful. It also refused to work with DHCP on my home network, despite claims that it does. This required me to set up a static IP, and jump through hoops on my home network to block out that address for it. I’m not an IT expert by any stretch, so this became a tedious process of learning things about routers that I never wanted to. Furthermore, any time my home network was rebooted for any reason, there was a 50/50 chance the SmartHome unit wouldn’t reconnect properly. I had to adopt a routine of continuously rebooting things in the system in various sequences until everything started working again, then being careful not to touch it. Hardly a pleasant ownership experience, but it worked that way for about a year. Until it didn’t.

 

..

The wi-fi-enabled base unit. Seems like a great idea- you can configure it with an iPhone app, or via built-in web server. It’s brilliant, except for the part where everything is crap and it doesn’t work at all.

 

One day everything stopped working, and no amount of rebooting would help. The base station simply refused to connect to the light switches. After much googling, I determined that it was likely a phase problem. In North America, roughly half your house will be on one phase of the AC mains, and half will be on the other. Since Insteon connects primarily by sending data over the mains wiring in your house, this means that some signals are literally traveling out to the transformer in the street, and back again, to go from one outlet to another. The result is that signal interference can be introduced by things installed in your neighbours’ houses. This is likely why my system went from working fine to completely failing overnight without touching anything. A common cause of interference is fluorescent lighting systems, so perhaps a neighbour put in some CFL bulbs.

I should note that these devices are all the fancy new “dual-band” Insteon devices. These are supposed to form a mesh network in your house such that the system doesn’t rely entirely on the data travelling on the mains. I paid extra for everything to make sure it was “dual-band”. As far as I can tell, this “dual-band” system does absolutely nothing.

The supposed solution to my neighbour-introduced signal noise problem is a SmartHome phase bridge. This uses radio signals to repeat signals from your base station on one phase to devices on the other phase in your house without relying on data travelling down the wiring to the street and back. There’s a wacky setup process whereby you plug this device into various outlets around your house until you find one that is on the opposite phase from your base unit. I dutifully purchased a phase bridge and went through the setup process. It fixed my problem for a few months. Until it didn’t.

 

..

The phase bridge repeater thingy. It’s supposed to fix some unspecified category of poorly-defined noise problems of indeterminate origin.

 

One day, I lost the ability to communicate with the base station. The supplied iPhone app couldn’t connect to it, and the provided web-interface would connect, but not display the (terrible) user interface. This means I lost all ability to configure the system. However, the program I had set up for my lights did still work, so I left it that way. It was frozen in time, but it worked. Until it didn’t.

After a couple months of working-but-can’t-configure-it, the base station lost the ability to talk to the switches again, and everything stopped. After a bunch more research, apparently I may new noise problems from unknown sources. The environment of my house hasn’t changed, but noise could be getting introduced on my power lines from outside the house. Apparently the solution to this is to purchase SmartHome noise filters to put on the power lines in various locations. Herein lies the problem with this SmartHome crap- the solution to every problem is always to buy more SmartHome crap. I hit my tolerance limit on that, and went back to using the light switches the old fashioned way- by pushing them with my fingers. At least the SmartHome switches still function as manual light switches when all else has failed (which it has). Very expensive manual light switches, that is.

I left things that way for a few more weeks, until one day the base station started making a high pitched squealing noise. To the best of my knowledge there was no way for this unit to intentionally make noise. This was not good. I immediately unplugged it, and swore off SmartHome forever.

That’s not enough for Blondihacks, though. Rather than tossing it, we might as well crack it open and see what we can learn.

 

..

Here’s the inside of the base unit. There’s some kind of a small linear power supply there, running off the mains pass-through plug.

 

..

This daughter board pulls off, and it contains the networking subsystem.

 

..

Underside of the main board. No obvious indication of why it failed, but several indications of half-assed manufacturing.

 

Note the unpopulated connections marked “antenna” at the bottom of this board. More on this in a second.

 

..

The top of the main board

 

Now here’s something interesting. A piezo buzzer. That was most likely the source of the noise I heard. What I haven’t been able to figure out is what that buzzer is for, and why it was going off in this unit. There’s no mention in the SmartHome documentation of a buzzer, and googling has so far revealed no explanation for this. It’s clearly an alarm or warning of some sort, but beyond that I’m at a loss.

 

..

The daughterboard contains a PIC18F97J60. This is clearly the brains of the operation.

 

The PIC microcontroller there is what’s serving up the user interface, and doing all the actual controlling of devices in the system. The main board underneath it appears to be the signal generator for transmitting over the AC lines. This particular micro controller is actually quite a nice one. It has 128k of of flash memory, multiple UARTs, multiple timers, and a very nice ADC. Most notably, it has a built-in ethernet controller, which is no doubt the reason for it being chosen for this application.

The other interesting thing on this board is the coin cell. My guess is that it is used for storing the local networking and device configuration in RAM on the PIC, which would allow them to lock the EEPROM for security. However, than means continued operation depends on that battery, which you will note is spot-welded in place. This is a very user-hostile design, guaranteed to silently and permanently fail after some arbitrary amount of time. This battery tested a bit weak, which might be why I lost contact with the base station.

At this point, I had a decision to make. I could replace that battery, and reassemble everything to see if it fixed my problems, or I could take glee in continuing to rip this system apart and write snarky blog posts about it. I’ve chosen Option B.

 

..

On the plus side, it was very easy to disassemble, and there’s quite a bit of useful hardware to be had here.

 

Now let’s take a look at that pseudo-magical phase-bridge unit.

 

..

Looks an awful lot like the base unit.

 

Interestingly, the phase bridge is identical to the base station, right down to the header where the ethernet daughterboard attached. It has two antennae added, which are attached to solder points that also exist on the base station. Kinda makes you wonder why they bother populating the J6 header and other parts that are only used in the base station.

 

..

The backside of the phase bridge board. Again, identical to the base unit except for the addition of the antenna wires.

 

That’s really all there is to these. I could break out the ‘scope at this point and start trying to figure out why they failed, but honestly that’s far more effort than these products deserve. I’ll get much more satisfaction from warming up the Hakko 808 and stripping these for parts. There’s lots of goodies on there, including connectors, switches, buzzers, LEDs, and useful passives. I’ll make the guts live on in something better.

A quick prologue- I’ve since replaced my SmartHome switches with Belkin’s WeMo products, and they are fantastic. I had them installed and running in minutes instead of hours, and the software is terrific. They are 100% wi-fi (no signal-on-mains or closed-source proprietary networks), and have so far been 100% reliable no matter what my neighbours or the power company do. On top of that, the Belkin units are cheaper than this SmartHome stuff, and no base station is required. It’s an infinitely better system, and I bid good riddance to SmartHome and Insteon once and for all.

*dusts off hands*