User Tools

Site Tools


This is an old revision of the document!

Add Chacon DI.O remote control support in Domoticz


The idea is to use a 433MHz transmitter connected to an Arduino Uno board to integrate Chacon DI.O wireless power plugs into Domoticz. For an easy integration with Domoticz, we will use MySensors library. Thanks to MySensors, new devices will be automatically detected in Domoticz.

Needed hardware

  • Arduino Uno R3 board (available on Amazon) with USB cable
  • 433Mhz RF transmitter and receiver (available on eBay)
  • DI.O by Chacon power plugs with remote


It is very simple. Just connect the RF 433 receiver and transmitter like this:

  • GND to Arduino pin GND
  • VCC to Arduino pin 5V
  • DATA IN (receiver) to Arduino DIGITAL pin 2
  • DATA OUT (transmitter) to Arduino DIGITAL pin 11

Then I suppose you have the Arduino connected with a USB cable to a PC running the Arduino development environment.

Arduino sketch

The Arduino program is really simple: it configures MySensors serial gateway, then it presents 3 lights switches and finally, manage commands received from Domoticz by transmitting the command through RF433.

// Enable debug prints to serial monitor
#define MY_DEBUG
// Enable serial gateway
// Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
#if F_CPU == 8000000L
#define MY_BAUD_RATE 38400
// Set blinking period
#define MY_NODE_ID 1
#include <MySensors.h>
#include <NewRemoteTransmitter.h>
// Children
#define CHILD_ID_DIO_1 0
#define CHILD_ID_DIO_2 1
#define CHILD_ID_DIO_3 2
// RF433 emitter
#define DIMMER_ADDRESS 14566078 // You should use here the address of your remote
#define DIMMER_PIN 11
#define DIMMER_PERIOD 260
NewRemoteTransmitter transmitter(DIMMER_ADDRESS, DIMMER_PIN, DIMMER_PERIOD, 1);
void setup()
  // Setup locally attached sensors
void presentation()
  // Present locally attached sensors
  present(CHILD_ID_DIO_1, S_LIGHT, "DI.O Prise 1");
  present(CHILD_ID_DIO_2, S_LIGHT, "DI.O Prise 2");
  present(CHILD_ID_DIO_3, S_LIGHT, "DI.O Prise 3");
void loop()
  // Send locally attached sensor data here
void receive(const MyMessage &message) {
  // New status requested for DIO switches
  if( (message.type == V_STATUS)
      && (message.destination == getNodeId() )
      && (message.sensor >= CHILD_ID_DIO_1) 
      && (message.sensor <= CHILD_ID_DIO_3) ) {
    transmitter.sendUnit(message.sensor, message.getBool()); 

Share this page:

add_chacon_di.o_remote_control_support_in_domoticz.1483361980.txt.gz · Last modified: 2017/01/02 13:59 by sgripon