diff options
| author | Luke Hoersten <[email protected]> | 2026-07-17 20:25:24 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-07-17 20:25:24 -0500 |
| commit | 482d8f45f18c6cc880bf2dfbbb70e3a4d704ac44 (patch) | |
| tree | 5993fb976dc267c6b740933613ae305b3fd90bc6 /TESTING.md | |
| parent | 8c2862b17b9bd9ae194d18fc912785f899524d8f (diff) | |
docs: sync README + TESTING + scrypted README with v1.4.0 reality
Drift accumulated across the review-fix, mDNS-discovery, and tooling
work:
- Discovery: the design-era "use a Node mDNS library" flow is replaced
with what shipped — the sandbox has no such libraries; the script does
a dependency-free legacy-unicast dgram browse (no :5353 bind), host
dropdowns, blank-name inheritance, and auto-heal on register failure
(matched by the new mac TXT record) instead of periodic re-browsing.
- /state example: add mac, ota_state, panel dims, tear_guard_engaged,
temp_c, and the stream stats object; correct `configured` semantics
(scrypted URL only) and the never-null MAC-derived name in /config.
- /config: document the 54-char name cap (mDNS label limit).
- scrypted/README: add-device + settings tables gain the discovered-host
dropdown, Wake triggers on create, and the canonical "Viewport name"
rename field (the Scrypted pencil doesn't propagate — by design);
trigger-scoped subscriptions; device-wake immediate-204 semantics;
idle=0 no longer force-slept by the safety timer; "manual IP" dropped
from limitations; discovery section reframed with the diagnostic.ts
probe and bridge-networking caveat.
- Source map: dedupe the doubled touch.{h,c} row, add stream_server /
ota / chip_temp rows, fix nvs_config + endpoint-count drift.
- Build/TESTING: point iteration at `make ota` (USB stays for first
flash); TXT expectations include mac; DHCP-renumber failure mode now
documents the verified auto-heal path.
Diffstat (limited to 'TESTING.md')
| -rw-r--r-- | TESTING.md | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -14,6 +14,12 @@ Status legend: - 🟡 partial — compiles cleanly, builds against ESP-IDF 5.4 for `esp32p4`, but not yet run on a board. - ✅ verified — confirmed on hardware. Annotate with the date and board rev. +> **Iterating on an already-flashed device:** `make ota [VIEWPORT=<host>]` +> builds with a fresh git stamp, pushes over the LAN, and verifies the +> `pending-verify -> valid` OTA sequence (auto-retrying the known +> first-push silent rollback). The USB commands below are for first +> flash / bring-up only. + --- ## Status snapshot @@ -179,7 +185,7 @@ Expected `/state` body on a fresh device (no `/config` posted yet): } ``` -Expected mDNS browse output should show a `_scrypted-viewport._tcp` instance with TXT records `version=`, `resolution=`, `orientation=`, `name=` (empty for `name`). +Expected mDNS browse output should show a `_scrypted-viewport._tcp` instance with TXT records `version=`, `resolution=`, `orientation=`, `name=` (MAC-derived default until `/config` names it), and `mac=` (since v1.4.0 — the stable identity the Scrypted script's discovery/auto-heal matches on). **Status**: ✅ verified 2026-06-14 alongside M1. @@ -559,7 +565,7 @@ Tap rapidly (faster than the receiver can ack) and confirm the receiver only see **Visual checks (panel-attached)** -- Fresh flash → screen shows the info screen (~15 lines of `label value` pairs, white on black, auto-scaled). With no `/config` posted it reports `name unset`, `config no`, `state asleep`, `scrypt none`. +- Fresh flash → screen shows the info screen (~17 lines of `label value` pairs, white on black, auto-scaled). With no `/config` posted it reports the MAC-derived default name, `config no`, `state asleep`, `scrypt none`. - `POST /config` with viewport + scrypted → device transitions to ASLEEP, backlight off. - `POST /state {state:wake}` (or tap) → backlight on, `Loading...` centered until the first `/frame` lands. - `POST /frame` while AWAKE → loading screen replaced by the JPEG. @@ -614,7 +620,7 @@ Run these once all milestones are implemented and individually verified. The poi - Cable pull mid-frame: device idle-sleeps after `idle_timeout_ms`. On reconnect, mDNS re-advertises; Scrypted re-finds and continues. (Link-loss/recovery part verified 2026-06-14 with the device idle — see M1 section. Mid-frame variant still pending.) - Scrypted unreachable on tap: device still toggles backlight, `state_post_failures` increments. Recovery: Scrypted comes back, next tap syncs. -- DHCP lease change: device gets new IP, re-advertises via mDNS. Scrypted's periodic browse picks up the new address. +- DHCP lease change: device gets new IP, re-advertises via mDNS. The script's next 5-minute register fails against the stale host, which triggers its mDNS auto-heal — browse, match by `mac` TXT, rewrite host, retry. Verified 2026-07-18 by saving a wrong IP: `host 10.0.13.99 -> 10.0.13.83 (mdns auto-heal)`. - `/state_post_failures` count should be observable via `GET /state`. ### D. Longevity |
