Stateful Cross-Session Injection: Attacks, Detection, and Session-Boundary Defenses
A research project that studies how prompt injections persist across agent sessions — building a stateful evaluation harness that measures...
A research-grade NILM project that estimates appliance-level electricity consumption from a single whole-home power signal — feature extraction, sequence modeling, and honest per-appliance evaluation on the open UK-DALE dataset.

An advanced signal-processing and machine-learning project in non-intrusive load monitoring (NILM): given only the aggregate power signal from a home’s electricity meter, estimate how much energy individual appliances consumed — without any per-appliance sensors. You will work with the open UK-DALE dataset, which records whole-house demand alongside appliance-level submeter readings from real homes, build the classic disaggregation pipeline (preprocessing → windowing → features → sequence models → evaluation), and finish with an honest analysis of which appliances your models can separate and which they cannot. It is one of the richest self-contained time-series problems a student can take on: real physics, real noise, real homes.
>Estimates, not meter readings. Disaggregation output is statistical inference from a shared signal: it can be wrong, systematically so for appliances with similar signatures. Present results as approximations for study and exploration — never as billing-grade measurements, and never as evidence of what happened in a specific home at a specific time. Smart-meter data is behavioral data; treat it with the privacy discipline described below.
A household electricity meter reports one number: total power drawn, right now. Appliance-level insight — which devices drive the bill, when they run, which are worth upgrading — traditionally requires submetering hardware installed per device, which most homes will never have. Energy disaggregation (NILM) tackles this with software alone: it exploits the fact that appliances leave recognizable fingerprints in the aggregate signal (a kettle’s sharp 2–3 kW step, a fridge’s periodic compressor cycle, a washing machine’s staged sequence) and attempts to decompose the whole into its parts. It is a genuinely hard inference problem — the signal is noisy, appliances overlap, and homes differ — which makes it an excellent vehicle for learning time-series modeling done honestly.
The pipeline follows the established NILM structure. The dataset work comes first because NILM lives or dies on signal hygiene.
UK-DALE records real UK homes with a whole-house meter plus per-appliance submeters — the ground truth that makes supervised disaggregation possible. Download the channels you need (whole-house plus a handful of clearly distinguishable appliances: kettle, fridge, washing machine, dishwasher, microwave), and inspect before modeling: sampling rates (channels differ — high-frequency whole-house data and lower-rate appliance channels), gaps and dropouts, timestamp alignment, and per-appliance on-power signatures. The dataset’s documentation describes its structure and access path; read it and record exactly which recordings and date ranges you use, because reproducibility depends on it.
Resample all channels to a common, modest rate (NILM work commonly uses 6-second aggregates; the dataset provides low-rate versions suitable for this). Handle missing intervals explicitly — build masks rather than interpolating silently — and align appliance channels to the mains channel on a common time grid. Compute each appliance’s on-power statistics and duty cycle; you will use them both for labeling and for sanity-checking model output later.
Slice the aligned series into fixed windows (for example, a few minutes of aggregate signal per sample). For each window, derive the target: a per-appliance on/off sequence or an energy-share vector, depending on your model family. Define “on” from each appliance’s recorded on-power (a kettle is on only above a clear wattage threshold), and check class balance — some appliances run rarely, and your splits must reflect that.
Two legitimate routes, both instructive. Feature-based: extract edge detection, steady-state transitions, and window statistics, then classify events or regress power shares with gradient-boosted trees or logistic models — interpretable and cheap. Sequence models: train an HMM per appliance (the classic factorial-HMM baseline) or a neural sequence model (seq2seq/seq2point-style CNNs or RNNs) that maps aggregate windows to appliance sequences. Implement the simple baseline first; it calibrates expectations and often embarrasses careless neural variants.
Split by time (train on early months, test on later ones) and, where the dataset supports it, by home — train on some houses, test on another. Random window splits leak appliance routines across the boundary and produce inflated numbers. The home-transfer split, in particular, teaches the central NILM lesson: signatures vary between households, and models that only memorized one home’s patterns fail honestly.
Report per-appliance MAE on power and F1 on on/off detection — never a single blended score. Show which appliances work (high-power, distinctive loads like kettles) and which do not (low-power or similar-signature loads), with confusion between similar appliances quantified. Add energy-rank accuracy over a day or week: does the model at least rank appliance consumption correctly, even when instantaneous estimates wobble? This rank view is often the most honest useful summary.
Store predictions and metrics in a small database (runs, models, per-appliance results), and build a viewer that plots aggregate signal with overlaid per-appliance estimates for any test window. Being able to see a wrong decomposition is the fastest route to understanding model failure — and the feature that turns a notebook into a project.
A minimal but complete MVP:
Explicitly out of MVP: many-appliance joint models, online/streaming inference, cross-dataset transfer, unsupervised disaggregation, and any integration with a real home’s live meter. All are strong extensions; none are MVP obligations.
This project decomposes one signal into many appliances — a source-separation problem — and it is distinct from every neighbor it might be confused with. The Predictive Maintenance Alert System for Industrial Sensors forecasts equipment degradation from multivariate industrial sensor histories; #062 has no failure notion at all — its target is consumption attribution in a home. The Real-Time IoT Dashboard Builder visualizes device streams but applies no model; #062’s core is the model. And the Inventory Forecasting for Small Ecommerce project forecasts future demand from sales history — prediction over time — whereas disaggregation infers hidden composition within the present signal. Different data, different question, different failure modes.
| Tool type | Approach | Limitation |
|———–|———-|————|
| Commercial NILM services | Vendor platforms bundling utility data | Closed models; not inspectable or trainable by students |
| Research codebases | NILM reference implementations | Research-grade; heavy setup; rarely tutorial-oriented |
| Energy-monitor hardware | Per-device smart plugs | Accurate but costs money per outlet; the exact friction NILM avoids |
| Utility billing portals | Monthly aggregate views | No appliance insight whatsoever |
This project’s differentiators: a student-buildable pipeline on an established open dataset, two model families compared under leakage-safe splits, per-appliance honesty (MAE + F1 + energy rank), and explicit behavioral-privacy handling.
Browse more Project Ideas · Advanced Ideas · IoT Ideas
A research project that studies how prompt injections persist across agent sessions — building a stateful evaluation harness that measures...
A research project that measures, for the first time at registry scale, how much tool-poisoning risk actually exists across public...
A research project that measures the full trade-off curve between prompt-injection resistance and task utility for LLM agent defenses —...
Looking for something more accessible? Try these:
Published on September 12, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.
Published on September 12, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.