January 3, 2015

Reading temperature data from Auriol temperature station via rtl_433

Reading temperature data from Auriol temperature station via rtl_433

After being a SDR user for a long time it was time to become more of advanced user and contributer, and what better way to become one than to add support for one new device and learn in the process.

I have been very satisfied user of Auriol temperature station (model no Z31743B-RX, version 09/2013). Also knowing about rtl_433 package for some time was naturall that I wanted to capture data from Auriol sensor (Z31743B-TX, version 09/2013) publish it to public sensor website - open.sen.se.

But after running rtl_433 it seeing that it displayed wrong data (-170°C instead +10°C) it was obvious that this won't be trivial to do. After some investigaton I found github issue 45 about adding support for Auriol temperature station.

I got suggestion to compile and run custom version of rtl_433 with Auriol support already build in. But even after compiling forked version I still didn't get correct data.

This ment that it was time to dig in more deeper...

First I read great article explaining basics of decoding of various devices with rtl_433. Next step was to grab raw data and try to decode temperature from it.

Without this awesome StackOverflow question about bit manipulation and rtl_433 it would be much, much harder to understand how to decode information in order to get correct temperature.

Next step was to put both station (receiver) and sensor (transmitter) on desk close together and to use RTL-SDR DVB-T dongle for capturing raw 433 Mhz data packages from air.

During raw package capture temperatures that station was showing on it's display were written down. Now I had both pieces of the puzzle and key to decoding data was explained on StackOverflow.

So here is how one sensor broadcast looks like:

For this reading temperature on station was showing 17.8°C and if you convert b2 from hex to binary you get 178, which divided by 10 gives correct temperature of 17.8. Taaa daaaa!

Third octet is the one that has temperature information and it is needed to convert it from binary to decimal to get correct value.

So this is it, last step is to contact rtl_433 developers and see how can I help to get support for this Auriol temperature station into official github repository.

Additional sources: