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
cd tinyml-modelzoo
run_tinyml_modelzoo.bat 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
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