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.

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.

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