Wednesday, July 21, 2010

Homeasy Remote PC Control - Linux & 1-Wire

As discussed previously, I am a big fan of the Homeeasy range of products.

I have quite a few in use around the house. 16 in total.

My first adventure in home automation involved some X10 devices. These were OK but were slow to respond and overall unreliable.

I had appliance and lighting modules, some bayonet modules, pir and remote controls. Also some wireless transceivers and a controller. Now all unused.

I then came across the Homeeasy range of products. I think my brother Peter introduced me to them. Fairly cheap, so I got a few of them.

Came across James @ Notes from a small field, who was talking about setting up an arduino to operate like a Homeeasy remote control.

After a bit of work and revision, I was able to get a working arduino/homeeasy rig working. Here is a link to that particular project: Simple/Manual Protocol Arduino/Homeeasy

The final version also contained an Ethernet shield and operated as a web server. Various commands were sent to the web server using the URL to pass parameters, which were picked up by the arduino. Very good actually. It has been running for almost a year now. No crashes.

So, it worked fairly well. It is about 80% effective. It was mainly used in the kitchen and there were some dead spots that were only about 10% effective. Don't know why. Swapped modules, etc., still dead spots. This would have been OK for me but not acceptable for SWMBO and the other house inhabitants.

As hinted above, this set-up only accounted for the transmission of the Homeeasy Simple Protocol. This is not compatible with all the Homeeasy range of products. They also use an Advanced Protocol for some of their devices, such as sockets and wall switches.

I wanted to use some of these switches and sockets, so I had to get a method to remotely control them.

Around that time, there was a lot of activity in the adruino homeeasy controller area.

There were a number of options available for Homeeasy Advanced Protocol programming on the arduino.

I tried many of them but found less then 100% reliability. Again some dead zones or sometimes it would work and sometimes it wouldn't. Definitely not acceptable.

During this journey, I noticed that the hand held remote was very reliable. I presume it was something to do with my implementation. Personally, I think there is an aerial issue. I don't know anything about that, so I parked this project and moved to another approach.

I read about using the actual Homeeasy hand held remote wired up to an arduino on Instructables and something similar in the Practical Arduino book.

Easy enough. I put it together and it worked perfectly. 100%

So, then I thought, the arduino is all very good, but all I am doing is using the arduino as a smart relay controller.

I have been using the Dallas 1-Wire devices for a number of years to read temperature and other weather readings. I also use a 1-Wire relay to control my boiler.

Using a schedule stored in a database, the boiler goes on and off as required. This is the subject of another post, I think.

I decided to use 1-Wire switches to control the hand held remote.

I got myself a breadboard some wires and a couple of DS2408 chips and my trusty USB 1-Wire controller.

Again following the wiring layout on Instructables - Arduino Home automation, got it all up and running in no time.

There are 4 on and 4 off buttons and the DS2408 has 8 switches.

To utilise the 4 zones, I needed another 4 switches. I used the other DS2408 for this.

The 1-Wire system is controlled from a Linux box on the network. I wrote a PHP script that presented me with various devices and On/Off buttons to control them.

I used OWFS (One Wire File System) suite of programs to talk directly with the 1-Wire switches.

Happy days.

1 comment:

  1. can you share the wiring for your multiple DS2408?