The Mechanics of Device Detection

Since I ‘discovered’ Sense, I’ve been curious about the mechanics of actual device detection. This is not meant to reverse engineer all the smarts that go into the AI/ML, but still, one (I) is very curious about the math/mechanics behind the detection algorithms. I do a lot of DSP (Signal Processing) in my line of work, and the application is primarily the detection of faults in mechanical machinery. There the signatures are often frequency-based. A hydraulic pump generates different frequencies than a 6-Cylinder-engine than a fan or gear pair. In electrical circuits however, the task is a bit more ‘complicated’ as all devices run at 60 Hz (at least, west of the Atlantic). Thus, what features of the signal does one need to detect various electrical devices? I came up with the following so far:

  1. Transient(s) when a specific device is powered. Hence the high sampling rate (4 MHz) Sense uses (and the high bandwidth it requires).
  2. Phase information (Cos Phi) between voltage and current. For any given/single device, the task would be easy. For electrical motors, the current and voltage have a phase difference (coils in the motor) whereas for a heater, it is primarily a resistive load and thus, the current and voltage are in-phase.

I’m guessing different devices (dish washer, fridges, micro-waves, …) would have very different transient signatures (#1) and that is how they are identified. Their signatures are compared to all the info out there that Sense harvests from similar devices across the whole user base.

What else? What specific attributes of the electrical signals (voltage and current traces) would Sense uses for detection?

I can think of a live/real-time computation of the instantaneous impedance (ratio voltage to current) and then using its three components (or maybe only two) to infer info about the (various) devices.

Any thoughts ?

A few thoughts for you:

  • Sense mainly relies on transitions in a very short sampling window for detection, something like 1/2 second if you read a couple of the older Sense blogs.
  • I believe that if you watch the Power Meter in the iOS or Android app, you’ll see Sense tagging all the candidate transitions, both on and off, and actually naming the ones that have been deemed consistent, unique device detections.
  • Based on some info shared in a webinar a while back, Sense uses maybe 20 or so features extracted from those candidate transitions to categorize the transitions (or not). A snapshot below from that webinar shows clustering of two of those features, power (feature 1) and p0 (phase0 - feature 17).

  • A few classes of devices that are big power users and have slower ramps (EV chargers and mini-splits) seem to use a similar mechanism but a longer time window.

Take a look at the Data Science section of this webinar

Also worth watching this if you want to sort out how Sense does it’s machine learning and detection.

Thank you very much, very useful information.