Kernkonzepte¶
So greift alles ineinander¶
Eine einzige Benachrichtigung aus einer Automatisierung kann zu mehreren unterschiedlichen Benachrichtigungen werden, jede passend zu dem Weg, auf dem sie verschickt wird.
- Ziele - Personen werden anhand ihrer Recipient-Angaben in die Wege umgewandelt, über die sie erreichbar sind
- Deliveries - die passenden Deliveries werden ausgewählt, standardmäßig oder über Scenarios
- Benachrichtigungen - jede Delivery nimmt sich die Ziele, die sie verwenden kann, und sendet eine dafür passende Benachrichtigung, sodass eine E-Mail ein vollständiges HTML-Layout mit Bildern haben kann, während der Küchenlautsprecher eine kurze gesprochene Nachricht erhält
Ziel (Target)¶
- Wer oder was benachrichtigt wird und wie
- Direkte Ziele
- E-Mail-Adresse
- Telefonnummer
entity_idoderdevice_id, zum Beispiel für eine Ansage über ein Alexa-Gerät- eine eigene ID für einen speziellen Transport wie Telegram
- Indirekte Ziele, die in direkte Ziele umgewandelt werden können
person_id, um die Recipient-Funktionen zu nutzen- die Standard-Zielauswahl von Home Assistant,
label_id,floor_idundarea_id - Gruppen-Ziele (sowohl neue als auch alte Home Assistant-Gruppen)
- Ziele können einer bestimmten Zielkategorie zugeordnet werden, etwa
discord_channel:839439434, siehe Kategorie-Präfixe - Jedes Ziel wird von der am besten geeigneten Integration aus der Liste übernommen
- Zum Beispiel wird eine Notify-Entität eines Alexa-Geräts vom Alexa Devices-Transport verarbeitet, während eine allgemeine Notify-Entität auf den weniger leistungsfähigen Notify Entity-Transport zurückfällt
- Siehe Targets für weitere Informationen
Empfänger (Recipient)¶
- Eine Person, mit optionaler E-Mail-Adresse, Telefonnummer, Mobilgeräten oder eigenen Zielen
- Standardmäßig automatisch aus den Benutzerkonten und Personen-Entitäten in Home Assistant erkannt
- So lassen sich Personen in Automatisierungen leichter ansprechen:
person.joe_mcteststatt sich in jeder Automatisierung Joes E-Mail-Adresse merken zu müssen. Funktioniert auch für Telefonnummern, wenn eine passende SMS-Integration installiert ist, oder für eigene Kennungen wie Telegram oder Discord - Jeder Empfänger hat außerdem eine Home Assistant-
switch-Entität, sodass man jemanden leicht vor Benachrichtigungen verschonen kann - Siehe People und Recipes für weitere Details
Transport¶
- Ein Transport ist das technische Mittel, mit dem tatsächlich benachrichtigt wird, meist über eine der bereits installierten Home Assistant-Integrationen
- Transport-Adapter machen den Unterschied zwischen normalen Notify-Gruppen und Supernotify aus
- Eine Notify-Gruppe scheint einfache Mehrkanal-Benachrichtigungen zu ermöglichen, doch in der Praxis hat jeder Notify-Transport andere
data-Strukturen (unddatainnerhalb vondata!), Adressierung usw., sodass Benachrichtigungen am Ende auf den kleinsten gemeinsamen Nenner reduziert werden, etwa nurmessage! - Supernotify bringt Adapter für gängige Transports wie E-Mail, Mobile Push, SMS und Alexa mit, sowie einen Generic-Transport-Adapter, mit dem sich jede andere Home Assistant-Aktion einbinden lässt
- Der Transport-Adapter ermöglicht es, eine einzige Benachrichtigung an viele Plattformen zu senden, auch wenn diese völlig unterschiedliche und untereinander inkompatible Schnittstellen haben
- Er passt Benachrichtigungen an den Transport an, entfernt Attribute, die dieser nicht akzeptiert, formt
data-Strukturen um, wählt nur die passenden Ziele aus und erlaubt, wo möglich, weitere Feinabstimmung - Jeder Transport hat eine Standardkonfiguration, mit der sich vieles feinabstimmen und vorbelegen lässt, sodass nicht in jeder Benachrichtigung dieselben Werte angegeben werden müssen
- Siehe Transports für weitere Details
Zustellung (Delivery)¶
- Eine Delivery legt jeden Benachrichtigungskanal fest, den Sie verwenden möchten
- Von Haus aus hat jeder Transport eine Delivery mit demselben Namen, zum Beispiel
emailodermobile_push - Manche Transports legen automatisch zusätzliche Deliveries an, etwa
alexa_devices_announce_alloderchime_siren_all - Per YAML lassen sich weitere Deliveries anlegen, zum Beispiel
html_emailzusätzlich zur Klartext-email, oder eigene Deliveries für bestimmte Sprachassistenten - Transports, die Ziele eindeutig auswählen können, wie E-Mail, Mobile Push, SMS, Alexa Devices und Notify Entity, werden standardmäßig bei der Verarbeitung von Zielen berücksichtigt
- Andere können per Konfiguration, über Scenarios oder auf Anforderung in einer Benachrichtigung einbezogen werden
- Sie können eigene Deliveries mit selbst gewählten Namen anlegen und mehrere Deliveries für einen Transport haben, zum Beispiel
plain_emailundhtml_email - Der Generic-Transport dient als Werkzeugkasten, um eine Delivery für fast alles zu erstellen, was Home Assistant kann und was noch nicht von einem Standard-Transport abgedeckt wird
- Siehe Deliveries und Recipes für weitere Details
Szenario (Scenario)¶
- Ein Paket von Einstellungen, das per Name oder automatisch über Home Assistant-Bedingungen eingeschaltet werden kann
- Scenarios können manuell über einen
apply_scenarios-Wert imdata-Block der Benachrichtigung ausgewählt werden, oder automatisch über einen standardmäßigen Home Assistant-conditions-Block - Bedingungen können den Text der Nachricht einbeziehen, sodass eine Frigate-Meldung über Vögel auf der Terrasse anders behandelt werden kann als ein Einbrecher am Fenster
- Mit Scenarios werden Benachrichtigungen nachts dezenter, an Feiertagen festlicher, oder bestimmte Nachrichten erhalten Vorrang
- Sie ermöglichen es, Anpassungen an einer Stelle für viele Deliveries oder Benachrichtigungen vorzunehmen, und sind der Schlüssel, um Benachrichtigungsaufrufe in Automatisierungen radikal zu vereinfachen
- Siehe Scenarios und Recipes für weitere Details
Priorität (Priority)¶
- Eine Dringlichkeitsstufe für Benachrichtigungen
- Es gibt weder innerhalb noch außerhalb von Home Assistant einen Standard für die Priorisierung von Benachrichtigungen
- Supernotify hat ein eigenes 5-stufiges Schema nach gängiger Praxis, von
minimumbiscritical - Die Priorität kann etwa für Scenario- und Delivery-Regeln genutzt und an Notify-Integrationen weitergegeben werden, die sie unterstützen
- Supernotify hat eine eigene E-Mail-Integration, die die Priorität so übersetzt, dass Outlook, Apple Mail usw. sie verstehen
Info
Für technisch Interessierte gibt es ein Klassendiagramm der Kernklassen zu diesen Konzepten.
Grundprinzipien¶
- Eine Benachrichtigung braucht nur eine Nachricht, alles andere kann vorbelegt werden, einschließlich aller Ziele
- Was in einem Aktionsaufruf angegeben wird, hat Vorrang vor den Standardwerten - Dies lässt sich z. B. über
target_usageanpassen - Das Personenverzeichnis wird nur dann zum Erzeugen von Zielen verwendet, wenn keine Ziele angegeben sind - Aktion > Scenario > Delivery > Transport für Konfiguration und Standardwerte
- So unkompliziert wie möglich in Konfiguration und Aufruf - Ziele können in Unterkategorien gegliedert werden oder eine große Liste aus Entitäts-IDs, Geräte-IDs, E-Mail-Adressen und Telefonnummern sein - Optionen im Aktions-
datawiedeliverykönnen ein einzelner Wert, eine Liste oder eine Zuordnung sein
Entwickler¶
Siehe Developer Concepts dazu, wie Benachrichtigungen durch Deliveries, Ziele und Envelopes laufen, sowie die Design Principles.