Project: Soft Rains Entry 12

Chasing a ghost through the walls

Two weeks of lights cycling at night, a theory that was wrong, and a fix that meant deleting the clever part.

For the better part of two weeks the lights in this house cycled all night. Living room, both staircases, on and off and on, from about midnight until five in the morning, every night. I was not there for any of it. I was away for most of that week with a friend house-sitting, watching the whole thing through a screen sharing session into the Mac mini over Tailscale, which meant I could read every log line and could not walk into the living room and look. Somebody else was asleep in that house while its lights went on and off all night, which is roughly the worst possible way to find out that your hobby has side effects.

I only found it at all because I had started keeping a log of what the house does while nobody is watching, which I recommend, and also regret.

My first explanation was wrong, and it was wrong in a satisfying way

The first pattern I found was that the phantom motion trips seemed to land about nine seconds after a lights-off. That is a lovely explanation. The lights go off, something about the transition tickles the sensor, the sensor reports motion, the lights come back on, and round it goes. A feedback loop. It even explained why several rooms appeared to be doing it in lockstep.

I believed it for a day and a half. Then I actually counted, over two full nights, what preceded each phantom trip. Sixty of sixty-three on the first night, thirty-six of thirty-seven on the second, were preceded by nothing at all. No lights-off, no scene recall, no other sensor, silence. The nine-second thing was an artefact of the cycle itself: once the loop is running, everything is nine seconds after something.

So these were not feedback. They were spontaneous false positives from the radio-based presence sensing in the motion zones, firing into an empty dark house for no external reason whatsoever.

The reason it looked coordinated across rooms was the thing I should have seen immediately: one phantom trip fans out to every listener at once. A single false positive in the living room area feeds the Hue automation that owns the living room lights, the mirror that drives the staircase dimmer, the master stairs by way of the kitchen area, and both the morning news gate and the occupancy tracker. Five things react to one lie and it looks like five independent problems. I had been treating them as five independent problems.

Measuring instead of guessing

The sensitivity on those areas was at three out of four. I dropped the living room and kitchen to two and then, rather than declaring victory, counted phantom trips per night for four nights running with everything else held still.

Living room: sixty-two, then thirty-five, then nine, then about five. Down eighty-six percent from the baseline, which is a real result. Kitchen: nine, six, eight, eleven. Flat. Three nights of data saying clearly that sensitivity is not the kitchen's problem, whatever the kitchen's problem is, and I still do not know.

And the lights still cycled. Five phantoms a night is a big improvement on sixty-two and it is still five times a night that the staircase dimmer gets struck down from fifty percent to twenty-seven and back. The measurement nights recorded sixteen strikes on the stairs, against fifteen, eighteen and eleven on the earlier nights. Essentially unchanged. I had made the sensor quieter without making the house stop.

The fix was to take the clever part out

So I did something I would have argued against a month ago. The stairs are switch-only now. I removed the motion sources from both stair dimmers entirely. No presence detection on the staircase at all, just the paddle, with the circadian behaviour kept so the brightness still follows the time of day. That last part matters more than it sounds, because a few entries ago I made a whole argument about how the dangerous failure is dark stairs at three in the morning. It still holds. The answer is that the paddle at three in the morning still strikes at fifty and settles to twenty seven, rather than giving you a faceful of daylight, so the thing I actually calibrated survived. What I removed is only the part that decided when.

They stopped striking that night, obviously, because nothing was left to strike them.

I want to be honest that this bothers me. Motion-driven stairs were one of the first things I built here, I calibrated the brightness against a light meter to get it right, and I wrote about doing it. Undoing it feels like losing. The steelman for doing it anyway is that the automation was only ever worth having if it was more reliable than reaching out and touching the paddle, and it demonstrably was not, and the honest version of this log has to include the bits where I take something out.

There is a version of me that spends another fortnight chasing the last five phantoms through the radio layer. I might still. But I have been slowly working out that a lot of what I have been calling debugging is really me being unwilling to admit that a particular piece of cleverness was not worth its upkeep, and the stairs were that. The living room lights still recall on a residual phantom about nine times a night. That one is still open, and it is the next thing.