User Tools

Site Tools


add_chacon_di.o_remote_control_support_in_domoticz

This is an old revision of the document!


Add Chacon DI.O remote control support in Domoticz

Page under construction

I use a 433MHz emitter connected to an Arduino Uno board to integrate Chacon DI.O wireless power plugs into 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

Assembly

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

HomeBox.ino
// Enable debug prints to serial monitor
#define MY_DEBUG
 
// Enable serial gateway
#define MY_GATEWAY_SERIAL
 
// 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
#endif
 
// Set blinking period
#define MY_DEFAULT_LED_BLINK_PERIOD 300
 
#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
#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()); 
  }
}
add_chacon_di.o_remote_control_support_in_domoticz.1483361233.txt.gz · Last modified: 2017/01/02 13:47 by sgripon