Thursday, May 29, 2014

(#2) The Heart of the Matter
At the heart of my home's brain (pun intended) is an Eaton Home Heartbeat System (second pun unintended).  The, now discontinued, Home Heartbeat System was introduced to the market around 2007 or so.

The product line consisted of a controller, a key FOB, sensors, a gateway, a range extender and access to an online portal.  In a nutshell, you placed the sensors around the house, plugged a phone line into the controller and then logged into Eaton's online portal.


As sensors triggered, the system could blink your key FOB or call/text you the appropriate alerts. 

Evidently, it didn't catch on. In 2011, Eaton announced that the line would be discontinued and online capabilities, including the calling/texting, would be turned off.   Consequently product flooded eBay and other outlet channels at fire-sale prices.

The Power of the Crowd
Smarter and more resourceful engineers picked up the discontinued systems and started to reverse engineer the protocols.  Two engineers were quite prolific in posting their findings.  I stumbled across Steve Davidson's blog posts first.  And then found this person's blog posts on Hacking the Home Heartbeat.

Their success, and the ridiculously low price on the Eaton Home Heartbeat Starter package, convinced me to give it a try.



The HHB Controller
In my house, the Home Heartbeat (HHB) controller is connected to a Raspberry Pi and stashed on a high shelf, in the coat closet on the first floor.  From here, the controller has good connectivity to these sensors:

  • Door Open/Close sensors on all doors
  • Garage Door Tilt/No Tilt sensors on the garage doors
  • Water Leak Sensors (strategically placed; one by the water heater)
  • Motion Sensors
  • Electric Power Sensors


Armed with the protocol information on the two blogs, I wrote my own controller code (in 'C') to talk to the controller.

OK - Now What?
The story so far:

  • I have a cheap system with wireless sensors
  • I've Stood On The Shoulders of Giants and leveraged the work of others to make it work for me
  • It's reliable

Contrast this with the X10 critiques from my first post and I think we're already ahead of the game.

But, what should I do with the sensor information flowing into my code from the controller? What do I want to do when a door opens?  What do I want to do when the motion sensor detects motion?


Thinking Bigger -- Why?
What do I want to do when the door opens?  Nothing really. The door opens and closes all of the time.  Maybe that contributed to the demise of the product.  Do I really want my key FOB to light up every time the door opens?  No.


Why...?
Why can't?
Why can't I have it be smarter?

Why can't I have the thermostat turned down, in the winter, when the house is unoccupied? Why can't the system text me when a door has been left open for more than a minute?

Why can't the system let me know when the garage door has been left open and it's dark outside?  I don't care if the garage door is left open Saturdays at 9:00am.  But I do care if it's been left open all night!



Finding a way to answer these questions became a quest.
But we need to take a small detour and talk about Event Driven architecture.

No comments :

Post a Comment