LAN reality probe (issue #57)
Builds toward native local LAN support by measuring the real Govee LAN data surface from users' own hardware — capturing diagnostics only at this stage, no control changes.
Added
- LAN reality probe in diagnostics — after LAN discovery, each discovered device is sent a read-only UDP query battery (
devStatus, the rarely-usedstatuscommand, and a unicastscan) and every datagram it emits is captured verbatim, unfiltered. We deliberately don't trust other integrations' field lists — the goal is to record what the firmware actually exposes (e.g. whether thestatusreply'sptBLE-passthrough hex carries segment/scene/sensor state the documented 4-fielddevStatusomits). - Per-device
lan_raw(full capture),status(devStatus summary), andcommands_answered, plus a fleet-widecommands_answeredmap, in the diagnostics download.
Safety
- Strictly read-only — no control verb (
turn/brightness/colorwc/ptReal) is ever sent; a diagnostics download never mutates device state. - Hardened PII redaction — value-level scrubbing of any MAC (→ stable hash) or IPv4 (→
REDACTED_IP) anywhere in the capture, on top of key-name redaction, since the probe retains unknown keys. Firmware version strings are preserved. - Passed an adversarial critic review (read-only safety, redaction, never-raise contract, UDP correctness, test quality).
Notes
- Diagnostics-only; LAN→MQTT→API transport priority is the planned next phase.
- 997 tests passing; mypy, flake8, Black clean.
Full changelog: v2026.6.15...v2026.6.16