I recently got a gizmo installed at home that samples my electricity usage once every 10 seconds. I've become a little transfixed watching the graph update as various appliances in my home turn on and off.

For instance, turning on lights results in a small and simple bump up a couple of hundred watts. Turning on the microwave a huge 1.2KW jump. The washing machine usage moves up and down depending on where it is in the cycle.

I started wondering whether there'd be some ways to automatically work out what devices are running by what you might call their 'power signature'.

Essentially what I want is an algorithm that watches what is effectively a 0.1Hz signal representing usage in watts, and can say 'Looks like your washing machine was on between 09:00 and 11:00 today.)

The complication of course is that multiple appliances can be running. As a human you can sometimes resolve that (E.g. This shape looks like the washing machine was on, but someone also turned on the microwave in the middle).

  • $\begingroup$ Assuming no appliances have the same "signature", can't your algorithm simply measure the spikes, so that if at 9 AM it detects a spike it goes "washing machine on". Then at 10 AM another spike: "microwave on". Then at 10:05 a drop in consumption: "microwave off". And at 11 another drop: "washing machine off." $\endgroup$
    – Wasabi
    Feb 16, 2016 at 10:03
  • $\begingroup$ There is however the issue of if you turn on multiple appliances within 10 seconds of each other. If you have three appliances that consume 1, 2 and 5 W, then you can figure out that a 7 W spike means you turned on the last two (2 + 5 = 7). However, if you have a fourth appliance that consumes 6 W, then you'll never know if you turned on that one appliance or the 1 and 5 W appliances. If the spike is of 7 W, did you do 2 + 5 or 1 + 6? $\endgroup$
    – Wasabi
    Feb 16, 2016 at 10:04
  • $\begingroup$ Thanks @Wasabi for comments, but it's not quite that simple. We're not talking about precise steps or even intervals. I think it would require an heuristic approach of some sort, looking at overall shapes of the signal. $\endgroup$ Feb 16, 2016 at 10:46
  • $\begingroup$ If each appliance uses a different power of 2's worth of power, it'd be easy to tell which ones are on :-) $\endgroup$ Feb 16, 2016 at 12:42
  • $\begingroup$ This is a signal processing question, not an engineering one. As such, it will probably get more substantial answers at dsp.stackexchange.com. I would recommend looking into matched filtering. $\endgroup$ Feb 16, 2016 at 13:05

1 Answer 1


The word that will unlock your searching is disaggregation - there's quite a lot of research going on right now into energy disaggregation.

These generally involve some kind of learning algorithm, and the energy-disaggregation field is quite young, so you won't find a reliable off-the-shelf package.

But you will find current research which will help you design your own.

Daniel A Kelly (aka Jack Kelly, and currently of Imperial College London) has worked in this field - check out his papers; and Clym Stock-Williams of Uniper (formerly part of E.On) recently reported at a Data Science for Energy conference organised by the Alan Turing Institute (Edinburgh, Jan 2016) that data at 0.1 Hz was as good as data at 1 Hz for disaggregation - the more frequent 1-second data did not lead to a more skillful model (YMMV).

In short, do a literature search (Google Scholar or similar) for energy disaggregation or electricity disaggregation, and you'll find new papers every month or so, in this fast-evolving field.

But for a single dwelling, where you know what's going on at any one moment, the best way to do this would be to train your own model, as you'll be able to get very good data on what is being used, when: even as far as listening for when the fridge and freezer compressors turn on and off.

  • $\begingroup$ Thanks for this - especially as you've correctly gone straight to what I really wanted; the right term to search for. $\endgroup$ Feb 16, 2016 at 14:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.