Monitoring Home Power Consumption for less than $25
blog.kroy.io
blog.kroy.io
* 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
http://www.homautomation.org/2013/09/17/current-monitoring-w...
[0] http://www.analog.com/en/products/analog-to-digital-converte...
[0] https://www.amazon.com/Aeon-Labs-AEDSB09104ZWUS-Aeotec-Monit...
...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.
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.
Are the keys stored on the devices? Is it a shared key?
So, will there be a website similar to flightradar24 but for meter readings on a map? :)
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...
Did you have any trouble convincing your utility company to enable the ZigBee module? Or do they do things differently?
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.
(Though it's not enough to get totals for the day/month/year per appliance.)
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.
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.
> 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.
This is what LPWAN like LoRa, Sigfox, NbIoT and Nwave are made for.
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.
But well, there is always a "preference" to solutions offered by certain companies no matter the cost.
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.
Plus you’ll see dogs/locks/neighbors which are the actual important things...
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).
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)
* 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 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.
* listen to air traffic control nearby
* tap the IF on a hf transceiver for a panadapter
https://sense.com/help/installguide.pdf https://youtu.be/qh9m2xuDrW4
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.
(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.
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).
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.
Ah, that makes more sense now :)
Over here we still have people that come to read the meters every 3 months.
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
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.
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.
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 can definitely say you are justified in your skepticism regarding the utility-provided equipment.
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.
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.
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]
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.
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.
- 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
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)
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.
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.
Other companies / meters will create a mesh network and rebroadcast all data back to the utility company. (I don't believe mine does that.)
Thankfully passively decoding its RF emissions from the garage isn’t illegal yet!
So HN, which SDR dongle should I buy?