Files
adminandClaude Opus 5 35382a6ae1 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>
2026-09-21 08:37:08 +02:00

117 lines
4.3 KiB
Plaintext

# ============================================================================
# AutoAction-Runner - Konfiguration
# ============================================================================
# Kopieren nach config.ini und ausfuellen. config.ini ist nicht versioniert
# (siehe .gitignore), weil hier Zugangsdaten stehen.
# ============================================================================
# DATENBANK - Geraete und Automatiken (homeMesh)
# ============================================================================
[database]
host = nas.fritz.box
port = 3310
database = homeMesh
user = homeMesh
password =
# ============================================================================
# DATENBANK - Messwerte (solarLog)
# ============================================================================
# Nur fuer die Tabelle `daylight`, aus der Sonnenauf- und -untergang kommen.
# Leer lassen, wenn dieselben Zugangsdaten wie oben gelten.
[solar]
database = solarLog
user =
password =
# ============================================================================
# MQTT
# ============================================================================
[mqtt]
broker = nas.fritz.box
port = 1883
username =
password =
client_id = autoaction_runner
# ============================================================================
# TAHOMA
# ============================================================================
# Fuer Aktoren, deren URL mit io:// beginnt. Ohne Token bleiben sie stumm -
# der Runner protokolliert das dann als Fehler, statt still nichts zu tun.
[tahoma]
pin =
token =
timeout = 10
# ============================================================================
# KALENDER
# ============================================================================
# Fuer fetch_calendar.py, das Feiertage und Schulferien in calendar_days
# eintraegt. Regionscodes siehe openholidaysapi.org, Bayern ist DE-BY.
[calendar]
country = DE
subdivision = DE-BY
# ============================================================================
# LAUFZEIT
# ============================================================================
[runner]
# Abstand der Auswertung in Sekunden. Die Schleife wartet auf nichts mehr -
# Geraete fragt der Sammler in eigenen Faeden ab, geschaltet wird im Versand -,
# deshalb darf der Takt kurz sein. Er bestimmt nur noch, wie schnell eine
# hereingekommene MQTT-Nachricht ausgewertet wird.
tick_seconds = 10
# Wie oft Geraete abgefragt werden, die nichts von sich aus melden. Getrennt
# je Transport, weil sie unterschiedlich teuer sind: eine Shelly-Abfrage ist
# in Millisekunden zurueck, die Tahoma-Box braucht fuer ihre Geraete
# nacheinander gut zehn Sekunden. In Sekunden.
poll_http = 60
poll_wled = 60
poll_tahoma = 300
# Wie lange ein punktgenauer Ausloeser ("um 16:30", "Sonnenaufgang + 00:30")
# nachtraeglich noch gilt, in Minuten. Faellt die Auswertung in dieser Minute
# aus - Neustart, haengendes Geraet -, holt der naechste Takt sie nach.
# Ausgeloest wird trotzdem nur einmal, weil nur die steigende Flanke zaehlt.
catchup_minutes = 5
# Wie oft der Runner nachsieht, ob sich das Regelwerk geaendert hat.
reload_seconds = 30
# Nichts wirklich schalten, nur protokollieren. Zum Ausprobieren neuer Regeln.
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 =