diff --git a/docs/custom-cli.md b/docs/custom-cli.md index 4469651c..0da69ef0 100644 --- a/docs/custom-cli.md +++ b/docs/custom-cli.md @@ -70,7 +70,7 @@ Legacy dotted aliases are also accepted: - `get web` - `get web.status`: shows whether the local HTTPS panel is available. -- `get web.stats.status`: shows whether the dedicated stats page and history subsystem are enabled, whether recent history is active, whether PSRAM-backed history is available, and whether the SD-backed archive is mounted. When enabled, the history capture now covers supported environment telemetry too, not just the original battery/radio series. GPS-enabled boards also record per-minute satellites samples for the `/stats` history view. +- `get web.stats.status`: shows whether the dedicated stats page and history subsystem are enabled, whether recent history is active, whether PSRAM-backed history is available, and whether the SD-backed archive is mounted. When enabled, the history capture now covers supported environment telemetry too, not just the original battery/radio series. GPS-active boards also record per-minute satellites samples for the `/stats` history view. - `set web on|off` - `set.web on|off`: enables or disables the local HTTPS panel. - `set web.stats on|off` diff --git a/docs/web-panel.md b/docs/web-panel.md index 3eb2d7ba..3d983831 100644 --- a/docs/web-panel.md +++ b/docs/web-panel.md @@ -229,13 +229,13 @@ The `/stats` page currently shows: - `Services`: MQTT, web, archive, neighbour count, and, when mounted, card and archive capacity - optional full-width `Environment` summary card on boards that report GPS or environmental telemetry -- `Trends`: battery, heap free, packet activity, signal, noise floor, and, when GPS is enabled, satellites +- `Trends`: battery, heap free, packet activity, signal, noise floor, and, when GPS is active, satellites - `Neighbours`: current neighbour table with ID, SNR, heard age, and advert age - `Events`: current boot/session events Planned MQTT JWT rotations are shown as `mqtt_token_refreshed` events instead of a short `mqtt_disconnected` / `mqtt_connected` pair. -For boards that expose extra telemetry, the optional `Environment` summary card can show current values such as GPS fix state, latitude, longitude, GPS altitude, voltage, sensor temperature, humidity, barometer, pressure-derived altitude, and MCU temperature. +For boards that expose extra telemetry, the optional `Environment` summary card can show current values such as GPS active/fix state, latitude, longitude, GPS altitude, voltage, sensor temperature, humidity, barometer, pressure-derived altitude, and MCU temperature. Metrics with no current value are hidden rather than showing placeholder rows, so the cards vary by board and by current sensor state. @@ -248,7 +248,7 @@ The trend graphs load sequentially rather than as one large payload: 3. memory 4. packet activity 5. signal -6. satellites when GPS is enabled +6. satellites when GPS is active This keeps browser-side and device-side memory use lower than the previous in-page stats view. diff --git a/examples/simple_repeater/MyMesh.cpp b/examples/simple_repeater/MyMesh.cpp index fb6a6586..4b2a0714 100644 --- a/examples/simple_repeater/MyMesh.cpp +++ b/examples/simple_repeater/MyMesh.cpp @@ -55,10 +55,13 @@ WebSensorSnapshot collectWebSensorSnapshot(mesh::MainBoard& board, SensorManager LocationProvider* location = sensors.getLocationProvider(); if (location != nullptr) { snapshot.has_gps = true; - snapshot.gps_enabled = location->isEnabled(); - snapshot.gps_fix = location->isValid(); + const bool provider_enabled = location->isEnabled(); + const char* gps_setting = sensors.getSettingByKey("gps"); + const bool setting_active = (gps_setting == nullptr) || (strcmp(gps_setting, "1") == 0); + snapshot.gps_enabled = provider_enabled && setting_active; + snapshot.gps_fix = snapshot.gps_enabled && location->isValid(); const long satellites = location->satellitesCount(); - if (snapshot.gps_enabled || satellites > 0) { + if (snapshot.gps_enabled) { snapshot.has_satellites = true; snapshot.satellites = max(satellites, 0); } diff --git a/release-notes.yml b/release-notes.yml index 64ad8772..93126460 100644 --- a/release-notes.yml +++ b/release-notes.yml @@ -527,3 +527,15 @@ releases: area: readme text: "Updated the README to describe EastMesh as an Eastern Australia community mesh network, introduce CoreScope telemetry, and warn that MQTT repeater builds are intended for Eastern Australia repeaters only." breaking_changes: [] + + - track: repeater-mqtt + version: "1.3.14" + tag: "repeater-mqtt-eastmesh-v1.3.14" + date: "2026-04-28" + previous_version: "1.3.13" + summary: "TODO: Change me later" + changes: + - type: fixed + area: stats + text: "Updated `/stats` GPS gauges and satellite trends to respect the active GPS setting so boards that report GPS hardware as on but deactivated after `gps off` no longer keep satellite metrics visible." + breaking_changes: []