11 ms·
I'm late to the discussion, but I've been monitoring via RTL-SDR and rtlamr for over a year, so I figure I should weigh in. In general it was super easy to do.
by collinmanderson 9y ago
I'm late to the discussion, but I've been monitoring via RTL-SDR and rtlamr for over a year, so I figure I should weigh in. In general it was super easy to do.
- First, check to be sure your meter is compatible. (My gas and electric are both Itron) https://github.com/bemasher/rtlamr/blob/master/meters.csv https://github.com/bemasher/rtlamr/blob/master/meters.csv I recommend taking a photo of your meter. (helpful for reference and comparing numbers)
- Next buy the antenna and dongle. Probably obvious, but I tried buying one with out the antenna and it wasn't good enough, so I had to modify an old wifi router antenna to make it work. I just searched amazon for rtl-sdr.
- Once it arrives, plug it in and install the rtlsdr software/driver. I think this may have involved installing a kernel module, but I didn't run into any trouble on linux. (I used pre-compiled binaries for my old 64-bit laptop running Ubuntu 16.04) You can test things by picking up fm radio via rtl_fm.
- Next, install golang, and "go get rtlamr".
- To monitor, you first start rtl_tcp and let it run in the background, and then run rtlamr which connects (via tcp) to rtl_tcp to tune the device and get raw output.
- The dongle can get pretty warm/hot.
- My meter has the meter number printed right underneath a big barcode. The first two digits are 12 or 05 for the meter type. I found this to be a pretty easy way to find the meter.
- My meter broadcasts two extra decimal places, so if the meter display says 123456 kwh, it actually broadcasts 12345678 (I appreciate the extra precision). When processing things, I just add a 0 on the end to make it watt-hours. (This is true for gas too.)
- I get a reading from my power meter every few seconds. About once a minute for gas.
- I log all of my meter readings and append to a giant ~700mb CSV file.
- I have a once-a-minute cron job that computes per-minute usage for the last 48 hours. (I save that to a static file and then graph using nginx + javascript. I started out by graphing using excel/numbers)
- I also have a daily cron job that computers per-day usage going back to October 2016.
I keep rtlamr and rtl_tcp running using systemd. The rtlamr command I use is: /home/collin/bin/rtlamr -filterid=543xxxxx,490xxxxx -format=csv -quiet >> /home/collin/data.csv