A) Per-pixel smart-lights
- LIFX multizone (SetExtendedColorZones msg 510, <=82 zones) + Tile
(SetTileState64 715), auto-detected on connect with single-colour
fallback; lifx_per_zone threaded like nanoleaf_per_panel
- Hue gradient-lightstrip mapping: Entertainment v2 frame now keyed by
channel id (was 1 light=1 LED), channels discovered on connect;
hue_gradient_mode toggle (default on)
B) Integrations bundle
- Outbound webhook automation action (Discord/IFTTT/Zapier/Node-RED),
SSRF-gated via validate_polling_url at both save and fire time; fires
on activate/deactivate, best-effort, audited
- Home Assistant MQTT auto-discovery: read-only binary_sensors per
automation + connectivity, availability via birth/will, cleanup on
disable/delete, live state from the engine
Shared: pixel_reduce.resample_to_n nearest-neighbour helper.
57 new tests (lifx_multizone, hue_segment, webhook_action, ha_discovery).
Gate: ruff + tsc + build clean, pytest 2719 passed / 2 skipped.