From df9b49292dd418fe701fb7a4902b46a5221af1c2 Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 5 Jun 2026 03:20:23 -0600 Subject: [PATCH] Show assigned temp probe addresses --- docs/project-state.md | 2 +- firmware/esp32/overland-controller/overland-controller.ino | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/project-state.md b/docs/project-state.md index 48ec1cb..a822ab6 100644 --- a/docs/project-state.md +++ b/docs/project-state.md @@ -163,4 +163,4 @@ Examples: 5. Add config backup/restore. 6. Improve BMS out-of-range behavior without changing NimBLE connect timeout. -- Fixed WebUI temperature probe scan by registering `/temps/scan`, `/temps/assign`, and `/temps/clear` firmware routes.\n\n- Added per-temperature-sensor `weather` flag and WebUI outside temperature badge with emoji thresholds: below 50°F ice, 50-74°F happy, 75-84°F sun, and 85°F+ fire.\n\n- Improved WebUI temperature sensor config checkbox layout with compact On/Weather controls.\n\n- Temperature probe assignment now enforces one logical slot per physical DS18B20 address; assigning a probe to a new slot clears the old slot mapping.\n\n- Added per-slot WebUI Clear buttons for temperature probe assignments using the existing `/temps/clear` API.\n\n- Fixed weather temp checkbox persistence by saving the `weather` flag from WebUI temp config and auto-saving checkbox changes.\n\n- Fixed temperature assignment clearing so Clear removes the stored DS18B20 address, disables the slot, clears weather flag, and resets cached temp state.\n\n- Hardened `/temps/clear` so clearing a temp slot removes the persisted DS18B20 address, disables the slot, clears weather flag, resets cached temp state, and supports clearing all slots with an empty POST body.\n\n- Removed legacy physical-scan-order fallback for unassigned DS18B20 slots; enabled slots now require an explicit assigned address before reporting a value.\n\n- Filtered DS18B20 scan results so already-assigned probe addresses are hidden until cleared from their configured temp slot.\n\n- Moved WebUI Temperature Assignment card directly above Temperature Sensor Config for better setup flow.\n \ No newline at end of file +- Fixed WebUI temperature probe scan by registering `/temps/scan`, `/temps/assign`, and `/temps/clear` firmware routes.\n\n- Added per-temperature-sensor `weather` flag and WebUI outside temperature badge with emoji thresholds: below 50°F ice, 50-74°F happy, 75-84°F sun, and 85°F+ fire.\n\n- Improved WebUI temperature sensor config checkbox layout with compact On/Weather controls.\n\n- Temperature probe assignment now enforces one logical slot per physical DS18B20 address; assigning a probe to a new slot clears the old slot mapping.\n\n- Added per-slot WebUI Clear buttons for temperature probe assignments using the existing `/temps/clear` API.\n\n- Fixed weather temp checkbox persistence by saving the `weather` flag from WebUI temp config and auto-saving checkbox changes.\n\n- Fixed temperature assignment clearing so Clear removes the stored DS18B20 address, disables the slot, clears weather flag, and resets cached temp state.\n\n- Hardened `/temps/clear` so clearing a temp slot removes the persisted DS18B20 address, disables the slot, clears weather flag, resets cached temp state, and supports clearing all slots with an empty POST body.\n\n- Removed legacy physical-scan-order fallback for unassigned DS18B20 slots; enabled slots now require an explicit assigned address before reporting a value.\n\n- Filtered DS18B20 scan results so already-assigned probe addresses are hidden until cleared from their configured temp slot.\n\n- Moved WebUI Temperature Assignment card directly above Temperature Sensor Config for better setup flow.\n\n- Added read-only assigned DS18B20 address display under each WebUI temperature config slot.\n \ No newline at end of file diff --git a/firmware/esp32/overland-controller/overland-controller.ino b/firmware/esp32/overland-controller/overland-controller.ino index 61607c4..a94eb36 100644 --- a/firmware/esp32/overland-controller/overland-controller.ino +++ b/firmware/esp32/overland-controller/overland-controller.ino @@ -60,6 +60,7 @@ input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;ba .checkGroup{display:flex;gap:8px;align-items:center;justify-content:flex-end;white-space:nowrap} .checkPill{display:flex;gap:5px;align-items:center;background:#111923;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:12px} .checkPill input{width:auto;margin:0} +.tempAddress{grid-column:2 / 4;color:var(--muted);font-size:11px;font-family:monospace;margin-top:-6px;overflow-wrap:anywhere} .kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px} .kpi div{background:#0f151d;border:1px solid var(--line);border-radius:12px;padding:10px} .kpi .num{font-size:20px;font-weight:800;margin-top:4px} @@ -569,6 +570,7 @@ function renderConfigControls(data){ +
Address: ${t.address||"unassigned"}
`).join(""); } }