Telegram Bot einrichten

Mithilfe eines Telegram Bots kannst du dir auf einfache Weise die verschiedensten Benachrichtigungen durch dein Smart Home System (wie z.B. Home Hassistant) direkt auf dein Handy schicken lassen. Hierfür musst du dir lediglich die Messanger App Telegram auf deinem Smartphone installieren und dir einen eigenen Bot einrichten. Dies ist innerhalb kurzer Zeit erledigt.

Nachdem du, falls nicht sowieso schon vorhanden, Telegram auf deinem Smartphone installiert hast, startest du eine Unterhaltung mit dem „User“ BotFather. Anschreiben kannst du diesen Bot durch die Nutzung der Suchfunktion (Lupe) oben rechts in der App. Mithilfe dieses Bots kannst du ganz einfach deinen eigenen Bot erstellen. Hierfür sendest du /start und /newbot an den BotFather. Anschließend fragt er dich nach einem Namen für deinen Bot, diesen kannst du beliebig wählen, z.B. „SmartHome“. Mit diesem Namen erscheint der Bot später in deinem Chatverlauf. Anschließend musst du noch einen „Username“ für deinen Bot wählen, der auch mit „bot“ enden muss. Da dieser Username einmalig sein muss, kann es gut sein, dass der von dir geünschte Username bereits vergeben ist. Beachte hierbei, dass die Bots generell öffentlich sind und jeder deinen Bot anschreiben kann, der den Username kennt. Daher empfiehlt es sich hier einen etwas kryptischen Namen zu vergeben. Aber keine Sorge, selbst wenn jemand mit deinem Bot in Kontakt tritt, wird er nicht deine SmartHome Benachrichtigungen bekommen. Weshalb erfährst du in der Konfiguration weiter unten.

Wenn der Bot fertig eingerichtet ist, teilt dir der Botfather noch den token deines Bots mit. Diesen benötigst du und solltest du auf jeden Fall geheim halten! Jeder, der diesen Token kennt kann die Einstellungen deinses Bots verändern. Wichtig ist nun noch, dass du deinem SmartHome-Bot die Nachricht /start sendest und nochmals eine Nachricht mit beliebigem Text.

Um den Telegram Bot in HassIO zu konfigureiren benötigst du außerdem noch deine sogenannte ChatID. Es gibt zwei Wege diese in Erfahrung zu bringen. Entweder bekommst du diese ganz einfach, indem du den Bot „GetIDs Bot“ anschreibst. Wichtig ist der Perameter id in der Antwort des Bots, dies ist deine ChatID. Oder du rufst die URL https://api.telegram.org/bot<API-access-token>/getUpdates?offset=0 wobei du <API-access-token> durch den token deines Bots ersetzt. Auf angezeigten Seite ist die gesuchte ChatID die id in der Sektion chat.

Nun hast du alle Informationen, die du benötigst, um dir aus deinem SmartHome System Benachrichtigungen direkt auf dein Handy zu senden. Hierfür bindest du folgendes in deine configuration.yaml von HassIO ein:

# Example configuration.yaml entry for the Telegram Bot
telegram_bot:
  - platform: polling
    api_key: DEIN_API_KEY
    allowed_chat_ids:
      - CHAT_ID_1
      - CHAT_ID_2

Bei api_key setzt du den token ein, den dir der Botfather für deinen eigenen Bot mitgeteilt hat, die CHAT_IDs ersetzt du durch die ChatIDs, an die die Nachrichten gesendet werden sollen. Es müssen jedoch alle User, die die Benachrichtungen empfangen sollen, zuvor deinen Bot angeschrieben haben.

Außerdem müssen die Telegram User in die configuraion mit eingebunden werden:

# Example configuration.yaml entry for the notifier
notify:
  - name: telegram_dad
    platform: telegram
    chat_id: CHAT_ID_1
  - name: telegram_mom
    platform: telegram
    chat_id: CHAT_ID_2

Möchtest du Benachrichtigungen an mehrere User gleichzeitig senden, kannst du das ganz einfach machen, indem du hierfür Gruppen anlegst. So kannst du auch für verschiedene Bnachrichtigungen entsprechende Gruppen anlegen. Im Beispiel unten wurde die Konfiguration um die Gruppe telegram_family erweitert.

# Example configuration.yaml entry for the notifier
notify:
  - name: telegram_dad
    platform: telegram
    chat_id: CHAT_ID_1
  - name: telegram_mom
    platform: telegram
    chat_id: CHAT_ID_2
  - name: telegram_family
    platform: group 
    services:
      - service: telegram_dad
      - service: telegram_mom

Nun kannst du z.B. in einem Script folgendermaßen eine Nachricht an die User Mom und Dad (die in der Gruppe telegram_family enthalten sind) senden:

dashausbrennt:
  sequence:
  - alias: SendTelegramFireFireFire
    service: notify.telegram_family
    data_template:
      message: "Fire! Fire! Fire!"