Skip to content

Show the clock and build stamp on the status screen, move Wi-Fi Country to the Wi-Fi portal - #2

Merged
impuls42 merged 2 commits into
masterfrom
feat/status-screen
Jul 31, 2026
Merged

Show the clock and build stamp on the status screen, move Wi-Fi Country to the Wi-Fi portal#2
impuls42 merged 2 commits into
masterfrom
feat/status-screen

Conversation

@impuls42

@impuls42 impuls42 commented Jul 27, 2026

Copy link
Copy Markdown
Member

Three fixes from using the device rather than reading the code, after #1 landed.

Wi-Fi Country is now on the Wi-Fi page too

It was only on the Setup page, filed alongside the webhook URL and the six button labels. It is the setting that decides which channels a scan returns, so reaching it meant leaving the list of networks that was missing the one you were looking for.

setParamsPage() bundles two unrelated things: it sets _paramsInWifi, which gates whether parameters render and save on the Wi-Fi page, and it swaps the menu. Passing true confined every parameter to Setup. There is no per-parameter placement, so one field cannot be moved on its own.

What the flag does not gate is the Setup page, because handleParam() renders unconditionally. Turning the flag on and putting param back in the menu by hand gives both pages, and a save from either commits everything. Wi-Fi Country is registered first so that on the Wi-Fi page it lands under the network fields rather than below the button labels.

One behaviour change: saving from the Wi-Fi page now runs save_params_callback, which sets web_portal_saved_ and ends the portal. It did not before. That is the right outcome after changing networks, and since parameters are seeded from current state, a save that touched nothing writes back what was already there.

The status screen shows the clock and the build

Hold any single button for 2 s from idle:

- Battery -
   [icon]
    87 %
   3.92 V
  DC power
2026-07-27 16:25
build aa99f38a

The time is local, using the offset the receiver last reported. clock not set in its place is the visible symptom of a receiver that is not returning ts and tz_offset, which otherwise shows up only over serial and quietly stops the scheduled reset.

The build line is one line while the firmware and SPIFFS stamps agree and splits into fw and fs when they do not, so a forgotten uploadfs is obvious.

Both were already on the device info screen, but that is three steps into the settings menu and is not where anyone looks.

Verification

Both environments build, 26 host tests pass. The screen change is draw-only and the portal change is parameter registration, so neither touches the counter, webhook or reset paths.

Not yet exercised on hardware. The portal change in particular is worth a look in a browser before merging.

impuls42 and others added 2 commits July 27, 2026 17:15
where it belongs

Three things from using the device rather than reading it.

Wi-Fi Country sat on the setup portal's parameter page, among the webhook
URL and the button labels. That portal calls setParamsPage(true), so its
parameters render away from the network list, which is the one place the
country setting matters: it decides which channels the scan shows. It is
now only in the Wi-Fi portal, where parameters share a page with the scan
results, and where you already are when a network is missing from them.

The status screen, one button hold from idle, now shows the local time
and the build stamp. "clock not set" there is the visible symptom of a
receiver that is not returning a clock, which is otherwise only findable
over serial and stops the scheduled reset without any other sign.

The build stamp was already on the device info screen, but that is three
steps into the settings menu and nobody found it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFniCJ94a3sciMP9MtbPfs
Removing it from the setup portal fixed the placement by taking the field
away, which is worse than having it in the wrong spot.

setParamsPage() bundles two unrelated things: it sets _paramsInWifi, which
gates whether parameters render and save on the Wi-Fi page, and it swaps
the menu. Calling it with true confined the parameters to Setup. What the
flag does not gate is the Setup page itself, because handleParam() renders
unconditionally, so turning the flag on and putting "param" back in the
menu by hand gives both pages, and a save from either commits everything.

Wi-Fi Country is registered first so that on the Wi-Fi page it lands under
the network fields rather than below six button labels.

One behaviour change worth knowing: saving from the Wi-Fi page now runs
save_params_callback, which sets web_portal_saved_ and ends the portal.
That did not happen before, and it is the right outcome after changing
networks. Parameters are seeded from the current state, so a save that
touched nothing writes back what was already there.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFniCJ94a3sciMP9MtbPfs
@impuls42
impuls42 merged commit 8a013b5 into master Jul 31, 2026
1 check passed
@impuls42
impuls42 deleted the feat/status-screen branch July 31, 2026 21:04
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