Fixes
- MQTT status sweep no longer drops the AWS IoT session (#195). AWS IoT closes the session when it refuses a publish, and the connect-time sweep added in 2026.9.5 queried every device in one burst, so a single device whose topic AWS rejects put the whole account into a connect/drop loop. Queries now go out one device per second; a session that drops inside a device's window is charged to that device, and on the second strike the device is left out of the sweep until the next reload, with a warning naming it. The sweep stops as soon as the session is gone and the other devices keep being queried. Diagnostics carry the per-device census under
mqtt.status_query_strikes. - H60B0 Ripple light switch (#196). The H60B0 uplighter names its upper effect
rippleLightTogglewhere the H60B3 saysnebulaLightToggle; it is now mapped, so the H60B0 exposes Ripple / Side / Bottom switches. The entity keeps the_ripple_lightunique_id, so an existing registry entry is reused rather than duplicated.