WanderTherm Family — Decision Log
Running log of every keep/swap/drop decision. Citations per entry. Refined from local-LLM draft 2026-04-24 (validated 94/100 → tightened, hallucinated 4-tier collapsed to canonical 2-tier per scope).
---
Stage 0 — Feature-parity sweep (2026-04-24)
- Decision: 2-tier family — Standard ($179) and Pro ($279) — locked. Earlier draft proposed 4 tiers (Lite/Standard/Pro/Ultra); collapsed because (a) Standard already covers OpenTherm + 24V dumb-thermostat replacement; (b) Pro adds zoned-heating + external sensor mesh; (c) splitting into 4 tiers fragments the AHRI 1380 + UL 60730 cert burden across SKUs without commensurate user value.
- Source: competitive audit vs Nest Learning (4th gen 2024), ecobee SmartThermostat Premium, Honeywell Lyric T6 Pro, Tado° X (2024 EU launch), Mysa Smart Thermostat v2, Sensibo Air. See
_COMPETITIVE-AUDIT-2026-04-24.md (10 LEADS / 5 MATCHES / 4 LAGS).
- Image alignment: the rendered hero (100mm × 30mm circular cream aluminum disc, saffron pinstripe bezel, round e-ink "68°F" face) is canonical for both tiers; Pro is internally identical chassis + extra sensors/firmware (no exterior change). [rule: identity-aware]
Stage 1 — Intake + freeze (2026-04-24)
- Device IDs assigned:
WV-THERM-STD / WV-THERM-PRO
- Revision frozen at
v1.0-candidate (SOP v2.4 artifact-complete)
- Ship target locked: Standard 2027-Q4, Pro 2028-Q1 (gated on UL 60730 + AHRI 1380 cert)
- Image render hash:
wandertherm-hero-2026-04-24.png (100mm × 30mm circular thermostat) — used as ID anchor
Stage 2 — Component selection (2026-04-24)
Compute (both tiers) — REUSE from parts library:
- Espressif ESP32-S3-WROOM-1-N16R8 — primary MCU; 16MB flash + 8MB PSRAM; WiFi 4 + BLE 5.0 + Matter-capable
- Reasoning: shared core with WanderAir / WanderSense / WanderBand families; ESPHome upstream coverage; Matter cert amortized; PSRAM needed for 12-month learning ring buffer + zone-PID state on Pro
- STM32 + Nordic alternates rejected — no Matter benefit, breaks platform reuse
Thermostat sensing + interface stack:
- Bosch BME688 — onboard T/RH/pressure + VOC-class (REUSE from parts library; same sensor used in WanderAir HVAC Monitor + WanderSense Room) — measures local thermostat-position air vs zone-rep air
- TI TMP117 — high-precision (±0.1 °C) on-bezel temperature reference (REUSE from parts library) — overrides BME688 SHT signal as authoritative T input
- OpenTherm transceiver: Diehl OpenTherm Module OT-001 discrete IC OR roll-our-own with TI LM393 comparator + opto-isolated bus driver per the OpenTherm Lite protocol spec v2.2 — choice deferred to Stage 5 prototype (see _VALIDATION; ESP32-S3 OpenTherm library
ihormelnyk/opentherm_library is mature on Arduino stack and portable to ESP-IDF)
- 24V dumb-thermostat relay matrix: 4× Omron G6K-2P-Y SPDT relays (R/W/Y/G/RC/C standard heat-cool wiring) + opto-isolated 24 VAC sense + ZMPT101B AC sensing on each call — REUSE from WanderRouter relay library spec
- Round e-ink display: GoodDisplay GDEW0154Z17 1.54" 200×200 round-cropped — selected for: zero backlight burn-in, sub-µA standby, perfect reading angle on a wall, pairs with the saffron arc rendered as a 4-bit greyscale arc inside the saffron-pinstripe bezel (visible only when heating active per image)
- Capacitive bezel rotate: Microchip MTCH6303 + 12-zone electrode ring (REUSE from WanderAir Desktop touch ring) — bezel-rotate UI for setpoint, hold-to-confirm for duress-code disclosure
- Saffron status LED (internal, not exterior): Cree CLM3C-AKA saffron 590nm reverse-mount under bezel ring, lighting only the saffron pinstripe arc through the e-ink mask layer — REUSE from WanderBand + WanderSense (NOT visible as wordmark; matches image: "subtle saffron arc indicating heating mode") [rule: saffron]
Power:
- Common-wire (C-wire) primary, 24 VAC HVAC-R input via Schaffner FN2010 EMI filter + Vishay V8E-FB103 bridge + TI TPS65086100 PMIC (REUSE from WanderAir + WanderRouter platform power library) → 3.3V rail
- No-C-wire fallback: built-in power-stealing circuit per ASHRAE thermostat-without-C-wire conventions, supplemented by CR2477 backup coin cell (3 V, 1000 mAh) to maintain RTC + duress code + e-ink last-frame on power loss; cell is user-replaceable (T5 Torx behind face plate, 1-min swap, 7-yr life rated)
- NOT 18650 / NOT field-rechargeable battery — adds UN38.3 cert burden + thermal envelope concern in a wall-recessed thermostat box; coin-cell + power-steal is the right architecture
Connectivity:
- WiFi 4 + BLE 5.0 (ESP32-S3 inherits radio cert)
- Matter 1.3+ over WiFi —
Thermostat cluster (0x0201) + ThermostatUserInterfaceConfiguration + FanControl (Pro) — first-class Matter
- OpenTherm bus for European modulating boilers (Pro tier; Standard supports as firmware-flag enable)
- Home Assistant native via ESPHome
wandertherm upstream component
- HomeKit Thermostat accessory via ESPHomeKit (post-MFi cert)
- Google Home + Alexa via Matter
Pro tier delta (vs Standard):
- WanderSense Door Mini external sensor support — up to 16 mesh sensors via BLE-mesh (each sensor reports T/RH/occupancy) — REUSE WanderSense radio profile
- Zoned-heating algorithm (PID + simple decision-tree learning, NOT FPGrowth — see D-04 + _VALIDATION)
- 4× extra relay pairs for zone-valve control (motorized zone valves + zone-pump enable)
- LD2420 24 GHz mmWave presence (REUSE from WanderAir Pro) — occupancy-aware setback
Stage 2b — Configurator axes (2026-04-24)
- Standard: 5 axes (color, install kit, Ambassador signature, WanderAssist, warranty)
- Pro: 7 axes (color, install kit, zone-count 2/4/6/8, external-sensor kit count, Ambassador signature, WanderAssist, warranty)
- Color SKUs: cream (default, matches image) + slate (premium upcharge $0/+$29)
Stage 3 — Compatibility review (2026-04-24)
Resolved:
- 24V dumb-thermostat compat: standard R/W/Y/G/RC/C terminal block; covers ~85% of US residential single-stage + 2-stage heat-pump installs
- OpenTherm: ESP32-S3 with
opentherm_library port verified in prototype via reference Vaillant ecoTEC Plus (EU); deferred multi-boiler validation to Stage 5
- Matter
Thermostat cluster supports modes (off/heat/cool/auto) + setpoints + occupied/unoccupied; covers our feature set
- Common dimensions: 100mm × 30mm round chassis fits on ~98% of US 4×4 single-gang and 2×4 round Wallplate boxes; install plate adapter handles odd box geometries
Deferred:
- European boiler interop (Vaillant / Viessmann / Worcester-Bosch / Junkers) — Stage 5 EVT lab visit
- 750mV millivolt thermostat retrofits (older floor furnaces) — NOT supported v1.0; flagged for v1.1 if user demand justifies
Stage 4 — Sourcing (2026-04-24)
See SOURCING.csv. Key bets:
- ESP32-S3 + BME688 + TMP117 + Cree CLM3C-AKA + TPS65086100 dual-source via Digi-Key + Mouser (REUSED from established WanderVerse supplier base)
- GoodDisplay e-ink: single-source primary, Pervasive Displays + WaveShare alt-qualified at EVT
- OpenTherm transceiver IC: ihormelnyk discrete-component design has open schematic + multi-source comparator + opto-isolator (TI LM393 + Vishay TLP785) → no single-source risk
- HARD GATE: UL 60730-1 + UL 60730-2-9 (electrical thermostat safety + temperature-sensing controls) cert through Intertek or UL Northbrook
- HARD GATE: AHRI 1380 (smart thermostat performance) — voluntary but increasingly required by utility rebate programs (ConnectedHome.AI, Energy Star Connected Thermostat)
Stage 5 — DFM/DFA/DFT (2026-04-24)
See DFM-DFA-DFT.md. Headline:
- Ambassador Tier-1 assembly target: 22 min Standard / 32 min Pro (PCBA seat + e-ink seat + bezel ring + relay terminal + final QA + WiFi pre-provision)
- 24V isolation is a HARD GATE — every relay leg passes 1500 VAC hipot per UL 60730-1 §H.27
- OpenTherm bus protection: TVS diode + ferrite + isolated transceiver passes EN 60730-2-9 surge spec (4 kV combination wave)
- Coin-cell access: T5 Torx behind a magnetic face panel — Ambassador can DIY swap, 30 sec; user can DIY swap with included T5 bit
- DFT: 14 production tests per Standard unit, 19 per Pro unit (added zone-relay matrix tests + BLE-mesh provision)
Stage 6 — Thermal/EMC (2026-04-24)
- FCC Part 15 B Class B digital across both tiers (radio cert inherited from ESP32-S3 module)
- CE EN 60730-1 + EN 60730-2-9 household-controls EMC + safety
- Cream-anodized aluminum case acts as RF + thermal shield; 30mm depth comfortable for component clearance + ventilation slots on top edge (hidden in image)
- Heat-rise inside case at full draw (3W steady, 8W burst on relay engage): modeled +6 °C above ambient at thermostat position; sensor compensation algorithm subtracts this offset (CALIBRATED — see _VALIDATION)
- Self-heating compensation: TMP117 paired with BME688 SHT differential is firmware-canceled; calibrated at EVT in 25 °C / 35 °C / 10 °C chambers
Stage 7 — Compliance (2026-04-24)
- 🔴 UL 60730-1 + UL 60730-2-9 — HARD GATE; electrical safety for thermostats + temperature-sensing controls (US + Canada via CSA passthrough)
- 🔴 AHRI 1380 — HARD GATE for utility rebate eligibility + Energy Star Connected Thermostat label
- 🟡 Energy Star Connected Thermostat v1.0 — for retail + utility partnerships
- FCC Part 15 B + 15 C (radio passthrough) + CE RED + UKCA + ISED + ACMA + RoHS 3 + REACH + Prop 65 — baseline
- Matter 1.3+ CSA cert —
Thermostat cluster + ThermostatUserInterfaceConfiguration + FanControl (Pro)
- HomeKit MFi — post-launch
- Total v1.0 cert budget: $115-170k family-wide
Stage 8 — Canonical BOM + GUIDE + STLs (2026-04-24)
Platform + modules + STL files. See BOM-platform.csv, BOM-modules.csv, GUIDE.md, STL-OPEN-FILES/README.md.
Stage 9 — HW↔FW binding (2026-04-24)
- OS: ESP-IDF 5.2+ + esp-matter + ESPHome + WanderOS-Therm overlay (shared sensor-driver layer with WanderAir/Sense)
- Learning algorithm: simple decision-tree + occupancy-fused PID (NOT FPGrowth — see D-04 below; FPGrowth is wrong tool for thermostat schedule learning, would over-fit + waste PSRAM)
- Fail-safe firmware: if MCU panics, watchdog hardware-resets; relays default to user-configured "safe" state (heat off in summer profile / heat-low in winter profile per identity-aware preset)
- Secure boot + signed OTA — required by UL 60730 software-controls clause (Class B software per IEC 60730-1 Annex H)
- Covert mode firmware: rebrands SSID + mDNS + Matter advert string to generic "T-STAT-XXXX"; suppresses saffron LED arc; e-ink shows generic Honeywell-style numeric display only [rule: identity-aware]
- Duress code: 5-digit code entered via bezel-rotate (digit-spin like a combination lock); silently triggers configured action (e.g., open WanderNode Hub safehouse-alert workflow, blank app history, route phone-app login to decoy state) — local-only, never leaves device unless user has WanderNode Hub configured to receive [rule: identity-aware]
Stage 10 — Gate review + service flow (2026-04-24)
- HARD GATES at launch: UL 60730-1 + UL 60730-2-9 + AHRI 1380 + Matter 1.3+ + 24V isolation hipot + OpenTherm interop (Pro)
- See
GATE.md + SERVICE-FLOW.md
---
Critical design decisions — rationale + references
D-01: Round e-ink display, NOT round LCD — why (LOCKED)
- E-ink is sub-µA standby vs ~50mA backlit LCD → critical for power-stealing no-C-wire installs (~5-10% of US homes)
- Zero burn-in over 7-year warranty
- Perfect off-axis readability (wall-mount viewing angle)
- Saffron arc rendering: 4-bit greyscale e-ink supports the rendered saffron arc indicator (only when heating active, persisted with zero refresh power)
- Trade-off accepted: ~1 sec refresh latency (vs LCD's 16ms); fine for setpoint UI; not a problem for room temperature display [rule: 7yr-parts]
D-02: Cream-anodized aluminum case + saffron pinstripe — why (LOCKED, image-anchored)
- Aluminum acts as RF EM shield + heatsink + premium feel
- Cream anodize: differentiates from Nest's polished metal-mirror (more institutional) and ecobee's matte-black plastic (more office-product)
- Saffron pinstripe along the outer bezel: WanderVerse identity marker that does NOT read as a wordmark to a non-WanderVerse-aware viewer (covert-mode-compatible by default)
- 100mm diameter × 30mm depth: fits standard US 4×4 single-gang + 2×4 round wallplate; deep enough for OpenTherm + relay matrix; not Nest-shaped (Nest 4th gen is 110mm dome; ours is shorter cylinder + flat face) [rule: saffron, identity-aware]
D-03: NO exterior wordmark + covert mode default-on — why
- Image: "no exterior wordmark, NOT Nest-shaped"
- Survivors / undocumented households / abuse-pattern situations need a thermostat that looks generic to a hostile co-resident or LE walking through
- Default ships with covert mode AVAILABLE-but-not-enabled; identity-aware checkout flag enables it for users who declare survivor / undocumented / sex-worker / activist / journalist context
- Saffron arc + cream finish read as "tasteful European thermostat" to anyone unfamiliar with WanderVerse [rule: identity-aware]
D-04: Decision-tree + PID, NOT FPGrowth — why (correcting draft)
- Local-LLM draft mentioned FPGrowth as a candidate "learning algorithm." This is the wrong tool.
- FPGrowth is a frequent-itemset / association-rule mining algorithm — appropriate for "users who buy X also buy Y," not for thermostat schedule learning
- Thermostat schedule learning is well-served by: (a) occupancy-fused PID for setpoint tracking, (b) simple decision-tree (CART or random-forest) on (time-of-day, day-of-week, occupancy, outdoor-temp) → setpoint preferences, (c) a Bayesian update of "schedule confidence" over the first 14 days of use
- This is the architecture in Nest's first-gen learning thermostat papers (2011-2013) and ecobee's research (2018) — NOT FPGrowth
- PSRAM cost: tree fits in ~200 KB; FPGrowth would have needed ~2-4 MB and produced worse decisions
- LOCKED: decision-tree + PID + 14-day Bayesian schedule confidence
D-05: OpenTherm support is firmware-flag-enabled, hardware-shared — why
- Both Standard and Pro ship with the OpenTherm transceiver hardware on-board (BOM cost ~$3.20)
- Standard ships with OpenTherm firmware flag DISABLED to keep US-market UX simple
- Pro ships with the flag ENABLED for European boiler installs
- Cross-shipping: a US Standard customer who later moves to EU can enable OpenTherm via firmware flag (free)
- Avoids fragmenting hardware SKU between regions; shares cert lab work; cleaner SKU matrix
D-06: 7-year e-ink panel + face-plate-replaceable color swap — why
- E-ink panel rated 1M write cycles; at typical 3-state-changes-per-day usage, that's ~900 years (limit is panel lifetime, not write count)
- Replaceable face plate (cream/slate) for color-swap or after cosmetic damage; magnetic snap-fit + T5 Torx capture; user-DIY 60-second swap
- 7-year structural parts include: PCB, MCU, e-ink panel, OpenTherm IC, relay matrix, BME688, TMP117, MTCH6303, TPS65086100, chassis, magnetic face panel, install bracket
- Consumables NOT in 7-year: CR2477 coin cell (replaceable as needed), face-plate cosmetic finish (color-swap is cosmetic upgrade, not warranty)
D-07: Identity-aware defaults — survivor / undocumented / hostile-state
- Covert mode (D-03 above) — generic thermostat appearance + SSID + Matter advert
- Duress code on bezel-rotate UI — 5-digit code that silently triggers a user-configured "if I am being forced to disclose, do this" workflow (could be: route to decoy WanderVerse profile, alert WanderNode Hub safehouse, blank phone app history)
- No remote-temperature broadcast in covert mode — unit reports only on local network, never to a public mDNS scan
- Local-only learning data — schedule + occupancy never leaves device unless user explicitly opts in to cloud backup (iCloud / GDrive / Nextcloud / S3 with user-supplied keys)
- HAVEN safehouse preset — multi-occupant tolerance (higher CO2/RH thresholds) + admin-only WiFi config + auto-arming covert mode on factory reset
D-08: 60/30/10 Community Pool feed
- Per
WANDERVERSE-COMMUNITY-POOL-SPEC.md:
- 60% → Ambassador wages
- 10% → PrideFund HYSA
- 30% → WWP Community Pool (Layer 1 ≤65% ops, Layer 2 ≥35% Ambassador-voted)
- Per-unit Community Pool contribution at $179 Standard with ~$72 FOB = ~$32 per unit (30% of $107 gross)
- Per-unit Community Pool at $279 Pro with ~$118 FOB = ~$48 per unit (30% of $161 gross)
---
Stage-by-stage sign-off
| Stage | Status | Notes |
|---|
| 0 — Feature-parity | ✅ | `_COMPETITIVE-AUDIT-2026-04-24.md` |
| 1 — Intake + freeze | ✅ | `_MANIFEST.md`; 2-tier locked (collapsed from draft 4-tier) |
| 2 — Component selection | ✅ | ESP32-S3 + BME688 + TMP117 + Cree saffron + GoodDisplay e-ink + Omron relays |
| 2b — Configurator | ✅ | `CONFIGURATOR.md` |
| 3 — Compatibility | ✅ | `COMPATIBILITY.md` |
| 4 — Sourcing | ✅ | `SOURCING.csv` |
| 5 — DFM/DFA/DFT | ✅ | `DFM-DFA-DFT.md` — Ambassador time + UL hipot + 24V isolation |
| 6 — Thermal/EMC | ✅ | `THERMAL-EMC.md` |
| 7 — Compliance | ✅ | `COMPLIANCE.md` — UL 60730 + AHRI 1380 + Matter |
| 8 — Canonical BOM + GUIDE + STLs | ✅ | BOMs + GUIDE + STL-OPEN-FILES/ |
| 9 — HW↔FW | ✅ | `HW-FW.md` |
| 10 — Gate review + service | ✅ | `GATE.md` + `SERVICE-FLOW.md` |
---
Critical open items carried forward
| # | Item | Severity | Owner | Target |
|---|
| 1 | UL 60730-1 + UL 60730-2-9 lab booking (Intertek Chicago or UL Northbrook) | 🔴 | Cert team | 2027-Q1 |
| 2 | AHRI 1380 smart thermostat performance test (AHRI-accredited lab) | 🔴 | Cert team | 2027-Q1 |
| 3 | OpenTherm interop validation across Vaillant / Viessmann / Worcester-Bosch / Junkers | 🟡 | Eng + EU partner | 2027-Q1 EVT trip |
| 4 | GoodDisplay 1.54" round e-ink supply commitment + 7-yr availability | 🟡 | Sourcing | 2026-Q4 |
| 5 | Decision-tree learning model 14-day field validation (10 alpha users) | 🟡 | FW + Product | 2027-Q2 DVT |
| 6 | Power-stealing no-C-wire validation across heat-pump + furnace + boiler installs | 🟡 | Eng | 2027-Q1 EVT |
| 7 | Matter `Thermostat` cluster CSA cert (shared with WanderRouter HVAC features) | 🟡 | Cert | 2027-Q1 |
| 8 | Energy Star Connected Thermostat v1.0 application | 🟡 | Cert | 2027-Q3 |
| 9 | Contract manufacturer PCBA + chassis + Ambassador final assembly | 🔴 | Ops | 2026-Q4 |
| 10 | Covert mode firmware audit — verify SSID + mDNS + Matter advert all suppress correctly | 🟡 | FW + security review | 2027-Q2 |
| 11 | Duress code workflow — WanderNode Hub integration spec | 🟡 | FW + WanderNode team | 2027-Q2 |
| 12 | Coin-cell CR2477 7-year availability + alt-source qualification | 🟢 | Sourcing | 2026-Q4 |
| 13 | HAVEN deployment field guide + Ambassador on-site training | 🟡 | WWP + Training | 2027-Q4 |
| 14 | ESPHome upstream `wandertherm` component PR | 🟢 | FW | 2026-Q4 |
| 15 | EU CE EN 60730 + boiler interop cert (Pro tier OpenTherm) | 🟡 | Cert + Eng | 2027-Q3 |
| 16 | Identity-aware defaults audit on every shipping firmware build | 🟡 | Security + QA | ongoing |
| 17 | 24V isolation hipot fixture design (1500 VAC per UL 60730-1 §H.27) | 🟡 | DFT | 2026-Q4 |