Benachrichtigungen: Web Push und E-Mail als Kanaele der Automatiken

Neuer BenachrichtigungTransport hinter der Aktor-URL "Benachrichtigung":
push schickt an alle angemeldeten Geraete (homeMesh.push_abos), mail ueber
den SMTP-Zugang aus der config.ini. Ein Abo, das der Push-Dienst mit 404
oder 410 ablehnt, wird geloescht statt weiter angeschrieben.

Daneben hoert der Runner auf benachrichtigung/# - darueber schickt die
Probe aus den Einstellungen, ohne dass die Weboberflaeche verschluesseln
muesste. Zugestellt wird im Haupttakt, nicht im MQTT-Faden.

pywebpush, py_vapid und http_ece liegen wie die uebrigen Fremdpakete im
Ordner, nicht in site-packages; transports.py haengt ihn an den Suchpfad.
Das Schluesselpaar erzeugt vapid_erzeugen.py und bleibt ausserhalb des Git.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 08:37:08 +02:00
co-authored by Claude Opus 5
parent 0a37d8d763
commit 35382a6ae1
29 changed files with 4985 additions and 5 deletions
+29
View File
@@ -85,3 +85,32 @@ dry_run = false
# DEBUG, INFO, WARNING, ERROR
log_level = INFO
# ============================================================================
# BENACHRICHTIGUNGEN - E-Mail
# ============================================================================
# Fuer das Kommando "E-Mail" des Geraets "Benachrichtigungen". Ohne Server
# und Empfaenger meldet die Automatik einen Fehler ins Protokoll, statt still
# nichts zu tun.
#
# port 587 beginnt im Klartext und wechselt mit STARTTLS (der Normalfall)
# port 465 spricht von Anfang an verschluesselt
#
# Mehrere Empfaenger mit Komma trennen. "von" ist der Absender; viele Anbieter
# verlangen, dass er gleich dem Anmeldenamen ist.
[mail]
server =
port = 587
benutzer =
passwort =
von =
an =
# ============================================================================
# BENACHRICHTIGUNGEN - Web Push
# ============================================================================
# Das Schluesselpaar erzeugt einmalig SolarManager/vapid_erzeugen.py. Der
# Pfad muss nur gesetzt werden, wenn die Datei woanders liegt als
# SolarManager/push_vapid.json.
[push]
schluessel =