feat(P2): Notruf verschickt E-Mail an Kontaktperson (Testphase)

Beim Notruf-Knopf wird – sofern SMTP konfiguriert ist – eine E-Mail an die
Kontaktperson(en) des Nutzers geschickt (Default: dieter.schlueter@linix.de).
Der Nutzer-Hinweis spiegelt ehrlich wider, ob wirklich etwas rausging:
"Kontaktperson per E-Mail benachrichtigt" vs. "noch keine Benachrichtigung".

- config.py: EMERGENCY_CONTACT_EMAIL + SMTP_* (ohne SMTP_HOST kein Versand);
  veralteten LLM-Klassifikator-Kommentar entfernt.
- emergency.py: SMTP-Versand (best effort, im Thread), lokalisierte Hinweise
  für "gesendet"/"nicht gesendet" (10 Sprachen). Pro-Nutzer-Kontakte via
  prefs.emergency_contacts vorbereitet, Fallback auf Config-Default.
- Test mit gemocktem smtplib. env.example + DEPLOYMENT.md 2.5 dokumentiert.

SMS/Anruf-Eskalation folgt später (eigene Planung). 210 passed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-25 03:37:18 +02:00
commit c35fe6e187
6 changed files with 141 additions and 20 deletions

View file

@ -20,3 +20,15 @@ SSO_LOGOUT_URL=https://linix.de/yunohost/sso/?action=logout
# Persistente Datenbank (Pfad auf dem Host)
DB_PATH=/var/lib/voice-assistant/voice-assistant.db
# --- Notruf-Benachrichtigung per E-Mail (Testphase) --------------------------
# Beim Notruf-Knopf wird (sofern SMTP gesetzt) eine E-Mail an die Kontaktperson
# geschickt. OHNE SMTP_HOST wird NICHTS versendet und der Nutzer sieht den
# Hinweis "noch keine Benachrichtigung eingebaut". SMS/Anruf folgen später.
EMERGENCY_CONTACT_EMAIL=dieter.schlueter@linix.de
SMTP_HOST= # z. B. smtp.linix.de — leer = kein Versand
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM= # Absender; leer -> SMTP_USER
SMTP_STARTTLS=true