Aktionen für Automatisierungen Template erstellen

geniussx

New member
Hallo zusammen,
ich bin gerade dabei mich in HomeAssistant einzuarbeiten.
Ich bin gerade bei den Automatisierungen. Ich habe mir hier
eine WhatsApp benachrichtigung eingerichtet.

Nun würde ich gerne eine Vorlage ertellen, welche ich in den Aktionen einfach
zum auswählen ist.
Hoffe ich habe das verständlich beschrieben, mal ein Screenshot zum verdeutlichen

Das unter den Details muß ich für Jede Automatisierung neu einstellen. Hierfür hätte ich gern
eine Vorlage, z.B. wenn später noch mehr Devices zur Sprachausgabe hinzukommen, dann wäre nur
ein Template zu ändern ?
 

Anhänge

  • Aktionen.png
    Aktionen.png
    44,4 KB · Aufrufe: 16
  • Details.png
    Details.png
    145,7 KB · Aufrufe: 15
Ich habe unter Automatisierung die Bedingung, wann eine Aktion ausgeführt werden soll und dann unter Skripte, was er dann machen soll, also z.B. einen Text ansagen.
In der Automatisierung rufst Du einen Skript einfach mittels "Skript name_des_skrip" auf und unter Skript kannst Du ja jeden Skript mittel "Duplizieren" vervielfältigen und dann kurz abändern. Name des Skript anpassen und dann in der Automatisierung aufrufen.
 
Könntest Du das mal bitte anhand eines Beispiel zeigen u5zzug ? So weit reichen meine Kenntnisse dann auch wieder nicht, klingt aber Interessant dein Lösungsansatz.
 
Zusammengesucht aus nem Testanwendungsfall.
Die Variablen benutze ich für Sachen, die ich an mehreren Stellen brauche und für langes Zeug zwecks Übersicht. Den variables: Block muss man im Yaml händisch einfügen.

YAML:
action:
  - service: script.1655549409115
    data:
      title: PC - {{ camera_name }}"
      message: |
        {{ label }} entdeckt
      data:
        image: "{{base_url}}:5000/api/events/{{frigate_id}}/thumbnail.jpg"
variables:
  frigate_id: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
  camera: "{{ trigger.payload_json[\"after\"][\"camera\"] }}"
  camera_name: "{{ camera | replace(\"_\", \" \") | title }}"
  object: "{{ trigger.payload_json[\"after\"][\"label\"] }}"
  label: >-
    {{ object | replace("cat", "Katze")| replace("dog", "Katze")| title }}
  entered_zones: "{{ trigger.payload_json[\"after\"][\"entered_zones\"] }}"
  zone_divider: " -> "
  zones: |-
    {{ entered_zones | join(zone_divider) | title if entered_zones | count else 'False' | bool }}

Skript
YAML:
alias: Nachricht PC - Self Selected
description: Benachrichtige alle PCs, deren Schalter auf an steht
sequence:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.notify_pc_a
            state: "on"
        sequence:
          - service: notify.hass_agent_a
            data:
              title: "{{ title }}"
              message: "{{ message }}"
              data: "{{ data }}"
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.notify_pc_b
            state: "on"
        sequence:
          - service: notify.hass_agent_b
            data:
              title: "{{ title }}"
              message: "{{ message }}"
              data: "{{ data }}"
 
Zuletzt bearbeitet:
Hmmm, ich habe da nun auch ein paar andere Beiträge zu gelesen, aber die sind leider auch nur oberflächlich geschrieben.
Nach dem Motto "ja, man kann Variablen verwenden" dann folgt ein Codebeispiel, aber leider ohne jegliche Erklärungen. So geht es mir bei deinem Code auch. Welche Variable wird da wann wohin übergeben ?

Ok, ich habs jetzt hin bekommen. Am Beispiel einer Sprachausgabe via Alexa will ich euch gerne daran teil haben.
Erst einmal habe ich einen Skript "Alexa Sprachausgabe" erstellt.
Code:
alias: Alexa Sprachausgabe
sequence:
  - service: notify.alexa_media
    data:
      message: "{{ message }}"
      target: "{{ entities }}"
    enabled: true
mode: single
Diesem Skript müssen zwei Werte übergeben werden. Einmal der Text, den Alexa sagen soll, hier in {{ message }} abgelegt und einmal, auf welchen Geräten der Text wiedergegeben werden soll, hier in {{ entities }}

Nun gehen wir in die Automatisierung und rufen dann unseren Skript auf.
Code:
alias: Alexa Sprachtest
description: ""
trigger: []
condition: []
action:
  - service: script.alexa_sprachausgabe
    data:
      message: Nur ein Test
      entities:
        - media_player.rudis_echo
        - media_player.rudigers_echo_dot
        - media_player.rudigers_2_echo_dot
mode: single
Da ich diese Automatisierung aktuell nur per Hand auslöse, sind natürlich keine trigger definiert.
Ich übergebe also die "message" variable mit dem Text "Nur ein Test" und die "entities" Variable mit den drei Geräten, wo der Text ausgegeben werden soll.

Vorteil an den Variablen hier ist, das ich mit mehreren Automatisierungen nur einen Skript ansteuern muß, um Alexa verschiedene Dinge sagen zu lassen.
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.115
Beiträge
59.425
Mitglieder
6.160
Neuestes Mitglied
gonzo12345
Zurück
Oben