7.7.15. NILM Appliance Usage Classification

Non-Intrusive Load Monitoring - identify active appliances from aggregate power data.

7.7.15.1. Overview

Non-Intrusive Load Monitoring (NILM) disaggregates total household power consumption to identify individual appliances. This example demonstrates how to classify which appliances are currently active using aggregate power measurements.

Application: Smart home, energy management, utility monitoring

Task Type: Time Series Classification

Data Type: Multivariate (power measurements)

7.7.15.2. Configuration

common:
  target_module: 'timeseries'
  task_type: 'generic_timeseries_classification'
  target_device: 'F28P55'

dataset:
  dataset_name: 'nilm_appliance_usage_classification'

training:
  model_name: 'CLS_4k_NPU'
  training_epochs: 50
  batch_size: 32

testing: {}
compilation: {}

7.7.15.3. Running the Example

cd tinyml-modelzoo
./run_tinyml_modelzoo.sh examples/nilm_appliance_usage_classification/config.yaml

7.7.15.4. Dataset Details

Input Variables:

  • Aggregate power consumption

  • Voltage/current waveforms

  • Power factor (optional)

Classes:

  • Different appliance combinations

  • Individual appliance states (on/off)

7.7.15.5. On-Device Results

On-Device Results

NILM inference results on target device

7.7.15.6. PLAID Dataset Variant

An alternative configuration using the PLAID (Plug-Level Appliance Identification Dataset) is also available:

./run_tinyml_modelzoo.sh examples/PLAID_nilm_classification/config.yaml

7.7.15.7. See Also