Home Easy page on Arduino Playground

Largely thanks to @barnybug, the Home Easy Arduino hacking has been going really well. Making an LED blink is one thing, but making it blink by pressing a button the other side of the house is quite another! I’ve currently just been receiving signals, but when I’ve got the transmitter going as well, I want to do things like only relaying an on command to the socket if the current energy use isn’t too high. (Would be nice to have that working in time for Home Camp, but no promises.)

Should anyone else want to get going with some Home Easy hacking as well, I’ve created a Home Easy page on the Arduino wiki. So far it’s mostly just the sketches from Barnaby but I’m working on using interrupts instead, with the eventual aim of creating a Home Easy library for the Arduino. (There’s a Google code project for many RF protocols at once, but I just have Home Easy.)

Here’s what I have for receiving a Home Easy message with interupts so far which, with some even messier code, seems to do the trick. I would like to be able to register functions to call for specified controller/device codes, but not looked in to how that would work yet.

unsigned int pulse_width = ICR1;

if( !bit_is_set(TCCR1B ,ICES1)) { // falling edge was detected
// start over if the high pulse was out of range
if(pulse_width < min_high_width || pulse_width > max_high_width)
pulse_count = 0;
// don’t need to do anything with high pulses as long
// as they’re ok; should all be the same width
else { // raising edge was detected
// start over if the low pulse was out of range
if(pulse_width < min_low_width || pulse_width > max_low_width)
pulse_count = 0;
} else {
if(pulse_count < max_low_pulses) {
rx_wire_bits[pulse_count++] = pulse_width > bit1_low_detect ? 1 : 0;

if(pulse_count == max_low_pulses) {
message_received = receiveMsg();
pulse_count = 0;

// reset the counter
TCNT1 = 0;

// toggle bit value to trigger on the other edge


13 thoughts on “Home Easy page on Arduino Playground

  1. You might already know this but the on/off range of Home Easy devices support the Klik on/Klik off protocol. So the arduinoha project should be able to control simple Home Easy devices without any modifications. You can find some great information about the supported protocols for Home Easy devices at http://www.xplmonkey.com/homeeasy.html

    The RFXCOM documentation might also be helpful but be sure to read the copyright if you intend to make use of information from this site.

  2. Thanks for the link Beanz, that’s a really good summary of the various protocols in the Home Easy range. Fortunately I only have a few sockets that use the automatic protocol, for which Barnaby provided the necessary details.

    • Hi James. Great information on the Homeeasy and Arduino. I have been able to set-up control with the Manual protocol but cannot get anywhere with the Automatic protocol. Is there any more information on implementing the Automatic protocol other then that posted on the Arduino site?

      • Hi Jerd,

        It’s been a while since I’ve had a chance to look at this but I think I posted all the information I have on the Arduino wiki. What problems are you having? I think I had a receive working with the automatic protocol but the transmitter is still in its wrapping!

        (If you do get something working, it’d be great if you could update the wiki! :)

    • Hi James,
      Using the programs from the wiki, I can get the Manual Protocol Receiver sketch working fine. I cannot get the Automatic Protocol sketch to work at all. Nothing seems to be happening. I have a number of Automatic Protocol remotes but none of them seem to be picked up.

  3. Pingback: Home Easy Hacking Wiki « Notes from a small field

  4. Hi James,
    After noticing that Peter Mead made some changes to the sample Automatic protocol code on http://www.arduino.cc/playground/Code/HomeEasy, I was successful in getting a little Arduino project up and running that I’m using as a simple HomeEasy to ByeByeStandby Bridge at the moment. I works with the on/off remotes but doesnt work with the dimmers yet but this is because there doesnt seem to be much info around about the dimmer protocol.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s