I missed CES for the first time in 10 years and from all accounts it sounds like a blockbuster year with new attendance records and epic traffic delays. Wish I had made it, but my driverless car wasn't quite ready. Do we really have the software skills to pull off autonomous driving? Today's post would indicate no. Let me qualify, maybe if the Boeing software guys do it ... but not the home automation guys. I digress.
In the spirit of CES topics, I want to talk about home monitoring/automation and the need to design for failure. I'll use our real example of having 6+ months of experience with the SmartThings home monitoring system, the new NestCam and general status services of internet and power providers. The space is fascinating, high volume, still early and fraught with problems ... which is where opportunity lies.
The quick setup for the story is that we have a "tiny house" cabin in the mountains of Breckenridge, Colorado. Technically it is not a "tiny house" that you see on HGTV because it is bigger than 400 square feet. At 850 square feet it is still tiny ... but it is perfect for us. We (and friends) use it year round and the winters are extreme. We saw -15 degrees over Christmas and it's not even cold yet. In the summer, the cabin lost half the electricity due to a failed underground cable. No big deal in the summer. In the winter it would mean a quick popsicle and signifiant damage.
A perfect opportunity for me to buy a bunch of stuff and bring more "useful" tech into my life.
I settled on using SmartThings despite them now being owned by Samsung and the recent release of a new product generation. I had three simple monitoring goals. First, to detect if there was a failure of the radiant floor heating. I have 6 zones (don't ask ... it's only 850 square feet), so 6 temperature sensors. Second to detect if there is a water leak. I have 2 water detectors positioned at the hot water heater and in the extreme corner of the cabin where plumbing is located. Third, I want to be able to see the front of the driveway to know if I need to have it plowed before going up there. I use a NestCam for that. There is a hub that connects all of the SmartThing sensors. And therein lies the major problem. The single point of failure.
Over the course of a 3 day period I got temperature alerts (a non problem, I had the notification threshold set too high), a loss of connectivity to both the SmartThings hub and the NestCam (at the same time) and a loss of connectivity to only the SmartThings hub. By looking at both Xcel energy and Comcast outage status pages I could quickly determine that there was a total internet outage in our area. So number 2 was a non-issue and it came back within a few hours. But the third problem was a real one.
Turns out SmartThings pushed a mandatory update that caused my hub (and some others) to lose connectivity. A quick call to support said, "... our bad, ... but just depress the red button on the back of the hub for a couple seconds to reset & it will likely come back up just fine". .... um, I'm 1000 miles away from the little red button. Three weeks later I'm at the cabin, hit the little red button and all was fine. What could've possibly gone wrong in 3 weeks ... a lot ... but thankfully all was nice and toasty.
I put an internet controlled power switch on my Christmas list so I can remotely reset. The moral of the story is that whether designing a complex cloud solution or a simple home monitoring system you need to design it for failure. Despite your best intentions, it will fail. That's the dirty little secret.
Even with the snafu, two thumbs up for SmartThings, NestCam, the internet and power!
Update: I wrote this post about 10 days ago. Today, it looks like the SmartThings ecosystem is not completely happy. I get an "Error Loading Things" message when I access some of my sensors. Another note to support and coincidently I got an email saying that my hub will automatically be updated to the "latest and greatest version" this Thursday. I'll be the judge about the "greatest" part.