Context
The webapp backend was cut over from IFTTT to iot-api (PR #147, DI swap to IotApiClientFactory) and went fully live on 2026-07-04: all 4 HA gates ON (live_iot_hot_tub_heater, live_iot_hot_tub_cycle_ionizer, live_iot_hot_tub_ionizer, live_iot_dining_blinds), and every button (heater on/off, pump/run, blinds open/close) was exercised end-to-end through the production path (webapp → iot-api on misuse.org → Tailscale Funnel → t480 HA → Tuya/BroadLink).
The backend no longer calls IFTTT at all — the 6 hot-tub/blinds applets are dead code as of the cutover. The morning heating cycles from 2026-07-05 onward exercise the new path daily.
Task (after ~7 days of clean operation, ≈ 2026-07-11)
Rollback (if the soak fails)
Swap IotApiClientFactory → IftttClientFactory in backend/public/index.php and redeploy — the applets still exist until the delete step above.
🤖 Generated with Claude Code
Context
The webapp backend was cut over from IFTTT to iot-api (PR #147, DI swap to
IotApiClientFactory) and went fully live on 2026-07-04: all 4 HA gates ON (live_iot_hot_tub_heater,live_iot_hot_tub_cycle_ionizer,live_iot_hot_tub_ionizer,live_iot_dining_blinds), and every button (heater on/off, pump/run, blinds open/close) was exercised end-to-end through the production path (webapp → iot-api on misuse.org → Tailscale Funnel → t480 HA → Tuya/BroadLink).The backend no longer calls IFTTT at all — the 6 hot-tub/blinds applets are dead code as of the cutover. The morning heating cycles from 2026-07-05 onward exercise the new path daily.
Task (after ~7 days of clean operation, ≈ 2026-07-11)
QUESTIONS.mdin science/home-assistant for the full list/context)docs/automation-sources/unified-backlog.csv(science/home-assistant)Rollback (if the soak fails)
Swap
IotApiClientFactory→IftttClientFactoryinbackend/public/index.phpand redeploy — the applets still exist until the delete step above.🤖 Generated with Claude Code