Monitor your home’s power usage on the cheap

[Paul] was pretty sure that he and his family used a lot of electricity throughout the day. Admittedly, he enjoys his creature comforts, but was wiling to try living a little greener. The problem was, he had no idea how much electricity he was using at a given time.

While some power companies offer devices allowing homeowners to monitor their energy usage, [Paul’s] did not. After a bit of research however, he was ready to build a power monitoring system of his own. He found that his meter emits a small infrared pulse every time a watt-hour of electricity is consumed, so his system counts how many flashes occur to measure usage.

The counting circuit is pretty simple consisting of only an AVR, a resistor, a capacitor, and a phototransistor. The data is fed to a computer where the results are graphed with gnuplot.

It’s quite a useful little hack, and undoubtedly far cheaper than purchasing a whole house power monitor.

56 thoughts on “Monitor your home’s power usage on the cheap

    1. Everyone can have an easy to use power meter. Look up WattVision, it gives you second by second live graphs and readings of how much energy you are using and how much money is being spent! Look it up!!

  1. I love this hack. The new “smart meters” are being deployed here and they don’t seem to (as yet) be consumer friendly.

    This kind of hack represents the very best of hacking nature. It’s empowering to the end user, causes no damage, destruction or interference, and exploits a previously unpublished (or at least little known) functionality in a way that others in the hacker community can build in.


  2. Very simple yet useful hack, I might build one of those (thankfully, my meter is inside my house).

    500W of “background” consumption is pretty high, though, and now that even desktop motherboards can sleep there’s usually no reason to leave them on.

  3. Imagine if you were able to design a sensitive system that could monitor your entire neighbourhood? There was a discussion going around the web about privacy concerns with sending consumption data off to your power company, but a hack like that could map the behaviour of many people quite easily.

  4. Very cool! I’d be a little worried that the power company might be upset that I blocked the IR transmitter, though… seems like it would make them go back to manual meter readings, which most companies seem to be trying to avoid.

    Then again, I’m pretty ignorant of this type of stuff, and maybe he’s not actually completely blocking the signal.

    Either way, very cool idea, and seems nice and simple. :-)

    1. Most of the smart meters transmit the data wirelessly via RF so they don’t generally come to the house once you have one installed. Of course, that could probably vary from one company to the next.

  5. @Strofcon: At least in my model, the LED that blinks for every Watt-Hour consumed is not the same that allows for actual communication with a device.
    My company still reads the numbers, though, instead of using a reader.

  6. It’s a good device. A lot of meters have some type of IR port but be careful because some meters communicate internally within its own components over the IR port, which will cause your circuit to accumulate additional pulses. Also, not all of the meters are 1 pulse every watt-hour but the one you have is. Most residential meters are.

  7. It should be possible to do something similar for the old spinning disk type with just a few hardware modifications to this system. You’d just need to add an infrared transmitter LED and have it reflect light off the edge of the disc and into a receiver LED (similar to a cell phone’s IR proximity sensor). When the IR light dips, that’s the same as an IR flash on the newer models. The aiming of the transmitter and detector could be tricky, although you could look through a digital camera to make it easier.

  8. If you want more accuracy and realtime load monitoring you need to move to a different scheme. that’s putting coils around your incoming lines and monitoring the load draw…

    Sadly it’s cheaper to buy the device to do this than build it….

    I love it because the data is in XML format so I can do whatever i want with it. and I dont do the google integration. the expensive one with zigbee and the remote display is nice but a useless expense.

    Also many meters cant do the IR function. the “smart meters” they rolled out here they disable the IR output until they come to read it, which is never as it has a RF transmitter box on it.

    and yes I have needle probed their wires, no data that I can glean that is constantly sent, it only transmits when it wants to.

  9. @icebrain: reading it every second actual power draw. and I have never seen those pulse counting meters be 100% accurate as you cant completely shroud the meter to get rid of any light interference… a windy but sunny day can cause issues when the sun is at the right angle…

    Remember the sun is 90,000,000 more power of a IR source than the puny led in the meter.

  10. imagine if people just turned things off to save energy rather than pretend they are saving energy by using more energy to monitor how much energy they use and keep track of a meaningless number and fumble around their house turning things on and off while watching the number change while instead they could just look on the thing thats plugged in and read how much energy each thing uses and then know how much energy each things use or just turn things off after they are finished using the thing they were using.

    power usage monitors are a gimmick made by power companies

    these are bad and you should feel bad

    1. The power consumption of these devices is actually minimal. But regardless of that being a truthful fact, I FEEL TERRIBLY BAD. Anytime We are told that We need to FEEL BAD, We need to seriously consider the source. With all the things in this world that make people feel BAD, why would You tell anyone “YOU SHOULD FEEL BAD” ? Please consider what You are saying…

  11. @fartface: reading it more times doesn’t make it more accurate. You’re right about sun interference, though. Luckily mine is completely enclosed by a wooden “box” inside my house ;)

    @pff: this kind of monitor uses a negligible amount of energy; the chosen uP uses 0.0047kWh *per year*, probably less than what our PC, the Hackaday server and the routers in between used to post your comment.

    Not to mention that this is way more useful than simply saving energy.

  12. thanks for all the comments. i certainly enjoyed building the monitor.

    @IceBrain — i agree, 500W is high. i’m working on it. :-)

    @Strofcon — meters like this also have radio capabilities. there’s no one walking up to the meter — they read it from the street, from a van.

    @vlad — thanks!! i hadn’t seen that project before. looks like he did a better job on the UI than i have. i’ll bet getting in touch with him…

    @some guy — from what i’ve read about the Itron meters, the IR led is a “Test LED”. it’s highly doubtful it pulses at anything other than its specified rate. (which as you say, is 1 w-h/pulse for mine — it’s printed on the front of the meter.)

  13. btw, i think the current probe method probably is indeed more accurate for “instant” readings. having to average the pulse intervals means that there’s a 15 or more second lag until the reading catches up with reality. and of course, if you miss a pulse, you’ll be off by 1 w-h. but my installation doesn’t lose pulses due to sunlight. and certainly not wind. (“windy but sunny”???)

    @pff — i’m not sure i should feel bad about wanting to know how much power i’m using. i can absolutely guarantee that this device will save me power in the long run.

  14. @texas toast — i don’t know why it got deleted. i was about to reply earlier, and then saw that it was gone. i don’t know the subtleties of “hack” vs. “mod” vs. “project”. i didn’t open the meter — that would dumb, and probably cost me fines. what i did was create a detector for the IR pulses that the meter emits, and code for interpreting and logging the results.

  15. I’ve got the same meter. It was installed after I noticed my power company had been (over) “estimating” my bill for eight months in a row.

    The new meter is read by short-haul radio when the meter reading van comes by. The old meter was read by pressing an inductive sensor up against a port on the outside wall. My actual meter is inside my garage.

    since there’s no longer a wheel that turns under the glass face, there’s a lame-ass simulation using a small LCD display, and this blinking led thing. I confirmed that it blinked by using a cell-phone camera and then “tapped” into it (outside the glass) by using a photo-diode connected to a parallel port pin. Beside that, there’s just a few simple scrips to keep track of the total blinks per day.

    I recall someone doing something similar using a laser points that was aimed at the holes in the rotating plate, but I can no longer find the link for some reason.

  16. @texas — didn’t think you were bashing. the meter does contain RF, which is how the utility reads it. detecting an IR pulse is more within my skill set than reverse engineering a probably-encrypted radio protocol. :-)

  17. @standard — i wish my meter was inside the garage. instead, it’s on a westward-facing wall, so most of my effort was being able to detect the pulses both in darkness and full sun.

    for people with inside meters, the job is much easier. there’s code in my git tree for using a serial port to read the pulses — if you set the baud rate right, the pulses appear as “break” conditions, and can be read as zeros from the tty.

  18. Good implementation. However you should be careful with how you are touching the actual device. In Florida it is illegal to alter or mount anything permanent on the meter. You may want to make sure your solution does not violate the power company’s guidelines or your government’s rules.

    Because i knew i could not attach anything to my meter, i used a flexible PVC pipe to connect my IR sensor.

  19. @andres — i love the servo-controlled meter! i was thinking of doing something similar with a D/A converter and an old voltmeter, but the plywood and hand-drawn gauge are perfect.

    my meter’s read remotely, and the detector is only bungied to the bubble, so i’m not too worried. but your cautions are well-taken.

    i’m surprised i didn’t find your or avbrand’s projects when i was googling…

  20. @texas

    Because “this is not a hack” is an extremely tiresome argument on this website. We *know* some people may not consider something a hack, its been said 1000 times on 1000 posts. The point of this website is not to debate the use of the word ‘hack’ over and over again, its to show off neat projects that people have made and discuss them. So I don’t really blame a mod for deleting your comment if it was off topic. I totally understand you may not have realized it, but those discussions are just really annoying here.

  21. We’re surprised no one has mentioned our product yet. This is how we started in September 2008 — and we’ve since expanded to an easy-to-set-up end to end system that anyone can get (including non-hackers).

  22. Funny – I did exactly this a few months ago and was planning on writing it up for HAD. My IR photodiode is in a radio shack project box hooked up to an attiny85 plugged into my NSLU2 via USB with some custom code using google graphs to get me some pretty charts.
    To those talking about accuracy, this is exactly as accurate as the meter itself is. I’ve never had problems with IR noise from the sun (or the wind.. Wind causing IR? Now I’ve heard everything.) The pulse is very bright and consistent, and it is easy to filter everything else out with some simple debouncing code. The sun doesn’t cause 10ms pulses. As for being an instantaneous reading – you don’t have to average over 15 readings or anything like that, you time the interval between the last two pulses seen and you get the reading for average power over the last second, which is close enough to instantaneous for me. Accuracy using this method is as good as the timer on your microcontroller, or PC if you’re using that. Since even at very high power draws the pulse happens on the order of hundreds of milliseconds, it’s easy to time the pulse within microseconds if you want to. If you do your timing on a PC you have to deal with the fact that your operating system is probably not hard real-time but for this application the added preemption latency probably doesn’t matter.

  23. My analog meter was recently swapped out for a digital model, so I’ll do a bit of recon to see if this hack might work for me.

    Allowing my imagination to go overboard for a moment: I’m wondering if a currently unused Axis webcam and remote OCR might be able to reliably pull it off? One issue would be the need for nighttime illumination (IR or visible), and preventing glare.

  24. After testing this, my meter emits the same IR pulse every kilowatt hour. But after loading a simple IR reader on my Arduino at each pulse it sends the value on the display of the meter.

  25. I mounted a commercial version of this on my power meter — hose clamp attached it to the glass bell, and an arm reached around front and watched for the black stripe on the spinning disk. It worked brilliantly until someone from the power company spotted it and demanded removal. At that point it became a “hazard” and a “barrier” to any of their people if they needed to get to the meter. Because we trust these people with high voltage but not with a flathead screwdriver?

  26. @n17ikh — re: accuracy — there will always be some delay when using the pulses to measure consumption. that delay isn’t present with current probes. but i agree that for real-world use, using the pulses is completely accurate enough.

    i will say that either my meter puts out weaker pulses than normal, or my phototransistor is the wrong one — i wouldn’t call my pulse “bright” in terms of the edge levels i’m seeing.

  27. @Wattvision — perhaps no one has mentioned it because your product costs $250, and involves a $9/month service fee. i’m planning on writing a blog post about other power monitoring alternatives, and will probably include some commercial links. i’ll be sure and mention that you spammed these comments. ;-)

  28. In India we have power meters that have a rotary disc. It has a marking to know it’s in motion and at any point of time it’s angular velocity is directly proportional to the amount of power consumed at that instant. A stop watch, pen and paper would do the trick for me.

  29. @bharath — we have those meters in the US, too. it’s only in the last 5 or 10 years that some areas have switched to fully electronic meters. the reason is that they can be read remotely, without someone needing to walk up to the meter to read it.

    pen and paper would work, of course, but you’d be standing at the meter a lot in order to make logs. :-)

    here’s a project where someone is attem to automate reading a meter like yours:

  30. i’ve added a new blog post at the irmetermon project page listing many of the similar projects mentioned here, and others i’d found earlier. please add more in the comments on that page — it’d be good to have a more complete list.


  31. I did something similar to this for my water meter. I used a pic processor and an xbee transmitter to send the info to my pc. I used google charting software to display the data.
    Checkout http;//

    I count the revolutions of the magnet inside the water meter. With an IR sensor, I should be able to use the same hardware on my XCEL energy power meter.

    Charts for water usage are at

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.