• Miha Grabner

How to Recognize Appliances from Smart Meter Data using AI?

Identification of electrical appliances from Smart Meter Data (total consumption of a household) is called Energy Disaggregation or Non-Intrusive Load Monitoring (NILM).

Instead of measuring every appliance in a household (also called Intrusive Load Monitoring or ILM), we can use machine learning to analyze the total energy consumption and determine the energy consumption signals originating from electrical appliances.

The major advantage of NILM over ILM is that you only need one Smart Meter in a household instead of many devices each measuring desired electrical appliance.

Non-intrusive load monitoring (energy disgaggregation) framework.

Why do we need NILM?

ILM or NILM can be used in the scope of:

  • energy management systems,

  • network planning, and operation, or

  • demand-side management (eg. targeting consumers in energy efficiency or demand response programs).

Products based on NILM technology are usually advertised that they can help reducing energy consumption via feedback. The idea is to inform consumers about the energy consumption of major appliances in the household in order for them to save electricity. If you know which devices consume the most, you can reduce (or shift their usage). But the reality is a little bit different.

One of the most important NILM researchers dr. Jack Kelly claims (check his page) that there is no clear evidence that informing consumers about the consumption of individual devices leads to reduced electricity bills. According to Jack Kelly disaggregation might not be necessary to achieve these savings because aggregate feedback may be equally effective (taken from here). I personally agree with Jack, since knowing which devices consume the most energy in a household is not rocket science.

Instead of measuring each device, NILM uses AI to disaggregate input smart meter readings.

How does NILM look in practice?

Existing Smart Meter infrastructure is not appropriate for NILM.

First I have to emphasize that the existing Smart Meter infrastructure that usually uses 15-min, 30-min, or 60-min resolution is not appropriate for NILM as we need higher frequency data such as 10s or 1s or even higher for the algorithms to work properly.

There were many start-ups founded in recent years leveraging NILM and claiming magical results. Usually, consumers have to buy a device (Smart Meter) that measures whole-home electricity in a high resolution. The application further sends the data in the cloud where machine learning algorithms are applied and finally shows the disaggregated consumption in a fancy mobile app.

How to model NILM?

In recent years, deep learning-based approaches became very popular for solving NILM.

There are many approaches, whereas I will provide a short description of the (probably) most popular approach which is also quite self intuitive.

Let's say you want to develop an algorithm that is able to recognize three electrical appliances (e.g. dishwasher, oven, fridge). You have active power (in Watts) time-series data from smart meter readings (also called mains), which represents a whole-home energy demand and is an aggregate of all the devices in a household (denoted P_mains). Additionally, you have three time series measurements for each device separately (active power of a dishwasher is denoted as P_dishwasher).

The main goal is to develop a model that takes smart meter readings (P_mains) as an input and outputs disaggregated electrical signals of three devices (P_dishwasher, P_oven & P_fridge).

You have to develop one model for each device separately:

P_dishwasher = f (P_mains)

And analogically for the other devices.

Further, you use deep learning to estimate f.

This is a regression problem, where data samples are created using the rolling window approach (in our later case each window had a length of 361).

There are two main approaches for modeling f:

  • sequence to point (model input is a sequence of data and output is a single point)

  • sequence to sequence (model input is a sequence of data and output is also a sequence).

For a broader overview of the methods, check this great paper.

Our experiments show…

Deep learning (especially deep convolutional neural networks) methods perform very well for NILM.

The biggest issue with NILM is that publicly available datasets have measurements only for a few houses.

This is probably not enough for training algorithms that would ideally generalize very well to a thousand or millions of houses not seen during training. More about dataset issues here).

In the Figure below (top graph) we can see whole-home energy from smart meter colored by the energy consumption of each device. On the bottom graph, there is an example of using NILM for recognizing dishwasher. Green represents the actual signal of the device and red the predicted signal. We used deep convolutional neural networks (sequence to point model with 1D convolutions and VGG blocks) for encoding the input signal and a fully-connected layer as a decoder on a publicly available dataset (REDD) with 10s resolution. We learned one model per device, whereas the models were able to recognize around 90 % of individual device energy.

Results of using Deep Learning for NILM on REDD dataset.


In my opinion, NILM is a very interesting research area, especially these days when new deep learning approaches are developed almost on a daily basis. Nevertheless, due to the lack of publicly available datasets for a large number of households, it is hard to assess the practical value of this new approaches as you can not evaluate your algorithms on a wide range of different households. Therefore, you cannot properly assess whether these algorithms would work well in real-world environments and if wide adoption of NILM would even work.

If you want to know more…

  1. If you are new to NILM and want to learn more I strongly suggest reading a Ph.D. written by Jack Kelly available here, who was also the first one who applied deep learning to NILM, is an author of a well-known UK-DALE dataset, co-author of a first Python NILM toolkit, etc.

  2. Check Open source NILM toolkit.

  3. This paper summarizes everything you need to know about NILM when starting out.

  4. All about NILM datasets.

If you find this blog useful, please share it with others and let me know your thoughts on a LinkedIn!

If you want to connect with other experts working in this field, join my LinkedIn group AI in Smart Grids where I post about this topic!