Skript zum senden per Telegram

Hallo Zusammen,

Ich habe folgendes Video gesehen und dachte mir ich kann mir sein Skript als Vorlage nehen

Ich möchte das Ganze gern für Telegram- Empfänger nutzen

Die Felder habe ich nur mit anderen Namen von Tobias übernommen

Die Variablen sollen dann die Chat-IDs sein

variables:
  targets: |-
    {% set t = [] %} 
    {% if empfaenger_marcel %}
      {% set t = t + ["ChatID-01"] %}
    {% endif %} 
    {% if empfaenger_diana %}
      {% set t = t + ["ChatID-02"] %}
    {% endif %} 
    {% if empfaenger_alle %}
      {% set t = t + ["ChatID-01", "ChatID-02"] %}
    {% endif %} 
    {{ t | unique | list }}
alias: targets für alle gewünschten "notify" Dienste

Das Skript zum senden der Telegram würde dann so aussehen

action: telegram_bot.send_message
data:
  config_entry_id: 01K0NF8EY86XXXXXXXXXXXXX
  target:
    - ChatID-01
    - ChatID-02
  message: Hallo du
  title: Das ist der Titel

Kann mir evtl. jemand behilflich sein wie ich die Variablen in das Telegram-Skript bekomme?

Danke im Voraus

Gruß
Marcel

Ich nutze ebenfalls ein solches Script zwar nur mit den regulären Benachrichtigungen und nicht mit Telegram. Aber vielleicht kann ich dir helfen.

Allerdings brauche ich mehr Informationen, z.B. wo wird die Variable überhaupt erzeugt. In dem Script in einer separaten Automation da fehlen leider wirklich noch genaue Informationen. Am besten teilst du mal den kompletten YAML-Code damit man sich mal ein komplettes Bild machen kann.

2 „Gefällt mir“

@UncleSam139

Sehr gern
hier der der YAML-Code

sequence:
  - variables:
      targets: |-
        {% set t = [] %} 
        {% if empfaenger_marcel %}
          {% set t = t + ["Chat-ID01"] %}
        {% endif %} 
        {% if empfaenger_diana %}
          {% set t = t + ["Chat-ID02"] %}
        {% endif %} 
        {% if empfaenger_alle %}
          {% set t = t + ["Chat-ID01", "Chat-ID02"] %}
        {% endif %} 
        {{ t | unique | list }}
    alias: targets für alle gewünschten "notify" Dienste
  - action: telegram_bot.send_message
    data:
      config_entry_id: 01K0NF8EY866BBXXXXXXXXXXXXXX
      target:
        - Chat-ID01
        - Chat-ID02
      message: hallo du
      title: Das ist der Titel
fields:
  title:
    selector:
      text: null
    name: title
    description: Bitte gebe den Titel der Nachricht ein
  message:
    selector:
      text: null
    name: message
    description: "Bitte gebe deine Nachricht ein "
  empfaenger_marcel:
    selector:
      boolean: {}
    name: empfaenger_marcel
  empfaenger_diana:
    selector:
      boolean: {}
    name: empfaenger_diana
  empfaenger_alle:
    selector:
      boolean: {}
    name: empfaenger_alle
alias: Telegram senden
description: ""

Die Chat-IDs kommen dann bei Telegram in „Ziel“ rein

Hab jetzt Telegram zum testen auf meinem Handy + Home Assistant installiert, das mit der Variablen stell ich mir grundsätzlich recht simpel vor.

Was mich nur irritiert ist, wie entscheidest du wer die Nachricht bekommt machst du das dann in jeder Automation via Auswahl der Option oder durch bestimmte Bedingungen?

Ich würde das dann gern bei jeder Automation auswählen

1 „Gefällt mir“
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: ""

Hier ist der Code für dich.

Wichtig:
Ich habe einige Sachen abgeändert.

  1. title und message sind Pflichtfelder, dies kann natürlich auch deaktiviert werden.
  2. Die Auswahl der Empfänger erfolgt nun per Auswahl - Mehrfachauswahl ist möglich

Vergiss nicht deine Telegram Integration auszuwählen und die Fake Chat-IDs gegen die korrekten auszutauschen.

Fake Chat-ID: 1234567890

Ich hoffe alles funktioniert, bei dir genauso gut wie bei mir. Falls Probleme oder Fragen auftreten kannst du dich gern melden.

1 „Gefällt mir“

@UncleSam139

Sehr geil

Vielen Dank

Eine Frage hätte ich noch

Könnte man bei der Message evtl. das so machen das man mehrere Zeilen nutzen kann?

Sollte das Problem lösen. :wink:

1 „Gefällt mir“

@UncleSam139
Vielen Dank
Jetzt ist das Ganze perfekt

1 „Gefällt mir“

Freut mich das ich dir helfen konnte und oben drauf hab ich noch was gelernt. Win-Win für uns beide. :wink: