For six months, one sentence has sat underneath almost everything my sump pump's controller does: the float is stuck. When the pump is still drawing power at the end of a pulse, the controller reads that as the float switch jammed in the "on" position, and every four hours it runs a routine to shake it free. That routine has reached its pass/fail check 755 times. It has passed six, and none of those held.
This morning I went looking for the reason the sentence was ever believed. I did not find one. What I found is a number the system has been collecting all along and never compared against anything.
When the float works, my pump empties the pit in a median of 30 seconds. In its current mode it runs in 120-second pulses, and all 148 pulses of the last two dry days ran to the end at full power. I recorded one of them second by second this morning. The draw at second 120 was the same as at second 5. The pump is either moving water it should not have, or it looks exactly the same when it has nothing to move. The logs cannot tell me which.
The history nobody used
The monitor logs every time the pump starts, and every time it stops on its own, meaning the relay stayed on but the power fell to zero because the float dropped and opened the circuit. Those self-stopped runs are the pump working exactly as designed. Since February there have been 344 of them.
| Float-ended runs, Feb 23 to Sep 22 | Count |
|---|---|
| Stopped within 30 seconds | 262 |
| Within 1 minute | 282 |
| Within 2 minutes | 319 |
| Longest | 6.1 min |
Median: half a minute. And the float has not been dead all year. It ended 62 runs by itself in September alone, most during the short stretches when the controller dropped back to normal mode.
That is a calibration set. It says how long it takes this pump, in this pit, to clear the water when nothing is wrong. I had it the whole time. So did the controller.
What it predicts
You can push the calibration further. For 187 of those runs the log also shows how long the pit took to refill before the next start. Refill time and pump-down time together give the inflow rate at that moment. Scale it to the ten-minute rest between pulses in the controller's top tier, and ask: how long should the next pulse take to clear what built up?
The median answer is 15 seconds. Only 15% of the measured moments predict more than two minutes.
Now the other side. The controller has run 15,450 of those two-minute pulses since March. Forty-six of them ended early because the pump stopped on its own. The rest, more than 99.7%, were still drawing power at the two-minute mark, median 491 watts.
And 491 watts is the number to look at. When the float starts a normal run, when there is definitely water to move, the pump draws a median of 493.
Second by second
The controller only samples power once, at the end of a pulse. That leaves room for a comforting story: maybe the pump drains the pit in the first 30 seconds, and something happens in between that one sample does not catch.
So this morning I polled the plug once a second for fifteen minutes from my laptop and caught the 7:09 pulse, about 39 hours after the last rain.
| 7:09:38 to 7:11:37 pulse | Watts |
|---|---|
| First 10 seconds | 480.8 |
| First 30 seconds (when a working float would usually have stopped it) | 475.6 |
| Seconds 30 to 120 | 469.9 |
| Lowest single reading | 454.4 |
A drift of about one percent, well inside the noise. No step, no dropout, no sputter. The current sat between 8.4 and 8.7 amps the entire time. Whatever the pump is doing at second 5, it is still doing at second 119.
Three stories that fit
Here is where I have to be careful, because each of these fits every number above.
- The float is stuck, and the pump runs dry at nearly full power. This is the controller's story. It needs one fact I do not have: what this pump draws with no water at its intake. I have never measured it. If it were true, the pump would be running dry for roughly a minute and a half of every pulse, about 119 pulses a day. That is not a monitoring problem. It is a pump that is being worn out.
- Water is coming back. A failed check valve, or a leak in the discharge pipe inside the pit, would let the pump recirculate the same water. The pit never empties, the float never drops, and the power looks like honest work. This is the diagnosis my AI watcher was once told to believe in its prompt. I criticized that, because nobody had tested it. Today's data does not test it either, but it does fit.
- The inflow really is that high during pulse hours. My calibration runs come from the 7% of the time the controller is in normal mode, and it leaves normal mode because runs get long. So the calibration set is biased toward calm hours. This is the honest weakness in the argument. It is weakest on a second dry day, but I cannot rule it out from here.
What I can say is that the controller's reasoning, "still running at the end, so the float is stuck," has never once been checked against a moment when the answer was known. Every one of the 755 unstick tests was graded by a signal that looks the same under all three stories.
A reading that never changes is not a measurement of the thing you think it measures until you have seen what it looks like when that thing is gone.
The two-minute test
No amount of power data settles this. Sampling ten times faster would not help; I just went from one sample per pulse to 120 and learned nothing new about the float. What settles it is a second channel, and the cheapest one is my own eyes.
Stand at the discharge outlet, or lift the pit lid with a flashlight, during one pulse, from about second 30 to second 120:
- Water flows out the whole time: the pump is working, the float may be fine, and the four-hourly unstick routine has spent months fighting water instead of a float.
- Flow stops, motor keeps humming: the float is stuck, the pump runs dry most of every pulse, and the fix is a new float switch, this week.
- Water visibly falling back into the pit: check valve or pipe. Also a hardware fix.
There is a line in my project's status file that says "verify check valve, test float." It has been unchecked since March. Every automated routine I have written since then has been downstream of it.
For anyone monitoring equipment by power draw
Power monitoring is the best cheap sensor there is for small buildings. A smart plug or a current clamp on a pump, a compressor, or a fan gives you a lot for twenty dollars. But a watt reading only means something next to a reference, and the reference people forget is the failure itself.
- Record what normal looks like while you still have it. One labelled trace of the equipment doing its job, second by second.
- Record what the failure looks like, once, on purpose. A pump with its intake out of water for ten seconds. A fan with its belt off. A compressor with the door open. If you cannot safely make the failure happen, know that your monitor cannot tell it apart from normal either, and say so in the alert.
- Use your own healthy history as a calibration set. The times the equipment finished its job without help tell you how long the job takes. When the equipment starts taking four times longer, that is a contradiction to explain, not a symptom to automate around.
- Before automating a fix, look once. Two minutes in the basement would have told me in March which of these stories is true.
Meanwhile, in the wider world
Boston Dynamics opened what it calls a "Robot Behavior Factory" this week: a permanent training center inside Hyundai's Georgia plant, where Atlas humanoids learn real assembly tasks next to the real line. Hyundai says it plans 25,000 of them. The robotics industry's answer to "it worked in the lab" is to put the lab inside the factory.
At basement scale the principle is the same, and much cheaper. Do not trust a rule about a site until you have watched the site. My version is a flashlight and a two-minute pulse.
The pump is still in its top tier, pulsing two minutes on and ten off, now on the second dry day. Six more unstick attempts failed overnight. The next pulse starts about twelve minutes after the last one, every time, which makes this the easiest experiment I have put off all year.
Know what your equipment looks like when it fails
I build sensor and edge AI monitoring for small buildings, and I publish my own mistakes as I find them. If you are watching a pump, a compressor, or a boiler by power draw, I can help you build the reference traces that make those readings mean something.
See what I build →