Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Monitoring Home Power Consumption for less than $25 (kroy.io)
409 points by robbiet480 on Dec 30, 2017 | hide | past | favorite | 132 comments


* OWL power monitor with inductive clamp and separate LCD display (in the reduced bin at the local DIY barn), transmits data on 433MHz - £12

* Arduino Mega+ESP8266 combo board - £8

* Rflink Rx/TX board - order a kit or build your own (http://www.rflink.nl/blog2/wiring) 433 or 868MHz operation, can also work with some devices at 2.4GHz - About £15

* Rflink software (http://www.rflink.nl/blog2/) + Serial link software for the ESP8266 - all free.

* Configure the serial link software to talk to your MQTT broker (Raspberry Pi running Mosquitto and Node-Red)

You now have an rf receiver/transmitter system that can not only pick up and display your energy monitor signals, but also those of many other rf devices AND can record/re-transmit such signals too - in my case, I can get an alert when the doorbell rings + Capture shots from an IP camera, plus I can control a bunch of those cheap, remote controlled rf mains power sockets I've collected over the years.

Not as cheap as the SDR option, but with much more functionality


You can also buy clamp sensors that can be connected directly to a microcontroller (with an ADC - so not a Raspberry Pi without external hardware).

http://www.homautomation.org/2013/09/17/current-monitoring-w...


The clamp only systems lack accuracy due to not measuring supply voltage. Commercial/open source energy meters based on chips like the ADE7953[0] have a resistive voltage divider to attenuate the supply voltage to suitable level for the chip but preserving the envelope for sampling. The problem is there is no galvanic isolation, so interfacing is harder.

[0] http://www.analog.com/en/products/analog-to-digital-converte...


I have a similar set up with a Z-wave clamp style current meter[0]. This meter is calibrated to 120v. I use NUT to grab the line voltage off the UPS and adjust the reported current with actual voltage to get power. It's good enough for the girls I go out with

[0] https://www.amazon.com/Aeon-Labs-AEDSB09104ZWUS-Aeotec-Monit...


I have the same meter, that meter actually reports voltage to me though.


There are transformer isolated energy monitors like MAX78615. Much safer to work with.


Resistors are cheaper. Much better for the bottom line.


MAX78700 uses a pulse transformer for isolation from the MAX78615, and is powered by the '78615 via that same transformer. It uses resistors for voltage and current sensing.


If you got 3 phases going into your house, how would you use this sensor? Do you need 2, or even 3, of them?


True, though this isn't for everyone. To quote the article why the author didn't in this case...

...I HATE electricity. Too many years of geeky endeavors have resulted in far too many shocks, and mains electricity scares the hell out of me.


It is extremely strange they don't use even primitive encryption. I work for Russian company "Strizh Telematics", we are making smart resource meters. We take security very seriously here: all transmits are encrypted with 64 bit keys and data protocols are specifically protected from statistical and repeat-packet attacks.


That's great, but using a 64-bit key in 2017 isn't "taking security seriously". Especially if you are designing meters that will have a lifespan of 10+ years, therefore must be secure until 2027 and beyond.


Our most talkative meters are currently broadcasting 4 packets of data per hour. Water meters with autonomous power are limited to one or two (for central hot water supply) packets per day. With all the randomness added collecting data for successful key bruteforcing will take months or even years. On the other hand, using 64 bits allows us to use 16- or even 8-bit microcontrollers, which is beneficial to power consumption. Of four recources commonly metered in Russia - electricity, water, gas and heat - three should use autonomous power. We also making an autonomous plug-in modules for popular "dumb" electricity meters - to simplify installation. They broadcast once a day too so the battery could last for 6 years.


I can't speak to the specifics of your project, but 128-bit symmetric crypto on 8-bit microcontrollers is perfectly possible, at a low power budget and with relatively small code and RAM usage.


When we were looking at the task of creating autonomous battery-powered reasonably-sized device with 6 years lifespan - we took into consideration every single point where we could conserve power. Now we have what we have, not what you think we could have. Feel free to try and break our encryption with couple kilobytes of ciphertext on hands - you will have a prize of reading your neighbour's water consumption data on a daily basis)


> Of four recources commonly metered in Russia - electricity, water, gas and heat

When you say "heat" - is this steam from a combined heat & power plant? I was aware these were quite widespread in Russia but didn't know they were metered.


No, not steam, just hot water. Yes, mostly from heat & power plants, but sometimes from gas-powered local boiler plants. They are metered on per-building basis, but there's technical possibility to install individual meter and pay only for actual consumption.


It's fairly common in eastern and northern Europe too. In my building there is a single heat pipe from the city, however each unit has it's own meter for cold water, hot water (for taps) and hot water (for heating). The hot water meters are different in that the first measures the water flow, and the later measures the heat flow.


Does it recycle the cooled water back into the system?


Still, the comment above still stands. Not sure about the key bruteforcing estimates, surely a couple of days of readings would be enough.

Are the keys stored on the devices? Is it a shared key?


Every device has it's own unique keys - one for transmitting data and another for receiving commands. They are burned with firmware in production. If you are interested in bruteforcing - I can send you two weeks worth of my home water meters' data packets to play with :) See, the CRC is calculated for encrypted data, so there is no way to know if the guessed key is correct.


No MACs?


There are unique device Ids, they kinda like MACs.


Old thread, but GP probably talked about a different thing. Not MAC as in Ethernet..

https://en.m.wikipedia.org/wiki/Message_authentication_code


Oh, those MACs) No, we've spend that bandwidth for iterators to mitigate replay attack. But the idea of one-time MAC is interesting, thank you.


Why 64 bit? The minimum key strength supported by AES is 128 bits, so 64 bits seems very low.


To reduce power consumption by using simple hardware. See my answer to @mrb above.


Probably to keep hardware costs low.


I'm curious, if someone finds a vulnerability in your algorithms somewhere, will you be able to quickly deploy updates to all the installed smart meters? Because, honestly, "taking security very seriously" doesn't mean anything anymore.


Everyone knows that in "IoT" letter "S" means "security" :) We do have an ability to burn updated firmware for most of the devices on premises using special hardware pieces, similar to ones used by factory staff. For less complicated devices we can just replace microcontroller modules, and reuse old ones later. That would be quite expensive, but we'll live. I heard there's some sort of insurance contract for that matter.


"Some research told me that the power company accomplishes this via a simple radio broadcast on the 900Mhz spectrum."

So, will there be a website similar to flightradar24 but for meter readings on a map? :)


Electricity meter war driving?


Reading this piqued my interest as this is something I’ve wanted to do ever since my local electric company started to roll out smart meters.

I took a look at my electric company’s web site to see what kind of meters they use and it turns out that they have already seen this need. They will enable the ZigBee module in the meters and set it up to talk to a home energy monitoring device (which you have to buy separately)[0]. The fact that this is officially sanctioned is pretty cool!

Once of the devices, the Rainforest Eagle, even has API documentation[1] so that you can build this type of thing, but with real-time data. The best part, from my point of view, is that they expose an API via their Cloud service AND have a local API on the device itself. It’s possible, though I have no way to know this without buying one, that you may even be able to use it completely independent of their Cloud service. So far the only limitation I’ve found while reading the docs is that you seem to need the Cloud service to configure the Push API, but I didn’t notice that limitation with the Pull API.

[0] https://www.epcor.com/learn/meters/advanced-meters/Pages/hom...

[1] https://rainforestautomation.com/support/developer/


I built a purely local version using the Raven USB Zigbee modem, flask and D3.js. Crude, uses SQLite but might be of interest. The XML decoding is only hard part really.

https://github.com/phubbard/raven-peewee


Cool!

Did you have any trouble convincing your utility company to enable the ZigBee module? Or do they do things differently?


It was no problem at all - online form on the SDGE site.


    I am bombarded with ads on Facebook for the Sense. This
    device allows you to monitor whole-home power
    consumption. ... I realized it would be extremely simple
    to do something similar without any wires or hassle.
Sense monitors two things:

* instantaneous current

* instantaneous voltage

Different devices have different electrical signatures, and this allows it to learn what devices you have in your house. RTL-SDR is much too low-resolution for this.

RTL-SDR monitoring would actually be awesome to add to Sense: the method it uses for measuring current is designed for microsecond-level accuracy, not long-term accuracy like your meter. So over time they won't keep perfectly in sync. If Sense could automatically read your meter it could calibrate itself.


I've been recording my power and gas usage via RTL-SDR for over a year. You only get a data point a few times a minute (if that). However, I can usually (though not always), with context, tell that a big spike was my hot water heater vs air conditioner, etc.

(Though it's not enough to get totals for the day/month/year per appliance.)


What are you using for reading your gas meter?


I'm getting both with the same antenna. Both meters have Itron brand transmitters.


> Some research told me that the power company accomplishes this via a simple radio broadcast on the 900Mhz spectrum.

Interesting. Around here (mainland Europe) they're currently installing "smart" meters which do this using CPL rather than radio.

> And with one simple command, I was reading the power (and probably water) meters for my entire neighborhood

That is a bit troubling from a physical security perspective, once you've mapped meters to accommodation you can now remotely check for presence across an entire neighbourhood, and can ignore the usual "fake presence" indicators (randomised lighting & blinds manipulation) entirely. In fact those would help you as seeing lights in a house whose owners are on holidays would not surprise the neighbours.


Interestingly, in the UK utilities are using GSM SIM cards in Smart Meters, and a mixture of SMS and data to monitor/send electricity usage.


Those smart meters should be outrageously expensive both in production and running. Are utilities government-sponsored in UK?


They’re not.

I’m confused why you think this would be particularly expensive, though; the components aren’t that expensive, and neither is data service for the minimal data the meter will send. I would imagine it’s more expensive than a PLC or general radio solution, but on the other hand it’s got the benefit of requiring minimal new infrastructure.


Considering the alternative is employing a person who has to go around and read every meter versus the very low cost of a GSM radio I think it very clearly makes sense cost wise.


The alternative is to use more appropriate tech for once-a-day/once-an-hour tiny data transfer, like LPWAN. Maybe NFC-like tech, when the host device is installed in a car, which drives around the block once a day/week.


I agree, LPWAN is a better solution and this is almost exactly its raison d'etre, but the cost isn't really that much more. They're basically using GSM as an LPWAN substitute. GSM radios cost peanuts and the data costs would be pretty low since they don't need to transmit a lot. Plus, low power isn't that important since these devices are connected to mains.

> Maybe NFC-like tech, when the host device is installed in a car, which drives around the block once a day/week.

This is how my meter works (in the US) and is the same as described in the article. The meter broadcasts on the ISM band every few seconds and somebody in a car drives by while a scanning device records. Still faster than having somebody on foot walking around but I can't help but think a hub system like LoRaWAN might work better, so that no person has to go out on patrol.


GSM assembly with SIM holder costs about $5 in a mass-production-wise quantities. I don't know about UK, but here in Russia typical "dumb" resource meter costs between 10 and 30 USD. Smart meter could not be more than 2x expensive to be competitive. So you should squeeze all other functionality into $5 production cost just to have zero margin, and you should completely forget about autonomy. And I don't even want to start ranting about running costs of GSM.

This is what LPWAN like LoRa, Sigfox, NbIoT and Nwave are made for.


You’re ignoring the marginal cost of requiring meter reads with dumb meters, though, let alone any other benefits that the meter might offer.

I agree that the WAN tech is perhaps more suitable in theory, but that ignores the fact that there is already a ubiquitous GSM network in place.


GSM network can be used to aggregate data from cheaper devices near by. Putting GSM into every device is somewhat silly.

But well, there is always a "preference" to solutions offered by certain companies no matter the cost.


Hope UK has 100% GSM coverage, otherwise you have to set up brand new GSM cell to read meters from a remote village, which is 1000-10000 times more expensive than LPWAN base station with active signal amplifier and/or relay station. Pulled a feat like that in Siberia just two days ago)


I would expect such country like UK to have 100% GSM coverage (e.g. Poland has 100%) - it is quite densely populated - with 2G it is quite easy considering that the meters are installed usually where people live == need GSM coverage.


I believe you mean "100% of inhabited Poland", and even then you may be wrong. Check this map: https://www.nperf.com/en/map/PL/-/-/signal/ - there are plenty of spaces with gray "no coverage" dots for every operator. The problem is when you have bad GSM coverage in some unfortunate spot even in a big city - you may just can't solve it. And, by the way, there's a habit to place utility meters in basements, where GSM coverage is much worse.


The only thing Dutch lawmakers got right is the requirements/specs for smart meters include a serial port ("P1") that can be read with a $10 USB cable.


Did you mean PLC as in Power Line Communication?


Yeah, sorry.


What about thieves going around selecting data and pinpointing the house the one with the least consumption so they can find out if you are absent or not. Incredible techonology


That's what my second paragraph is talking about.

Note that "least consumption" is not the right indicator, different people have different levels of consumption. What you want is a break in the consumption pattern, a home with lower than usual consumption of electricity.


You just need to build a baseline: hide a device and record activity over a long-ish period of time and then it's easier to sense patterns


Unless your house has something very valuable, I kind of doubt most thieves would spend this much time plotting to break in.


They don't need to spend any time on it past the initial setup, you can have an automated system integrating the consumption pattern of an entire neighbourhood, and pointing out which owners are likely on holidays.


It is much easier and more accurate to go to a house and just look to see if anyone is home.

Plus you’ll see dogs/locks/neighbors which are the actual important things...


Dumb question - what's CPL?


Courant Porteur en Ligne == Power Line Carrier


>>I use PHP. There, I admitted it.

Very happy to see stuff like this in blog posts. I use it all the time to stand up scripts like this. It makes me REALLY happy to see hacky code like:

>>exec("/scripts/gocode/bin/rtlamr -msgtype={$type} --format=json --filterid={$unitid} --single=true",$output);

I also do this all the time, even to control Windows processes on client/slave machines (generally killing and relaunching stalled programs).


The problem that it takes a $type="; rm -rf /" to ruin your day.


No doubt, that's why stuff like this should be limited to internal tooling and private use only, not exposed to the Internet. When done that way, it's just infinitely more efficient to write trash code in PHP for one-off things, and there's literally nothing wrong with it when it has an audience of 1 - yourself.

Beyond that, yeah, you shouldn't do things like that. But there is no reason to stand up an entire test suite and development environment just to write some stuff to check power usage or internal sensors in your house.

(also that command would fail on the machines I run my crap code on, Win10 discardable VMs)


Tangential, but what other fascinating things can I do with an SDR dongle? I've had one for years and have not heard of this.

* Listen to various radio stations

* Track airplane positions

* Receive weather images from a satellite

what else?

One other thing off the top of my head is combining ship position and cargo databases: https://github.com/marcdacosta/ambient-shipping


You can use an upconverter and listen to shortwave radio, but you'll need a much larger antenna.

You can receive and decode "POCSAG" and "FLEX" pager messages.

You can receive and decode messages from all sorts of 433MHz wireless devices (doorbells, car keys, thermostats).

You can use a downconverter and receive the bitcoin blockchain from blockstrean satellite, but you'll need a dish and some other equipment too.

It's a surprisingly versatile bit of kit.


You can read TPMS sensors in car tires, wireless weather stations and much more, see this app: https://github.com/merbanan/rtl_433 for more examples.


* decode trunked p25 radio, eg: local EMS https://github.com/DSheirer/sdrtrunk

* listen to air traffic control nearby

* tap the IF on a hf transceiver for a panadapter


Listen to unintentional radio emissions of various devices: https://youtu.be/5N1C3WB8c0o?t=17m48s


Radio astronomy, although you'll need additional hardware


Pedantic engineering correction. The units are "watt-hours" or "watt hours", not watt/hours.


Nice method, but for future record you don't really need to mess with mains to hook up Sense or OpenEnergyMonitor, they use inductive current clamps which work by detecting the field around the a single terminal of your incoming mains. Pretty much as safe as it gets with this stuff.


Sense actually has you install a 240v breaker in addition to the clamps.

https://sense.com/help/installguide.pdf https://youtu.be/qh9m2xuDrW4


This is neat. I had vaguely heard of the RTL-SDR, but this is a cool example of a potential application.

A few points of note:

The author starts off by discussing how the Sense energy monitor piqued his interest, but he didn't want to go through the trouble of installing it. My understanding is that Sense offers granular usage data down to the appliance level, which reading polled usage off the meter simply won't do. So this isn't a solution that replaces what Sense offers.

And... doesn't your power company already offer you this data? APS here in Arizona does, down to the hour, with the ability to easily export as CSV. But I'm sure plenty of utilities don't offer that, and this is a cool way to read it.


> reading polled usage off the meter simply won't do

(I'm duping this comment from above) I've been recording my power and gas usage via RTL-SDR for over a year. You only get a data point a few times a minute (if that). However, I can usually (though not always), with context, tell that a big spike was my hot water heater vs air conditioner, etc.


Is it really required to actually read currents to achieve the power measurement? do meters in individual buildings not have interval-flashing LED's for power consumption in the US (I'm assuming the target market is the US)?

A flashing LED is neat because you can then use a very simple-to-install adhesive photodiode to count the flashes and radio the results back to some reader (e.g. 1000 impulses per kWh). Doesn't require an electrician because you never actually tamper with the meter, unless you want to leech a tiny bit of power to your transmitter.

The normal connection here is a big outdoor box for the incoming line, with 3 main fuses, one for each phase. Typically 3x25A @ 230V for a detached home (Max ~17kW). This is where you want to read the power consumption. Inside the house there is a box with 3 DIN rails (1 per phase) with switch type fuses. With 3 phases it's a lot harder to read the power consumption there than it is at the outside main fuse box (which is unfortunate, because it's a lot more convenient to mount a meter indoors and near a wall socket, than outside inside a thick steel box without easily accessible power for your power meter+radio).


Would nobody bat an eye if you had an electronic device attached to the meter? (especially the guy that comes and does the meter reading)


No, the meter is sealed, which is the benefit of this type of arrangement. The meter just sits attached to the meter on the outside, so it's obvious that nothing is tampered with. Many power companies even sell their own (branded) kits that does this.

It's also very rare to have someone come read the meter. Like all other parts of society anything that can be automated at almost any cost has been already. I have had no one read water or power meters for many years.


> I have had no one read water or power meters for many years.

Ah, that makes more sense now :)

Over here we still have people that come to read the meters every 3 months.


In the UK they use estimated readings, primarily it seems as a way to borrow a pretty large amount from their customers - they appear to "estimate" at 20% above actual rates. Evil, but pretty clever.


In the UK I just use one of these https://loopenergysaver.com/

You connect the reader around the mains supply cable, plug the other end into an Ethernet port and it works. No monthly subscription charges, just the initial cost of the device which is £60 at the moment.

Not the most high tech solution but seems to work pretty reliably


In the UK we have smart meters now[1]. They tell me how much I'm using at any time for free. Why not just use one of them? Or are they not in your area yet.

To be honest, having had one, anything that makes water hot is expensive, everything else is cheap. Before winter hit I was using a 1/5th the electricity I am now (useless storage heaters). TVs, computers, etc. are not worth really worrying about.

Although, even then, boiling a kettle for a cuppa is like 1 pence, but my hot water costs like 40p per day and my heating like £4.

[1] https://www.gov.uk/guidance/smart-meters-how-they-work


We've not been offerred a smart meter as yet.

I've also got some reservations about the security of the smart meter systems, so ideally I'd like to wait as long as possible for those to get ironed out, before I get one.


> Why not just use one of them?

Because you don't want your electricity meter to have the ability to be remotely-instructed to disconnect your electricity supply, and you don't want your electricity meter to have the ability to record fine-grained data about your electricity usage patterns, which it is required to store for 13 months, and which you can't actually know for sure isn't sent off remotely even if you opt out of that.

I am interested in having a device in my home telling me how much electricity I'm using in real-time, but not if it comes bundled with a load of surveillance and the ability to remotely disconnect my supply.


I'm from California, where they can justify a raid based on your power usage. "You're using twice as much power as your neighbors, you must be growing cannabis indoors!".

I can definitely say you are justified in your skepticism regarding the utility-provided equipment.


I do something similar at home. However, the meter in my house has a LED that blinks per Wh used, so all I did is put something light sensitive on top of it, wire it to a tiny board of your choice (GPIO on a Raspberry Pi in this case) and then export the data from there. I run a tiny Prometheus exporter on that same Pi which gets scraped and everything neatly shows up in Grafana.

For other devices I use Z-wave powered sockets which do power metering, which is exposed by another Prometheus exporter. Since those Z-Wave sockets can be on the expensive side I only really use them in places I want to meassure, like my desk (which has laptop, screen etc.) or the TV.


This gets challenging when you have solar export and a bidirectional meter. The light blinks for every _absolute_ kWh. That is, you don’t know if that was imported or exported electricity, so you need additional information. One approach I’ve seen is to use current clamps just to work out the difference between what’s coming out of the solar inverter, and what’s going into the house. If a > b then the blinks are export, and vice versa.


Since the transmission is not authenticated, I wonder if it is possible the shield or interfere with your own transmission and broadcast a fake report instead.


Or the reports of others in the neighborhood... How does the power utility collect these reports?


"I'm not going to lie. It felt weird polling the meter readings for the entire neighborhood."

Yikes, and I though we had it bad here in the Netherlands where you explicitly needed to opt-out of your power supplier being able to read your meter.

At least here it is ordered that if these newer 'smart meters' are to be installed they always need to include a 'P1 port' which allows the home owner to simply read out the metrics every 10 seconds using a serial device.


Wish that an accessible real-time port was required here in Australia. Best I can do is download the 30minute interval data from my electricity retailer after the meter sends them overnight (or use other hacks like reading the blinks)


I have five or six different RTL-SDR dongles that are looking for something to do, so I am interested in this project. But it seems that I have to install a GO ecosystem on my computer in order to compile and run the program. That is a step too far for me in order to just kick the tires.

Does anyone know of a prebuilt windows binary for this? (I have always heard that is one of the strengths of GO -- it produces a simple standalone binary)

[edit: I'm really referring to rtlamr, not the project described in the post. first I would want to get rtlamr running before attempting to get the datebase / presentation program running]


Correct me if I'm wrong but open (read: unencrypted) radio signals across public airways are not subject to any sort of protection under the law. Point being, the police could do this legally.


On the part where the author went on finding his own meter, couldn't one put a enclosing metal mesh cage around the meter and put an antenna inside this cage?


yah, if you want to learn how difficult it is to properly shield RF.


I can get all my data from my power company. There is a webpage with realtime statistics and supposedly there's an API that I never tried.


I would think it would be a bit of a security hole to have anyone read your meter. You'd easily be able to determine who is on vacation for instance. I'm guessing you might also be able to deduce a lot of information such as bedtimes, when you are doing laundry, when you leave for work, etc.


It is. In Germany at least all communications must be encrypted. And often multiple meters will communicate via one gateway.

Though, if someone has the time and technical ability to implement this kind of surveillance then there are probably easier ways to get better info than inferring activity from energy readings.


> Though, if someone has the time and technical ability to implement this kind of surveillance then there are probably easier ways to get better info than inferring activity from energy readings.

I don't know, the original mapping probably isn't the most difficult thing in the world, and then you can just passively (programmatically) wait for oddities in consumption patterns against an entire neighbourhood.


I feel like that'd be a lot more work than just watching their house for activity.


Sure but for theft it's much more useful to have information about an entire neighbourhood at once, there's a much larger ROI to casing dozens or hundreds of homes at once than to casing each one individually.

You can have "small hands" doing the initial survey (e.g. triangulate signal strengths to meter locations), automate the surveillance/pattern checking, and call in more professional break-in teams when you have high confidence.


You could just build a device with GSM module, a battery, and above mentioned components, and hide it somewhere near the house. Voila, 24/7 observation from the comfort of your home. And the data is easily analyzable/mineable, not like a video feed you have to view on fast-forward.


It's a different set of criminals and crimes, and some of it is organized.


Considering the fact that it took him three hours to identify his own house, when he could see the current reading, I'd say that's not much of a problem.


Because it took him that long in his first try doesn’t mean that holds true of everyone.


There's no way to tie the signal to a specific house without the serial number or a reading.


Monitor the usage and look for a change? E.g. I see the person come home and turn on their lights, whichever meter shows an increase at that time is theirs.


If you're doing that, why bother with the meter at all?


RF triangulation at the meter box.


My first thought was this is cool. Second, I should do this also. Third, hey I can just login to PGE and see this data already, dang it, abort. :) They cannot keep the power on in the slightest wind storm, but at least I know how much power I am not using at that time.


In Australia we don't need that: our electricity suppliers give that info on their website :)


Useful for finding the 12/12 or 18/6 pattern spikes of a weed grow house also.. `


Still easier to do thermal camera search, you don't have to find which address it actually is.


on a 12/12 cycle, why not split the crop in half with offset cycles? or on the 18/6, split into thirds, so that only 1/3 is off? then it would be an even/constant use of power. no obvious pattern at that point.


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 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


rtlamr is awesome. I use it to monitor my gas meter (which is going crazy lately with the low temps here in Ohio).

I had started a project [1] to read my water and electric meters, but just about the time I started figuring out the protocol, they upgraded the firmware and turned on encryption. Luckily the encryption seems to only affect the power meter, as I am still able to read the water meter (though I’m not sure how long that will last)

[1] https://github.com/shaunhey/ea_receiver


It's weird that he didn't give the ELK stack a chance. Kibana would be awesome at graphing this and data ingestion would also be very simple.

Very useful for automatically generating graphs based on data. Would have automated the whole "writing PHP + jQuery + SQLITE3" part entirely - and consume the JSON directly and created visualizations based on that.


Do you realize that an ELK stack has an enormous overhead comparing to a bare php script? Your idea may be good for a large-scale monitoring deployment, but it's totally overengineered for a simple, in-house monitoring system.


He mentions that it should be able to run on a Raspberry Pi. The choice seems pretty reasonable to me (or maybe I am missing the irony in your comment?)


How does the power company actually get the information transmitted by the meter?

One of the articles the author links to says that it is collected by the power company sending someone with an appropriate receiver to drive around collecting the data.

However, my power company website lets you look up your usage on their website, and that is updated daily which makes me seriously doubt that there are any manual steps in its collection. In particular, it gets read on those occasions every few years when we get enough snow to close down traffic on side streets like mine.

My meter is at least 11 years, and appears quite old fashioned--it's got the spinning disc to show instantaneous usage and analog dials to display the cumulative usage.

I'm not actually sure that my meter has remote read capability. I read somewhere that some power companies add remote reading to older installations by putting something on the pole where the lines to a particular house branch off.

There are some mysterious signals in the 900 MHz neighborhood that show up on my SDR. I've seen them at 929.616, 929.664, 929.940, 931.066, 931.216, 931.865, and 931.942 MHz, and have not been able to figure out what they are from. Mostly, they consist of periodical short (about 1 second) bursts of something digital followed a few seconds later by a longer burst (several seconds), then silence for maybe a minute, and then repeat.

Some seemed to be in pairs, where one would send a short burst, then another would send a long burst. I suspected that this may have been my "Weather Channel" weather meter, which has an outdoor sensor and an indoor display, and operates in the 900 MHz area. I suspected the short burst was the indoor unit asking the sensor for a report, and the sensor responding. I ruled that out, though, by taking the batteries out of the indoor unit and seeing no change in the signal pair.

It's been a while since I looked at these, and so I took another look--and now I don't see that apparent pair. I'm not thinking that that one wasn't two things talking to each other, but two separate things that just happened to have their reports lined up so that it looked like they were talking to each other.

I had guessed that they might be power meters, but I have not been able to find anything that looks like it could be the receiver for them. I don't see anything on the poles around here other than the usual transformers, and we don't have any evident equipment pedestals. The signals don't seem very strong, so I've been assuming that whatever they are talking to cannot be far away. That made power meters seem less likely.


I think my power company drives pickup trucks around once a month. (and I don't have daily access to readings, so I log the data myself via RTL-SDR.)

Other companies / meters will create a mesh network and rebroadcast all data back to the utility company. (I don't believe mine does that.)


Excellent, I was about to go the route of reading the led flashes with some kind of sensor but I was reminded that anything touching the meter can be considered meter tampering in the US which is a crime...yikes.

Thankfully passively decoding its RF emissions from the garage isn’t illegal yet!

So HN, which SDR dongle should I buy?



I wonder if there are people who abuse this to reduce their bill or to run up someone else's bill.


I'm not familiar with the RTL-SDR. Why would one use that to monitor temperature/humidity over something like an arduino + sensors?


I hadn't heard of the company Sense before I read about this blog. I looked up their product... 300 bucks, are you kidding me? And it requires licensed installation on top of that, so maybe even more in labor. Who's buying this stuff and how is their margin defensible from Tesla or somebody selling Raspberry Pi kits for $25?


Of course the people without the technical skills, but also everybody who counts their time in terms of money. I used to reason like you when I was a student and had seemingly unlimited time on my hands. But now I'm a consultant who bills by the hour which makes me somehow always translate time into money. If I bill $100/hour and the raspberry PI solution would take me a day to set up and working, then buying the sense is $500 cheaper.


Sense looks really attractive to me, except the part where they get all the data. If they had a self hosted solution that I could run on a Raspberry Pi or even a “real”computer to do the data collection and processing, I’d be in.


Its defensible because people are paying it...go on, you can buy the current clamps for a few bucks and make your own competitor for $25 a pop... you wont though because its easier to shit on things than actually do something.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: