OWL CM160 Energy Monitor with RTL-SDR

OWL CM160I have an Owl energy monitor model CM160, which has been mostly just acting as a real time monitor. In order to really USE the device I’m going to need to connect it to one of my running computers. At first I was using Eagle OWL on github. However it requires me keeping the LCD receiver and I want to eventually get rid of that, mostly because the only useful thing about it, the thermometer isn’t accessible over USB.

I decided that I should start experimenting around the 434MHz band with my SDR’s and see what I could come up with. After a bit of messing around installing the software for the RTL-SDR which I may cover in some detail in another post. I installed the rtl-433 tool from github. Unfortunately it didn’t work straight away, but I found some other people discussing various additions and even a fork tries to decode the owl sensor transmission. Non of the existing methods worked, so I wrote a patch and upstreamed it. So now when you download rtl-433 and run it like so, you’ll get this kind of output.

$ rtl_433 -f 433810000 -l 7000
Registering protocol "Silvercrest Remote Control"
Registering protocol "Rubicson Temperature Sensor"
Registering protocol "Prologue Temperature Sensor"
Registering protocol "Waveman Switch Transmitter"
Registering protocol "Steffen Switch Transmitter"
Registering protocol "ELV EM 1000"
Registering protocol "ELV WS 2000"
Registering protocol "LaCrosse TX Temperature / Humidity Sensor"
Registering protocol "Acurite 5n1 Weather Station"
Registering protocol "Acurite 896 Rain Gauge"
Registering protocol "Acurite Temperature and Humidity Sensor"
Registering protocol "Oregon Scientific Weather Sensor"
Registering protocol "Mebus 433"
Registering protocol "Intertechno 433"
Registering protocol "KlikAanKlikUit Wireless Switch"
Registering protocol "AlectoV1 Weather Sensor"
Registering protocol "Cardin S466-TX2"
Registering protocol "Fine Offset Electronics, WH-2 Sensor"
Registering protocol "Nexus Temperature & Humidity Sensor"
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
Sample rate set to 250000.
Sample rate decimation set to 0. 250000->250000
Bit detection level set to 7000.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433810000 Hz.
current measurement reading value   = 140
current watts (230v)   = 2254

The output that I get on the LCD receiver is identical to the output I get on the terminal here. Take a note of the frequency I used on the command line. The last two lines will repeat about once per minute.

This first play around with the Owl’s radio was interesting, but I need to do more sterling work on this little hack. Firstly, the SDR is useful at doing other things so I can’t just put it in full time. Secondly, RFM12Bs are quite common, and I decided that I’d pick up a couple of them from eBay (434 and 868), and get a couple daughter boards for using with the RaspberryPi.

In combination, multiple temperature sensors like this one, a 434 or 868 Mhz central heating controller, a doorbell and some RF sockets will get a bit of the wireless treatment.

I still want to do more work on the mesh network with NRF24L01‘s but there are some particular challenges to simulating that which are bothering me at the moment.
[auction-affiliate tool=”lister”]