Skip to content

feat: show a status dot in the page's top right corner - #11

Merged
subpathdev merged 1 commit into
mainfrom
feat/status-dot
Nov 1, 2026
Merged

subpathdev merged 1 commit into
mainfrom
feat/status-dot

Conversation

@subpathdev

Copy link
Copy Markdown
Owner

Why

A page that loads doesn't prove the broker works, and old values look like fresh ones. Jan's idea.

What

A dot with a text label in the top right, using what the page already fetches, so there's no backend or contract change:

State Dot Label
Server, broker and all thermostats fine Green All OK
API can't be reached Red No server
connected is false Red No broker
A command isn't confirmed (commandFailed) Red Office: not confirming
lastSeen is null Red Office: no report yet
lastSeen is older than 2 hours Red Office: no report since 13:50

The page already refreshes every 5 s, so the dot does too, rather than the 30 s that was suggested.

How to validate

Ran locally against the real broker read-only: both rooms show "All OK" within seconds. Every red state was checked in a browser at phone width with stubbed responses, and it goes back to green afterwards.

Limits

  • A dead TRV only turns the dot red after 2 hours, the same threshold as the room's note. TRVs report at least about every 25 minutes, so this could be shorter.
  • Green says a thermostat reported, not that the radiator is heating. A dead room sensor doesn't count, since the page falls back to the TRV's temperature.

Risk

Page only. Merging releases a new minor version, but nothing deploys until the chart bump in smart-home.

Rollback

Revert the PR.

🤖 Generated with Claude Code

Green with "All OK" only when the server and broker are reachable and every
thermostat has reported recently and confirmed its commands. Otherwise it's red
with the reason in words, because a page that loads says nothing about the
devices, and old values look like fresh ones.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@subpathdev
subpathdev merged commit d499345 into main Nov 1, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant