- System boots with no sensors connected
- temp daemon reports health status to redis indicating no sensors connected
- temp daemon reports regular schedule of events to pub-sub with no temp data
- Control daemon reads temp updates with no sensors, reports health warning that sensors are not ready
- User loads web interface
- Web reads health from control daemon and temp daemon, shows warning to user that sensors aren't connected
- User clicks "Diagnostic" -> "Sensor Setup"
- User sees all 5 lights off
- User connects either heat input sensor or water temp sensors
- temp daemon reads the sensor(s) connected and records it in the config as either the heat input sensor or the water temp sensors, and reports the temperature (see
src/temp/README.md"Probe bundles and identity setup") - Control daemon continues to report a warning that sensors are not configured
- Web reads temp update showing some sensors reporting, shows appropriate lights on, allows user to continue to next step
- User connects remaining sensor set
- On the next tick, temp daemon reads from all sensors, noting the id(s) of the newly connected ones, and reports temperature data as normal (see
src/temp/README.md"Probe bundles and identity setup") - Control Daemon reads temp events and sees all sensors connected, reports healthy status
- Web notes temp events now have full sensor data and allows user to finish sensor connect diagnostics
- system should operate as normal now
Implementation notes
-
Temp:
health:tempsreflects missing/incomplete probes;temps.readingincludessetup_stateand role-keyedroles(seesrc/temp/README.md). -
Control:
health:controlisdegradedwhile the latest reading hassetup_stateother thanready, stale/missing temps, or notub_avg_f;okwhen setup is complete and readings are fresh. -
Web: Main Control page shows a warning banner with Open Sensor Setup when
setup_state !== ready. Diagnostic → Sensor Setup wizard calls/api/sensor-setup/*→temps.command. Step 1 Continue requires all probe lights off before teach-in starts.