Thursday, August 6, 2015

rtl_433 now decodes DSC 433 Mhz wireless securty contacts

If you have a DSC (Digital Security Controls) home security system, with wireless sensors such as door / window contacts, glass break detectors, smoke, CO2, heat, and water detectors, you can now monitor them with rtl_433. The code is now in the mainline Merbanan github repo.

Only the 433 Mhz security sensors/contacts devices are currently supported.  I will be working on other devices soon. I have almost all of the status bits worked out. I will be submitting a pull request soon.

DSC alarm systems are also sold under other brands such as ADT Pulse, and a number of cable/telephone company's home automation systems, such as Time Warner Intelligent Home. DSC is a division of Tyco, so you will also see DSC products listed as Tyco Security, though Tyco has a whole list of security brands.

These are fairly inexpensive wireless devices that can also be useful for a variety of home automation projects.

The DSC WS4945 - Wireless Door and Window contact can be used as a magnetic contact or used with any sort of sensor that provides a normally closed output. If you are using it for home automation without a security system, it doesn't matter if it is normally closed or normally open. It will transmit at any state change. The device also sends a heartbeat with the current state every 64 minutes.

The Vanishing door/window contact, EV-DW4975 is quite thin and small if you don't need the screw terminals for wiring up some other type of sensor. It will barely be noticed on most doors and windows.

If you are interested in decoding DSC's wireless protocols, or have any information to share, please contact me, I could certainly use someone to collaborate with.


David M said...

IS this just capturing the open close status? I have been looking for a way to monitor the battery levels as well.

rct said...

Currently in rtl_433 it is printing the whole 8 bit status byte without interpreting the bits. I have another script that parses the output, maps the ESN to the sensor label, etc.

The status byte has a bit for low battery that gets flipped on at 2.4 Vdc. So you don't get a level, you just know whether it is OK, or low.

My first interest in parsing with rtl_433 was getting a better sense of reliability of the RF environment. Most of the sensors send a heartbeat every 60-64 minutes. The recessed door sensor is every 84 minutes.

I've been meaning to post the decoded bits for the sensors/contacts I've worked with.

sweatha said...
This comment has been removed by a blog administrator.
Greg said...
This comment has been removed by the author.
Greg said...

Hi, I'm in the process of building a decoder for my DSC wireless sensors and wanted to say that your work here is much appreciated! One thing you mentioned but didn't post (that I could find) are the decoded status bits. Is there any way you could post them somewhere? Thanks!

rct said...

Hi Greg -

Sorry I let this slip. I'll get this written up and posted.

Also, I'm long overdue for converting the rtl_433 output to JSON and breaking out the bits into individual flags. So if you are using rtl_433 it will get done for you.

I'd certainly like to hear more about what you are implementing.

About a year ago I added an Envisalink EVL-4 to my panel. I've been using Juggie's alarm server from github. One of the thinks I'd like to do is combine the output, so I can get a consolidated view of both environments including things like heartbeats that I can't see from the panel until there have been too many missed.

Greg said...

I also have an Envisalink on my panel. I use it to integrate with OpenHAB and it actually works really well.

Since I can never seem to leave well enough alone, I was thinking about attempting to pair a 433mhz receiver with an ESP32 to replace the Envisalink and DSC panel with my own creation. I'm going to attempt to build a proof of concept; and if it works out I'll have some boards manufactured in China. It would be an open source alarm panel that is able to use DSC sensors.

As my wife says, things generally end up being 10x more difficult than I envision, so we'll see how it works out. :)