-
Notifications
You must be signed in to change notification settings - Fork 0
Diagnostics and the Nerd screen
Two different tools. Diagnostics answers "is this working, and if not, where?". The Nerd screen answers "what exactly am I talking to?".
A full battery mirroring the server's own breeze-core diag:
- Connectivity, plus the server's build and advertised features — and the app's own version.
- Authentication and security posture — that the server rejects a missing or wrong key, and which endpoints are token-gated.
- This device's credential — auth version, and a warning as expiry approaches.
- Your device clock offset. A phone whose clock has drifted past the server's signature window fails every signed request, and this identifies it in one tap.
- Config secret-sanitisation — that the server does not hand back the API key or per-unit V3 secrets.
- Input validation — unknown unit → 404, out-of-range value → 422.
- Batch state and a live-stream check.
- Per-unit state, latency and hardware capabilities.
One deliberate omission: it does not probe the LAN-only admin endpoint
/api/auth/devices when you are remote. A single 403 there could get your address
banned by the server's fail2ban — and behind NAT, that takes everyone on your
connection with it.
The About row in Settings is just a version number. Tap it seven times — the gesture Android uses for developer options, with a countdown for the last three — and you get everything:
-
This app — version, package, platform, Dart runtime, and the resolved
version of every dependency, read from the shipped
pubspec.lockso it cannot drift from what is actually running. -
This connection — measured round-trip latency, auth version, and how the
server sees you: your IP, whether that reads as private, the Host header,
scheme,
X-Forwarded-For, proxy state. This is the fastest way to diagnose a reverse proxy that is not forwarding the real client address. - The server — version and build commit, OS, init system, CPU and architecture, every component version, install date, uptime, time zone, memory, the store paths and their file modes, the effective settings.
- Your air conditioners — addresses, credentials, cached capabilities, history depth.
- Everyone's devices — each enrolled client with its auth version, enrolment date, last use and expiry.
One button copies the lot as JSON, for pasting into a bug report.
It needs Breeze Core ≥ 3.0.5, which is where GET /api/system arrived.
Against anything older there is no partial version worth rendering, so it says
womp womp update your server and leaves it at that.
Breeze · Breeze Core (the server) · APKs · AGPL-3.0
Start here
Using it
- The control screen
- Home-screen widgets
- Android Auto
- Programs
- Diagnostics and the Nerd screen
- Multiple servers
- Settings and theming
Under the hood
The server