homeos/app/Services
HomeOS Bootstrap 675d04e104 feat(addons): SMTP notification add-on with per-event toggles
Issue 4: an SMTP add-on for e-mail notifications.
- SmtpSetup modal: server (host/port/encryption/user/pass), from/to, and
  individual toggles for the events you want mailed — device offline, low
  battery, automation messages. "Send test e-mail" button. Config stored
  encrypted on the addon row; a runtime mailer is built from it (no .env edits).
- NotificationService: notify(event, …) sends only if SMTP is set up AND that
  event is enabled; send() for the test.
- Triggers: automation "notify" actions e-mail (when enabled);
  notifications:sweep (every 5 min) e-mails on NEW device-offline / low-battery
  with per-condition dedup + battery hysteresis, so it's one mail per event.

6 tests (gating, per-event toggle, config persist + password-keep, sweep dedup).
Suite 82 green, 12/12 tabs clean; card + modal browser-verified.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 10:33:23 +02:00
..
AddonRegistry.php feat(addons): SMTP notification add-on with per-event toggles 2026-07-18 10:33:23 +02:00
AddonService.php fix(addons): atomic Ring device creation + invalidate ingest gate cache (R15) 2026-07-18 02:01:45 +02:00
AutomationEngine.php feat(addons): SMTP notification add-on with per-event toggles 2026-07-18 10:33:23 +02:00
DeviceCommandService.php feat(devices): instant toggle, icon picker, real update check, transport switch 2026-07-18 10:04:19 +02:00
HomeStatus.php Fix R15: require prod hardening in docs; drop N+1 in warnings 2026-07-17 22:03:20 +02:00
MqttCredentialProvisioner.php Fix R15: provision a per-device MQTT credential when assigning a device 2026-07-18 00:50:53 +02:00
NotificationService.php feat(addons): SMTP notification add-on with per-event toggles 2026-07-18 10:33:23 +02:00
ShellyLocalOnboarder.php fix(shelly): round-trip light brightness/rgb; don't hijack a reused IP (R15) 2026-07-18 09:51:56 +02:00
ShellyPoller.php feat(shelly): local HTTP/RPC transport — add by IP like Home Assistant 2026-07-18 09:48:35 +02:00
ShellyStatusApplier.php feat(shelly): local HTTP/RPC transport — add by IP like Home Assistant 2026-07-18 09:48:35 +02:00
SystemHealth.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
UnifiClient.php Phase 5: UniFi presence — poll, person↔client mapping 2026-07-18 00:31:32 +02:00