Skip to content

The Signal Report

TheThinkingHome edited this page Aug 22, 2026 · 3 revisions

The Signal Report

The signal report answers one question: which radio links are worse today than they usually are. It is an HTML page written beside the daily brief and on Regenerate Reports, and it replaced the signal dwell chart in 0.16.11.

What a Bad Signal Day Is

Every device is judged against its own history and never against a fixed number or against other devices. A sensor two rooms from the coordinator lives its whole life at a level that would mean trouble for one in the same room, and both can be perfectly reliable.

Each night, at the fold, every device's readings for the day become two numbers: the time-weighted fifth percentile of its signal, and the time-weighted median. The fifth percentile is what the judgment uses. It is the low edge of the day rather than the single worst packet, because one bad packet is noise: on the reference fleet the daily minimum sits a median 1.17 of a device's own deviations below its fifth percentile.

That day is then compared against the days before it. The median of the baseline days is the device's normal, and the population standard deviation of those days is its spread, which is how much that device wanders when nothing is wrong.

A day is bad when both of these hold:

  • The fall from normal is at least the drop setting for that device's scale, 25 LQI points or 6 dB by default.
  • The fall is at least the sensitivity setting measured in the device's own spreads, 4 by default.

Both gates are needed and neither works alone. The absolute fall stops a trivial move on a very steady device from counting, because a device whose fifth percentile normally varies by one point counts an ordinary wobble as many spreads. The spread gate stops a jittery device being flagged every day for doing what it always does.

A day is left unjudged rather than judged badly when there is not enough history (fewer than four usable baseline days), when the day's own reading is unusable, or when the baseline holds both positive and negative values, which means two measuring scales landed in one series and its median would be a number with no meaning.

The Two Scales

LQI runs 0 to 255 and higher is better. RSSI is in dBm and closer to zero is better. Each device is judged on whatever it reports and the two are never mixed. The drop gate is in the device's own units for the same reason: a percentage of an RSSI number means nothing.

Readings stuck at a rail value, 255 LQI or -128 RSSI, are stale reports rather than strong or weak links. They never feed the learning, and a device pinned there for three or more days is flagged as railed, which is its own finding and does reach the problem list.

Devices Worth a Look

The top of the page is a strip: one row per device, worst first, one cell per folded day. Each cell is shaded by how far that day sat below the device's own normal, measured in that device's own spread, so a steady link and a jittery one are read on the same scale. A ringed cell is a bad signal day. The area beside each name is where the device sits, which is not always where its router sits.

Only devices worth a look appear. A device earns its row when its worst day in the window fell three or more of its own spreads below its normal. Never fewer than five rows, so a quiet fleet still shows something to read a band against, and never more than twenty, so a broker outage that drops the whole fleet does not put the whole fleet on the page. The rest are counted in one line, and the full fleet is behind a toggle for when you are chasing something specific.

The shape to look for is a vertical band. Devices falling on the same day share a cause, and that cause is often one router rather than several failing devices. Routers serve by radio topology rather than by room, so the devices that fall together may be nowhere near each other.

Devices That Had a Bad Day

Below the strip, up to eight devices get a paragraph and a chart of their own: what the signal fell from and to, in points and in spreads, whether it has come back, and what happened to the device's reporting rate on the day. A reporting rate that climbs on the bad day is the link retrying, which is corroboration rather than a separate problem.

What It Does Not Do

Nothing on this page alerts, notifies, or joins the problem list. Signal alerting is deliberately held back while the recorded history matures, and the page exists so the judgment can be watched before it is trusted to wake anybody.

Where It Lives

The page is signal_report.html in www/device_sentinel/, with dated copies named signal_report_YYYY-MM-DD.html and fourteen retained. A dashboard Webpage card pointed at /local/device_sentinel/signal_report.html always shows the current one.

The four settings behind it are on the Signal Strength configuration screen.

Why the Dwell Chart Went

Dwell measured how much of the day a device spent below a danger line, and that line was derived from the device's own recent daily record. The record descends to meet a degrading device, so within a week a permanently broken link read healthy again. On the reference fleet a broken device's line fell from 226 to 139 in three days while its signal sat flat.

The fault was structural rather than a matter of tuning: any statistic measured against a line derived from the thing being measured will forgive a slow decline. The proof arrived with the first ground-truth event on record, a router unplugged on 18 August that took four devices with it. Dwell named one of them. The bad signal day names them all, because it compares a day against the days before it rather than against a line that has already moved.

Clone this wiki locally