Skript zum Senden von Nachrichten über Telegram

Home Assistant 2. Sep. 2025

Einleitung
Die Integration von Telegram in Automatisierungsprozesse ist eine beliebte Methode, um Benachrichtigungen und Nachrichten zu versenden. Dieses Tutorial zeigt, wie man ein Skript erstellt, das es ermöglicht, Nachrichten an verschiedene Telegram-Empfänger zu senden, basierend auf vordefinierten Variablen.

Problem
Ein Benutzer möchte ein Skript erstellen, das Nachrichten über Telegram an verschiedene Empfänger sendet. Die Empfänger sollen durch Variablen definiert werden, die die Chat-IDs der Telegram-Nutzer repräsentieren. Der Benutzer benötigt Unterstützung bei der Implementierung dieser Variablen in das Telegram-Skript.

Lösung
Um das Skript für das Senden von Telegram-Nachrichten zu erstellen, wird eine Kombination aus Variablen und einer Aktionssequenz verwendet. Die Variablen definieren die Chat-IDs der Empfänger, während die Aktionssequenz die Nachricht sendet. Hier ist der vollständige Code:

sequence:
  - variables:
      chat_ids: >
        {% set id_map = {'Marcel': 1234567890, 'Diana': 1234567890} %} 
        {% set result = namespace(lst=[]) %} 
        {% for name in targets %}
          {% set key = name|string %}
          {% if key in id_map %}
            {% set result.lst = result.lst + [id_map[key]] %}
          {% endif %}
        {% endfor %} 
        {{ result.lst }}
    alias: "Definiert die Variable: chat_ids"
  - action: telegram_bot.send_message
    metadata: {}
    data:
      config_entry_id: 01K0NF8EY866BBXXXXXXXXXXXXXX
      message: "{{ message }}"
      title: "{{ title }}"
      target: "{{ chat_ids }}"
fields:
  title:
    selector:
      text: null
    name: title
    description: Bitte gebe den Titel der Nachricht ein
    required: true
  message:
    selector:
      text: null
    name: message
    description: Bitte gebe deine Nachricht ein
    required: true
  targets:
    selector:
      select:
        options:
          - Marcel
          - Diana
        multiple: true
    required: true
    name: targets
alias: Telegram senden
description: ""

In diesem Skript wird eine Variable chat_ids definiert, die die Chat-IDs der ausgewählten Empfänger speichert. Die id_map enthält die Zuordnung von Namen zu Chat-IDs. Die Nachricht wird dann an die in chat_ids definierten Empfänger gesendet.

Schritte zur Umsetzung
1. Erstelle eine neue Automatisierung oder ein Skript in deiner Home Assistant-Konfiguration.
2. Füge den oben angegebenen YAML-Code in das Skript ein.
3. Ersetze die Platzhalter-Chat-IDs in der id_map durch die tatsächlichen Chat-IDs deiner Telegram-Kontakte.
4. Stelle sicher, dass die Telegram-Integration in Home Assistant korrekt konfiguriert ist.
5. Teste das Skript, indem du die Empfänger und die Nachricht auswählst.

Hintergrundwissen
- Telegram-Integration: Um Nachrichten über Telegram zu senden, muss die Telegram-Bot-Integration in Home Assistant eingerichtet sein. Dies erfordert die Erstellung eines Bots über den Telegram-BotFather und das Erhalten eines API-Tokens.
- Chat-IDs: Jede Telegram-Nachricht wird an eine spezifische Chat-ID gesendet, die für jeden Benutzer oder jede Gruppe einzigartig ist. Diese IDs müssen korrekt in das Skript eingefügt werden, um sicherzustellen, dass die Nachrichten an die richtigen Empfänger gesendet werden.

Zusätzliche Infos

FunktionBeschreibung
`telegram_bot.send_message`Sendet eine Nachricht über den Telegram-Bot.
`variables`Definiert Variablen, die in der Automatisierung verwendet werden.
`id_map`Eine Zuordnung von Namen zu Chat-IDs.
`namespace`Ermöglicht die Verwendung von Listen in Jinja2-Templates.

Hinweise & Best Practices
- Stelle sicher, dass die Chat-IDs korrekt sind, um Fehler beim Senden von Nachrichten zu vermeiden.
- Teste das Skript mit verschiedenen Empfängern, um sicherzustellen, dass die Logik der Variablen korrekt funktioniert.
- Halte die Telegram-Integration und Home Assistant auf dem neuesten Stand, um von neuen Funktionen und Sicherheitsupdates zu profitieren.
- Berücksichtige die Privatsphäre der Empfänger und sende keine unerwünschten Nachrichten.