node.js xbee home automation


One day, I’ll get round to writing this up in more detail. Frustrated at the lack of integration between existing products, I built my own home automation system.

It runs on a Raspberry Pi, using event-driven javascript (node.js) and wireless mesh networking (xbee) to link various bits of my house together, and connect them to the outside world.

I can, from any browser:

  • switch the outdoor lights on and off
  • detect doors opening and closing
  • switch my burglar alarm on and off (it saves pictures of intruders, and texts me when they enter)
  • turn radios on and off, play notifications
  • turn the central heating up/down/on/off
  • read the temperature at various points
  • monitor the noise and motion levels in my kitchen (plus webcam)
  • flashing lights on my kitchen clock (pictured) tell me what’s going on, as well as the website

The system can log things like the doors opening or the power use/temperature into a database.

I open-sourced some of the node.js and xbee code, and it’s grown into a little project of its own.