FHEM

Benachrichtigungen

Benachrichtigungen machen aus der stillen Automatisierung ein System, das sich meldet, wenn es darauf ankommt: wenn beim Verlassen des Hauses ein Fenster offen geblieben ist, wenn FHEM neu gestartet wurde oder wenn ein Ereignis Aufmerksamkeit braucht. Hier wird dafür ein Messenger-Bot eingesetzt, der Nachrichten direkt auf das Smartphone schickt. Diese Seite zeigt die Einrichtung des Bots, das Auslösen von Meldungen aus Regeln heraus und einen Wartungsmodus, der das System bei Arbeiten ruhigstellt. Alle Tokens, IDs und Namen sind Platzhalter.

Messenger-Bot einrichten

Für Push-Nachrichten wird das Modul TelegramBot verwendet. Der Bot wird einmalig über den BotFather des Messengers erstellt; das dabei erzeugte Token wird beim Anlegen hinterlegt. Wichtig sind außerdem die Sicherheitsattribute, damit nur berechtigte Empfänger mit dem Bot kommunizieren können.

bashKlick markiert alles · Strg + C
define Telegram TelegramBot 0000000:XXXXXXXXXXXXXXXXXXXXXXXXX
attr  Telegram defaultPeer @DeinBenutzername
attr  Telegram cmdRestrictedPeer 123456789
attr  Telegram allowUnknownContacts 0
attr  Telegram pollingTimeout 120
attr  Telegram room hidden
  • defaultPeer – Standard-Empfänger aller Nachrichten.
  • cmdRestrictedPeer – nur diese Chat-ID darf Befehle an den Bot senden.
  • allowUnknownContacts 0 – unbekannte Kontakte werden ignoriert.
  • pollingTimeout 120 – hält die Verbindung dauerhaft offen, damit Nachrichten sofort ankommen.

Ein erster Test stellt sicher, dass die Zustellung funktioniert:

bashKlick markiert alles · Strg + C
set Telegram message FHEM ist online und sendebereit.

Startmeldung beim Hochfahren

Praktisch ist eine automatische Nachricht, sobald FHEM nach einem Neustart oder einem Reload vollständig hochgefahren ist. Ein notify reagiert dafür auf das systemweite Ereignis global:INITIALIZED:

bashKlick markiert alles · Strg + C
define n_fhem_start notify global:INITIALIZED set Telegram message FHEM wurde neu gestartet.
attr  n_fhem_start room hidden

Meldung aus einer Regel auslösen

Benachrichtigungen entfalten ihren Nutzen vor allem in Kombination mit anderen Automatisierungen. Ein typisches Beispiel: Bleibt ein Fenster geöffnet, soll eine Erinnerung verschickt werden. Dies lässt sich direkt in die fenstergesteuerte Heizungsregel (siehe Heizungssteuerung) integrieren – die Nachricht wird dort einfach als zusätzlicher Befehl im „Fenster offen"-Zweig ergänzt:

bashKlick markiert alles · Strg + C
define di_Fenster_Erinnerung DOIF ([Fensterkontakt_Badezimmer:state] =~ "opened")
  (set Telegram message Fenster im Badezimmer bitte schließen!)
attr  di_Fenster_Erinnerung wait 420
attr  di_Fenster_Erinnerung room Benachrichtigungen

Das wait 420 verzögert die Meldung um sieben Minuten: Kurzes Stoßlüften löst also keine Nachricht aus – erst ein dauerhaft offenes Fenster wird gemeldet.

Wartungsmodus zum Stummschalten

Bei Arbeiten an der Anlage – etwa beim Anlernen neuer Geräte – würden ständig Test-Ereignisse Meldungen auslösen. Ein Wartungsmodus als Dummy-Schalter unterbindet das zentral. Die Benachrichtigungsregeln fragen diesen Schalter ab und schweigen, solange er aktiv ist.

bashKlick markiert alles · Strg + C
define WartungsModus dummy
attr  WartungsModus setList true false
attr  WartungsModus room Benachrichtigungen

In der Regel wird der Wartungsmodus als zusätzliche Bedingung berücksichtigt:

bashKlick markiert alles · Strg + C
define di_Fenster_Erinnerung DOIF ([Fensterkontakt_Badezimmer:state] =~ "opened" and [WartungsModus:state] eq "false")
  (set Telegram message Fenster im Badezimmer bitte schließen!)
attr  di_Fenster_Erinnerung wait 420
attr  di_Fenster_Erinnerung room Benachrichtigungen

Komfortabel lässt sich der Schalter sogar per Messenger-Befehl umlegen. Über das Attribut favorites bietet der Bot dafür eine Schnellauswahl an:

bashKlick markiert alles · Strg + C
attr Telegram favorites set WartungsModus true;; set WartungsModus false
attr Telegram cmdFavorites /Wartung

Test und Speichern

  1. Mit set Telegram message Test die Zustellung prüfen.
  2. Ein Fenster öffnen und nach Ablauf der Wartezeit kontrollieren, ob die Erinnerung kommt – bei aktivem Wartungsmodus darf keine Nachricht erscheinen.
  3. Konfiguration sichern:
bashKlick markiert alles · Strg + C
save

Damit verfügt das System über zuverlässige, gezielte Benachrichtigungen, die zwischen belanglosen und wichtigen Ereignissen unterscheiden und sich bei Wartungsarbeiten zentral stummschalten lassen.