With the advent of WiFi and Bluetooth IoT, 433 MHz devices are becoming less popular but are still used for doorbells, motions sensors, windows/door sensors, etc… If you have such devices at home, one way to integrate those into your home automation system is to use an ESP8266 WiFi to 433 Mhz bridge between your gateway and 433 MHz capable products. However, you don’t even need the middleman if you use a USB 433 MHz transceiver connected directly to the gateway. Nathan Chantrell found such USB dongle on Banggood for about $8, and managed to make it work with his Debian Gateway using Node-RED.
- 433 MHz transceiver
- Range – up to 30 to 100 meters (Line of Sight)
- Tx and Rx for PT2262, PT2260, PT2264, PT2240, EV1527, HS2303-PT codes
- Can transmit multiple signals independently
- Control interface – Serial over USB @ 9600 bps
- Power Supply – 5V via USB port
- Power Consumption – 15 mA @ 5V in standby mode; 35 mA @ 5V during Tx
- Dimensions – 8.1 x 2.5cm (excluding antenna); antenna length: 3cm
There’s very little information about the stick on the web, and most information below is from Nathan who focused his work on PT2262 “very basic, low security encoding chip for RF or IR transmission” and found in ultra cheap Chinese security devices, older alarms, and garage door controllers. He found out the dongle has an 8-bit limitations instead of 12-bit for the original PT2262 chip, which limits the total number of codes to 6,561.
He also opened it up to find a CH340 USB-TTL chip, an internal black wire coil. The PCB label is YS-UTR2 for reference. A search for the latter does not bring anything interesting, except a 315 MHz version is also sold on Taobao.
You can send and receiver hex code over serial using a 9600 8N1 connection. Nathan described the receive and transmit bitstream in this blog post, and tested with various devices including Energenie ENER002 plug in sockets / ENER010 power strip, VStarcam AF117 magnetic door/window contacts with a button, some PIR movement sensors, Semic CS5211DGO smoke alarm, and more. Most device based on the PT chips mentioned in the specifications should work.
He added support in Node-RED with a serial in and out as follows:
The input node will then give me a payload of [ 253, 81, 53, 213, 112, 223 ] which is a decimal representation of our orginal hex fd 51 35 d5 70 df (confused yet?). I just use a function node to concatenate the two parts of the address with the data (all in decimal) eg. 8153213 and use that as the unique code to identify the device.
12 msg.payload = msg.payload.toString() + msg.payload.toString() + msg.payload.toString();return msg;
For transmission just create a buffer with the hex required and send it to the serial out node.
1 msg.payload = new Buffer([0x99, 0x03, 0x51, 0x35, 0xd5, 0x70, 0x99]);