Initial release: Matrix Messenger Home Assistant integration

- Config flow (GUI): Homeserver, Passwort- oder Token-Anmeldung, Raumauswahl
- E2EE-Unterstützung via matrix-nio mit SQLite Key-Store
- Aktionen: send_message, ask_question (Text + Emoji-Reaktion)
- notify.*-Entitäten pro Raum
- Optionaler Hintergrund-Sync, 30-Min-Timeout für Fragen
- HACS-kompatibel, HA >= 2026.4.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marc
2026-04-25 00:49:31 +02:00
commit bddb07431d
13 changed files with 1476 additions and 0 deletions
@@ -0,0 +1,66 @@
send_message:
name: Matrix-Nachricht senden
description: Sendet eine Textnachricht an einen konfigurierten Matrix-Raum.
fields:
room_id:
name: Raum
description: "Matrix-Raum-ID (z. B. !abc123:matrix.org). Wird beim Einrichten der Integration ausgewählt."
required: true
example: "!abc123:matrix.org"
selector:
text:
message:
name: Nachricht
description: Der zu sendende Text.
required: true
selector:
text:
multiline: true
ask_question:
name: Frage in Matrix-Raum stellen
description: >
Sendet eine Frage an einen Matrix-Raum und wartet auf eine Antwort.
Sobald jemand antwortet (Text oder Emoji-Reaktion), wird das Event
'matrix_messenger_response' ausgelöst, das in Automationen verwendet
werden kann. Nach Ablauf des Timeouts (Standard 30 min) wird nicht
mehr auf eine Antwort gewartet.
fields:
room_id:
name: Raum
description: "Matrix-Raum-ID (z. B. !abc123:matrix.org)."
required: true
example: "!abc123:matrix.org"
selector:
text:
question:
name: Frage
description: Der Fragetext, der in den Raum gesendet wird.
required: true
selector:
text:
multiline: true
options:
name: Antwortoptionen
description: >
Optionale Liste gültiger Antworten. Nur Nachrichten oder Emoji-Reaktionen,
die einer dieser Optionen entsprechen, werden akzeptiert.
Wenn leer, wird jede Antwort akzeptiert.
required: false
example:
- "Ja"
- "Nein"
selector:
object:
timeout:
name: Timeout (Sekunden)
description: Wartezeit in Sekunden. Standard ist 1800 (30 Minuten).
required: false
default: 1800
selector:
number:
min: 60
max: 7200
step: 60
unit_of_measurement: s
mode: box