Skript zum Senden von Nachrichten über Telegram
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
Funktion | Beschreibung |
---|---|
`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.