Skip to content

Description of socket protocols from different brands and models

nzbart edited this page Jul 13, 2018 · 8 revisions

This page is intended to gather information on different sockets, similar to the existing List of known devices, but with more detail.

Please add information on your device to this page with the following details:

  • Brand.
  • Model (ideally with a link to the manufacturer and retailer).
  • Photographs of the socket and remote (sometimes you can find them in the web, but do not just link them, upload the images here because the web is volatile).
  • (if you are skilled) photographs of the inner parts... and describe the sender and receiver chipsets. (same thought about the web).
  • If the sockets have it: a label with a number/identifier of socket set within the model.
  • Codes of every button.

These two last items would help to figure out what each bit means (when other owners share also their data).

Arlec RC210 AU/NZ 240V socket remote controlled power outlets

Sold at Bunnings in Australia and New Zealand as a three-pack (RC213) or one-pack (RC210):

The chip in the remote doesn't have any markings at all.

There don't appear to be any individual serial numbers on the sockets. It appears that the remote conrol is pre-programmed with 4 different fixed codes, and the individual sockets can be paired with any of those codes by pressing the button on the remote when the socket is powered on.

The remote uses 32 data bits + 2 sync bits, but fortunately one of the sync bits is formatted like a data bit so you can send 33 data bits + 1 sync bit. My particular remote control has the following 4 codes (the 32 data bits + the 1st sync bit are shown) to turn the switches on, in addition to one that turns all switches on:

  • A: 011101101101100000001111100111100
  • B: 011101101101100000001101100111000
  • C: 011101101101100000001011100110100
  • D: 011101101101100000000111100101100
  • All: 011101101101100000000100100101010

To turn the switches off, the 23rd (base 0) bit is set to 0 and the 31st bit is set to 1.

For example, to turn D on or off:

* On:  011101101101100000000111100101100
* Off: 011101101101100000000110100101110
                              ^       ^

A pattern emerges if you break the bit stream up:

A: 01110110110110000000 111 1 1001 111 0 0
B: 01110110110110000000 110 1 1001 110 0 0
C: 01110110110110000000 101 1 1001 101 0 0
D: 01110110110110000000 011 1 1001 011 0 0

The first part is identical for all. The next three bits appear to identify the switch. The following bit is on/off. The next block is always 1001. The block after that appears to be the switch identifier repeated. Then follows the inverse of the on/off switch bit, and another zero.

You will need to modify the library to add this protocol:

{ 385, { 1, 17 }, { 1, 2 }, { 2, 1 }, false }

... and include modifications to deal with 33 data bits if you plan to use other functions apart from send(char*). That function works by chance without further modifications, because the first data bit is 0.

Since the first sync bit can be treated as a data bit, and it is included in the codes. The last sync bit is automatically sent by the library. For example, to switch A on and off:

mySwitch.send("011101101101100000001111100111100"); 
delay(1000); 
mySwitch.send("011101101101100000001110100111110"); 
delay(1000);