Simulating disaggregated electricity data

To do rigorous NILM research, we need lots of high-quality disaggregated electricity data. This is especially true if we want to run a good NILM competition.

There are now 20 public datasets listed on the NILM wiki. But all real data suffers from problems which make it problematic for use in a NILM competition. These problems include:

Simplifying NILMTK

NILMTK is now over two years old. Having had a chance to use it as a user (rather than a developer), and also having had a chance to take a step back from NILMTK development, it feels like there are quite a few opportunities to simplify the NILMTK code base, without modifying the public API much (although the public API probably could also do with some tidying up - but if we were to do that then we'd be careful to slowly make functions deprecated rather than just strip stuff out straight away).

The NILM issue queue now has a 'simplify' label to indicate which issues are to do with, well, making NILMTK more simple! The two main ideas are:

  1. Replace NILMTK's out-of-core code with Blaze
  2. NILMTK should interact with other Python tools more smoothly

Please do let me know your thoughts (ideally on the issue queue rather than on this blog post).

The core NILMTK developers are really busy at the moment so these ideas definitely won't be implemented any time soon - and may never be implemented. But it would be great to hear your opinions. And, of course, we'd try very hard not to modify the public API unless it really needs to be modified.


We've seen some really encouraging adoption of NILMTK (our open-source toolkit for non-intrusive load monitoring) since we started work on it a year ago. However, it's quite hard to keep track of how people our using the toolkit, what features they'd like to see, and what direction the toolkit should be heading in. For this reason, we've created a NILMTK Survey, which will hopefully solve these problems. Please fill out the survey if you have any interest in energy disaggregation research, and let us know what's important to you. Thanks!

(this post was written by Oli Parson, and cross-posted from Oli's blog)

NILMTK v0.2 wins best demo at BuildSys 2014; and demo is online

Oli Parson and Nipun Batra (my two awesome collaborators on the core of our open source energy disaggregation framework NILMTK) have just attended BuildSys 2014 in Memphis. Oli presented NILMTK v0.2 as a demo and it won best demo! Hurray! Well done Oli for doing an excellent presentation. The demo is an IPython notebook and is available to view online: NILMTK v0.2 BuildSys demo. Also, you can read more about energy disaggregation at BuildSys on Oli's blog.

NILMTK v0.2 released!!

Hurray! We've released NILMTK v0.2! See this list of improvements on the docs page.

Introducing NILM Metadata: a schema for energy datasets and prior knowledge about appliances

One of our aims with the open-source energy disaggregation toolkit NILMTK is to make it easy to import any of the 10+ NILM datasets currently available. One of the pain points when writing a NILMTK importer for a new dataset is that each dataset uses a different metadata schema and, sometimes, there simply is no metadata associated with some datasets. At best, this means that we have to manually map from the dataset's appliance names to NILMTK's standard appliance names. At worse, it means that it's impossible to unambiguously import the dataset (did that channel really only include the fridge? It sure looks like there are other appliances on there. What's the wiring hierarchy between the mains meter, the circuit meters and the appliance meters? Does that channel record active power or apparent power? What pre-processing has already been applied? etc. etc.)

Introducing NILMTK: an open source toolkit for non-intrusive load monitoring

Today, Nipun Batra, Jack Kelly and Oliver Parson are really pleased to announce the release of NILMTK: an open source toolkit for non-intrusive load monitoring. The toolkit will allow researchers to easily develop algorithms which disaggregate a household’s total electricity consumption into individual appliances.

Specifically, the toolkit includes:

Non-Intrusive Load Monitoring ToolKit (nilmtk)

Nipun, Oli and I have just started work on an open source toolkit for non-intrusive load monitoring called nilmtk. We're pretty excited about it! It's only in the very, very earliest stages (the code repository currently has precisely zero lines of code in it!) although we've started to flesh out the design on the project's wiki.

Subscribe to RSS - nilmtk