Hello,

This is my first home automation article and also my first build.

This article is based on the following two articles:

Principle & Operation

Chacon DIO First outlets work via 433MHz radio frequency.
The principle is very simple, reproduce the data emitted by the remote control via the 433MHz transmitter coupled to the Raspberry Pi.

The remote control communicates with the outlets via the Easy Home protocol, this protocol composes the signal in 32 bits as follows:

  • First 26 bits corresponding to the remote control identifier;
  • 27th bit corresponding to the group number (not important here);
  • 28th bit corresponding to the outlet state (ON=1 & OFF=0);
  • 29th to 32nd bits corresponding to the outlet number to be controlled.

For better explanation, I refer you to Idleman 10's tutorial on the Raspberry Pi.

Assembly

If you've never played with the Raspberry Pi GPIO ports, here's the setup to adopt to make the 433MHz transmitter work.

Raspberry Pi Diagram

You can see in the setup the transmitter but also the receiver, it's not useful for what we want to do here.

For the tip, a three-pin PC fan cable works perfectly for the 433MHz transmitter ;)

You can solder a conductor wire at the antenna location (Ant) on the transmitter of 17.3cm, if you want to ensure good communication with the outlets.

433MHz Transmitter

Software

Then we move to the software level on the Raspberry Pi.

First of all, you need to install the WiringPi library, which simplifies GPIO port access:

Git installation

sudo apt-get install git-core

Raspbian update

sudo apt-get update
sudo apt-get upgrade

Retrieve WiringPi from Git

git clone git://git.drogon.net/wiringPi

Retrieve latest WiringPi updates

cd wiringPi
git pull origin

Build WiringPi library

cd wiringPi
./build

The code to control the outlets is to be retrieved from Idleman's site (thanks to him).

In this zip you'll find a web interface and the C code allowing Chacon outlet control. We won't deal with the web interface in this article.
The important file is therefore radioEmission, if you want to play with the code, you can open (and modify) the radioEmission.cpp file and recompile the radioEmission file using the following command:

g++ radioEmission.cpp -o radioEmission -lwiringPi