Electricity quality or noise score

I think sense should give a “noisy” score to sense users, rating the quality of the power signature in their home.

After doing a bunch of reading over the past week, it seems like 2 things impact how effective device detection is over time: First, how distinctive the devices signature is (e.g., compressors are easy to find due to their startup). Second, how “noisy” the electrical signal is; many people saying who have issues with device detection are saying that sense support team is telling them it’s because of a “noisy” power signature in the home.

It would be great to know if my device detection is being hindered by noisy power consumption. If so, I would try to locate the device(s) causing the noise and put them on smart plugs so sense could net out the noise to improve device detection throughout my house.

Sense should make it easy for users to understand if there is a noise issue and then provide instructions on how to remedy the issue. That would allow users to have better device detection, increasing satisfaction with the product. Also, the improved device detection and reduced noise should help sense improve its machine learning, even further improving device detection and customer satisfaction!


That’s a great idea, but I’m not sure that it’s entirely possible. Creating something like a signal to noise ratio means being able to quantify both the “signal” (patterns that Sense understands) and the “noise” (patterns that Sense can’t likely understand in the long run). Unlike typical electrical signals we can’t use frequency domain measurements (FFTs) to help us, because both the signal and noise are scattered about the spectral frequencies. The only real discriminator between whether something is signal vs. noise, is whether Sense is able to find the pattern.

You could crudely establish a SNR based on RMS power of detected devices vs. RMS power of unfound devices (Total Usage - Found Devices - Always On = Other !), but that doesn’t reflect what Sense might be capable of as time goes on, and wouldn’t really be helpful to figure out if there is one underlying device that is hindering discovery. Probably better that you experiment with removal of large usage devices that are not yet detected, and are active during parts of the day where other active devices aren’t being found.

Based on my early proposed formulation, the SNR for my house could be found in the plot below - the pink area (noise energy) vs all the other colors (signal). FYI - I have supplemented my Tesla data from other sources, beyond Sense, since Sense is only finding one of our two EVs (the M3) part of the time.

BTW - I’m not so sure that a smartplug sampling at 2x/second can be used to de-noise (net out) a Sense-measured set of signals/features that are based on data sampled at 1Mx/second. The smartplug entirely misses (RMS averages) all the really important signal stuff that is going on against the 60HZ AC waveform. But the smartplug data from devices is very important as input to ML training, a very different usage.


I thought noise was largely based on the “jumpiness” of the data, which is why things like plasma and OLED TVs create problems (as their power draw is constantly changes depending on the brightness required from the screen). So a score would be based on how steady the signal is when devices don’t appear to be being turned on/off, as well as how frequently devices seem to be turned on/off.

I also thought I heard other people say that plugging noisy appliances into smart plugs helped them, and that sense support recommended it (though I might be misremembering). Another option someone mentioned (that I can’t imagine sense would ever officially recommend) is to run the wires for the noisy circuit through the CT line so everything on that circuit gets netted out of what sense reads–you lose the ability to track anything on that circuit, but sense can get a better read on everything else. I think this could also be solved by Sense allowing for people to use CTs on individual circuits, which many people have already requested on this forum.

Well you are right in so far as, let’s say, you were just using an OLED TV: What you would see in the overall Power Meter would be 100% Signal of a Noisy device. What @kevin1 points out is that if Sense could detect the TV then your SNR would be great, perfect in fact in this case (“100%”). Add, say, another identical TV that Sense can likewise detect … but it can’t distinguish from the other TV. What’s your SNR now? In real scenarios with more complexity in the “signal” the detection ratio itself becomes very noisy.

That ratio is going to be quite variable … but with smoothing one can imagine it might be a usable instantaneous metric when trying to isolate “noise”. Realtime graphing of detection accuracy (Sense-native vs. smartplug) could essentially do the same thing, albeit at a lower resolution.

Smartplugging devices (especially noisy ones) certainly helps with detection of that device. It effectively bypasses the detection process altogether because the known-to-be-the-device power data is simply being sucked up by Sense. Sense nevertheless uses the data to feed back to the ML to improve it’s own native (smartplug-less) detection, as @kevin1 details. What is doubtful at this stage is whether that really helps now with aiding detection on non-smartplugged devices. I’ve argued before that it helps now for later, so it helps now, so smartplug it!

You can actually use CTs on individual circuits. I am.

1 Like

You make some very good points… You’re forcing some thought exercises on my part :wink: A few thoughts for you (ps: there are all conjecture based on my interpretation of Sense’s blogs, plus my dangerously incomplete knowledge of ML and electrical engineering)

  • Transitions are where all the identification information lives for Sense. There’s almost no information in stable or very slowly changing levels, though the durations of stability are useful (but also defined by data embedded in starting and ending transitions). The point is that “jumpiness” represents lots of possibly useful information for Sense - it could be the transitions of many devices.

  • Today, Sense predicts and identifies devices based on models that have a discrete on-signature and an off-signature. Conversely, Sense doesn’t currently try to detect on-through-off patterns. Rather it will build composite device detections (like a washing machine) out of a connected time series of on-signatures and off-signatures.

  • The original Sense models were based on fundamental physics of AC responses of relatively passive devices: Resistive elements like toasters, water heaters, oven and dryer heating elements. Inductive devices connected directly to the power line, like motors, fans, non-inverter microwave ovens. Hybrids elements that look like mixture of resistance, capacitance and inductance, like incandescent or florescent bulbs (incandescent bulbs have inductance and a time-dependent resistance as the filament heats up). Each of those reveals it’s characteristic on and off time domain response in less than 1/2 second. I’m guessing that Sense model also includes the characteristics of the switch or relay that turns these devices on/off, because we’re not talking about ideal switches.

  • Note that this leaves out devices where the plug connects to more complex active electronics, like most modern power supplies. They have much more complicated power use profiles that are typically based on feedback from the DC output voltage, post-smoothing capacitor, back to some kind of regulator or switching device. Bottom line is that the power usage on the input prongs varies based on a time distorted/expanded version of the usage of the internals (more on that later). So there is the possibility that Sense could measure the power/energy transitions that don’t fit fundamental physics. But that measure might not be so useful since Sense has other identification tools in it’s bag of tricks.

  • Sense is adding the capability to identify “manufactured waveforms” for EVs. These are programmed waveforms with much longer on and off signatures, that are designed to be easy of the batteries. They seem to be hard to find because each car model uses a different set of parameters, that might also vary depending on the current charge level of the battery, plus with different versions of OTA software.

  • Sense has several other techniques for doing identification that convert waveforms that don’t fit the basic physics into “signal” - things like NDI identification, or smart plug and Hue integrations.

  • There’s also a chance that eventually Sense might be able to sort out at least some of the components of things like LED TVs, since some elements, like the display have somewhat repetitive refresh patterns of power consumption, at least when the screen is changing slowly. One might be able to detect the harmonics of those regular patterns even after the distortion of the power supply. We’ll see.

One other thought - A smartplug might not be good at netting out the noise from a device, but it could be used to characterize and compute the “noise” emitted by a device. Sense can separate out three components for a device on a smartplug:

  1. The power that Sense is able to detect - the signal
  2. The power going to Always On - the offset (we don’t count as noise)
  3. The power going to undetected transitions - the total minus 1) and 2)

Let’s say you have 10 devices in your house, no devices are detected, and 3 of those devices have very high variance signals (constant changes in draw, like an OLED). If you put smart plugs on those 3 devices, sense would immediately detect them, and there would only be the 7 remaining devices remaining in the “other” category, and that category would now have very low variance (since the remaining devices have a more steady signal). This should make it more clear when one of those 7 devices is on or off, making it easier for the ML to identify them. Is that not correct?

Thanks for the detailed response. A few questions…

My understanding is that sense is primarily looking at the “Other” category to detect new devices. That is, it will take the total meter and net out the usage of any recognized devices. Within the Other category, it is primarily looking at the changes that could signal an on or off signature to identify potential devices. If the Other category contains noisy devices (things that have constant changes in the power draw), it makes it more difficult to accurately measure on or off signatures, and therefore more difficult to detect devices.

But, if those noisy devices have been detected (e.g., with a smart plug), they will no longer be in the Other category. So now the Other category will be less noisy, making it easier to detect on or off signatures, and so easier to detect devices.

Is that not correct?

OK - here’s what I think happens in Sense-land, but only speculation:

First the math:

  1. From the specs - Each Sense produces up to 4 million 2 bytes samples / sec - I assume the fastest rate is for Sense with Solar. I’m also guessing that the sampling is asymmetrical with current getting many more samples than voltage because the power company essentially forces the voltage on the lines to be 120V AC, and has to respond to current needs to maintain that AC voltage level.
  2. 1 month of operation produces 8MB/sec x 2.6Msec/month of raw data = 21TB / month
  3. From data I have seen on the forum, Sense uploads about 3.6GB / month. That’s about a 6000x reduction. Still a lot to sort through.

My suspicion is that the Sense monitor does a lot of number crunching to reduce the uploaded data. I’m thinking it feeds the Sense mother ship with:

  1. A steady stream of 1/60th second averaged power data for each phase
  2. A stream of highly processed, but detailed data on transition events that fall into select parametric windows - windows that match up with fundamental physics identification.
  3. A separate stream of 1/2 second readings from all of the smartplugs that the Sense monitor is conversing with.
  4. All the needed stuff to manage and control the monitor’s operation
  5. Maybe local calculation and uploading of Other and Always On as well ??

I surmise this based on a few of the screens that I have seen in open videos of Sense’s internal tools, that show detailed power waveforms for each leg, plus cluster diagrams that show multiple dimension clustering of transition events.

Here’s where it gets tricky:

  • Most of the detection processing is done on that transistions/events database. Sense uses clustering and perhaps dozens of features gleaned from those transitions to classify discernible clusters (transitions that are parametrically very close across some set of those features).
  • Once Sense has found a discrete cluster with some certainty, it becomes a detection. Sense then compares that cluster against it’s crowd-sourced database of clusters for closeness and produces the category choices via logistic regression.
  • Once a cluster has been identified/categorized, Sense takes that cluster, including all new entries from newer fitting transitions, out of consideration as a new device. To be clear, the removal of the device does NOT come from subtracting off waveforms from smartplugs or existing detections, but from removing in the cluster space.
  • Sense might do some removal of transitions it “sees” on a smartplug from the transitions data pool, to reduce detections of devices already on smartplugs, but I’m guessing there are some timescale challenges to doing so reliably all the time. So if Sense does this, putting a smartplug on a noisy device might help remove datapoints that are unlikely to deliver meaningful clusters.
  • But the larger noise issue remains - a noisy device transition might often step on a smaller real physics transition. If they both get blended, due to overlap, there’s no way to reconstruct the real-physics based one using information from the smartplug.
  • Over time, Sense might tweak with which transition features it extracts using the monitor or some mod the weighting it uses to detect clusters based on additional training and model development. Plus things may change in your house that cause new categorizations to occur as well as new detections.

It’s interesting to get more insight into how this likely works (that is a ton of data, and as someone on a limited data plan, I appreciate them sending only the transition events!). But that doesn’t really help me understand why you think a smart plug on noisy devices wouldn’t help sense identify other devices. Based on what you’ve said, I believe everything in my post would still work (i.e., using the smart plug to identify the noisy device, removing that noise from Other, making it easier for sense to identify the on/off signatures in the Other category and begin identifying those devices).

If it were only that simple:

Putting 3 noisy devices on smartplugs will allow the plug to generate data at a sample rate of a 1/2s … and the Sense would have to grab and process (let’s say sum) that non-synchronus data and then subtract it from the 10-device signal … meanwhile, the 7 devices have “moved on” and the summed data from the 3 smartplugged devices would not be very relevant in the next sample time. Remember that Sense is doing most of it’s magic in very small sample periods.

In general the smartplugs will help but they are not overcoming the realtime physics required here … a smartplug with a sample frequency equal to, or ideally 10x greater than, Sense starts to get interesting but the data size and feed delay would be very taxing and beyond what the current Sense could handle.


Ah… so smart plugs only sample every 0.5 seconds? That definitely adds a significant challenge. Maybe sense should start making their own smart plugs :slight_smile:

There may still be some good solutions out there, but the only one I can think of is mediocre at best. Solely for the purpose of device detection, sense could have a second “feed” that essentially matches the 0.5 second sample, and a second ML algorithm built to look at that feed. It wouldn’t be quite as precise at identifying devices, but would still work a bit. Probably a bad idea, but wanted to throw it out there…

Even if the smart plugs aren’t valuable as I was hoping, I do still think it would be valuable for users to see a noise/quality score, at the very least to help set their expectations for the performance they will get out of device detection.

I agree it’s a nice idea.

Somewhere I mentioned the idea of a “fuzzy bubble” in a similar regard (simple to understand UI).

Don’t hold your breath on a Sense-made smartplug. There has been a lot of discussion about that but the general consensus is: ain’t happening.

IMHO multiple Senses is the way to go. I think if more people adopt them for use in that way Sense will eventually (pure conjecture here) retool (add a mode) to allow the Solar CTs to be used for device monitoring. Even 2/4 individual 120V devices. Meanwhile your second Sense Mains can be used for a 208/240V device and if you can deal with the funk to your waveforms, the Solar CTs can be used for another device.


Sense Solar

Sense Sub?


Compare against the state-of-the-art research in energy disaggregation research way back in 2012.

  • 15kHz mains sampling
  • 3 sample / sec probes on the different house circuits
  • 1 sample / sec smartplugs that probably cost hundreds each…

I’ve liked the post about adding functionality for more CTs. Those could probably be used the way I was describing the smart plug (net out the “noisy” circuits to improve identification on the remaining circuits).

It would be cool if they had a product that allowed for expandable CTs. Say, you get a poor signal quality score, so you identify 3 circuits that seem noisy, then you purchase 3 additional CTs for $15 each and place them on the 3 noisy circuits…

Kevin: I also meant to say that I love the “stacked” net metering you have in the image you shared, and I really wish that was an option within Sense.

1 Like

What’s Law?
That’s 266X in 7 years so we should be good by Thursday!

1 Like

Two thoughts.

@ixu 's thinking is on track. You can’t add CTs without having commensurate sampling CPU and reporting bandwidth. Speaking from experience, the current Sense monitor is pretty much tapped out on processing power handling the mains, solar, plus incoming data from about 20 smartplugs (HS300 counts as more than 1 but a little less than 6). So you really need a new Sense box for every 4 CTs. And even then, you would probably want ealtime subtractions of noise to happen in a single Sense monitor. So I’m guessing that Sense would need to move to a new architecture if they wanted to do at-speed “noise cancellation”.

As for the “stacked area” and “stacked column” charts - I’m sure Sense will get around to adding more reporting graph options. I’m hoping that they add a degree of customizability and capability similar to Quicken or Mint for finance. In both of those you can do graphs on preset or customizable time periods, by selected/all categories and subcategories (a mixture of predefined plus user defined), and by custom tags…