Webhook Automation: type ausgeben

Rat und Tat rings um Home Assistant Automationen.


Antworten
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Webhook Automation: type ausgeben

Beitrag von Markus »

Ein Webhook löst eine Automation aus, zusätzlich soll auch ein Text (type) über die Sonos Lautsprecher ausgegeben werden > wie könnte ich das anstellen?

Aufbau der Automation (das schalten funktioniert)

Code: Alles auswählen

trigger:
  - platform: webhook
    allowed_methods:
      - POST
    local_only: false
    webhook_id: '-hook-id'
condition: []
action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.steckdose
mode: single

curl command (zum testen bzw. gleicher Aufbau)

Code: Alles auswählen

curl -X POST -d 'type=STICHWORT' https://meinHA.duckdns.org/api/webhook/hook-id
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Webhook Automation: type ausgeben

Beitrag von Osorkon »

Als message diese Template verwenden.

Code: Alles auswählen

{{ trigger.data.type }}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Re: Webhook Automation: type ausgeben

Beitrag von Markus »

Wie meinst du das? Im notify kommt es leider nicht an

Code: Alles auswählen

service: notify.mobile_app_xxx
data:
  title: Stichwort
  message: Stichwort "{{ trigger.data.type }}"

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Webhook Automation: type ausgeben

Beitrag von Osorkon »

Was kommt den an?
mit diesem curl command als Trigger

Code: Alles auswählen

curl -X POST -d 'type=STICHWORT' https://meinHA.duckdns.org/api/webhook/hook-id

und dieser Message

Code: Alles auswählen

  message: Stichwort: "{{ trigger.data.type }}"

sollte folgende Message ankommen
Stichwort: STICHWORT

Sonst versuch's mal mit:

Code: Alles auswählen

  message: |
    Stichwort: {{ trigger.data.type }}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Re: Webhook Automation: type ausgeben

Beitrag von Markus »

Osorkon hat geschrieben: Di 29. Aug 2023, 22:26

Sonst versuch's mal mit:

Code: Alles auswählen

  message: |
    Stichwort: {{ trigger.data.type }}

Da kommt

Code: Alles auswählen

Stichwort:

an, mehr leider nicht

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Webhook Automation: type ausgeben

Beitrag von Osorkon »

Wie sieht den der Webhook aus, den Du rausschickst?

ohne Data:

Code: Alles auswählen

curl -X POST https://meinHA.duckdns.org/api/webhook/hook-id

Mit der Message:

Code: Alles auswählen

  message: |
    Stichwort: {{ trigger.data.type }}

Bekommst Du das Ergebnis: Stichwort:

oder mit Data:

Code: Alles auswählen

curl -X POST -d 'type=STICHWORT' https://meinHA.duckdns.org/api/webhook/hook-id

Hier lautet das Ergebnis: Stichwort: STICHWORT

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Re: Webhook Automation: type ausgeben

Beitrag von Markus »

Es lautet das Ergebnis in beiden Fällen immer nur Stichwort:

Das STICHWORT aus data wird nicht übernommen

Code: Alles auswählen

      message: |
        Stichwort: {{ trigger.data.type }}
mode: single
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Webhook Automation: type ausgeben

Beitrag von Osorkon »

Zeige mal die vollständige Automatisierung.
Der Auslöser ist auch der eingehende Webhook?

Wie setzt Du den Webhhok ab?

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Re: Webhook Automation: type ausgeben

Beitrag von Markus »

Vollständige Automatisierung:

Code: Alles auswählen

alias: Steuerung_webhook
description: ""
trigger:
  - platform: webhook
    allowed_methods:
      - POST
    local_only: false
    webhook_id: "hook-id"
condition:
  - condition: state
    entity_id: device_tracker.track
    state: home
action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.tapo_steckdose
  - service: notify.mobile_app
    data:
      title: Webhook
      message: |
        Stichwort: {{ trigger.data.type }}
mode: single

Abgesetzt wird der Webhook über Windows Eingabeaufforderung (cmd)

Code: Alles auswählen

curl -X POST -d 'type=STICHWORT' https://meinHA.duckdns.org/api/webhook/hook-id
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Webhook Automation: type ausgeben

Beitrag von Osorkon »

Dann gehen mir langsam die Ideen aus?!

Bei mir funktioniert die übergäbe der Daten aus dem Webhook wie beschrieben.
Egal ob ich eine Notification sende, Telegram, Mobile App. Oder TTS an einen Smart Speaker.

Der einzige unterschied wäre noch, dass Du den curl Befehl von Windows aus absetzen tust und ich vom Mac aus.

Ansonsten versuche mal die Daten in json Format zu ergeben.

Ändere den url Befehl nach diesem Schema:

Code: Alles auswählen

curl -X POST -H "Content-Type: application/json" -d '{ "type": "STICHWORT" }' https://meinHA.duckdns.org/api/webhook/hook-id

Und das Template dazu sieht dann so aus:

Code: Alles auswählen

{{ trigger.json.type }}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Re: Webhook Automation: type ausgeben

Beitrag von Markus »

Code: Alles auswählen

curl: (3) URL using bad/illegal format or missing URL
curl: (6) Could not resolve host: STICHWORT
curl: (3) unmatched close brace/bracket in URL position 1:
}'
 ^
Benutzeravatar
Markus
Beiträge: 439
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 22 times
Been thanked: 8 times

Re: Webhook Automation: type ausgeben

Beitrag von Markus »

Osorkon hat geschrieben: Fr 1. Sep 2023, 11:42

Dann gehen mir langsam die Ideen aus?!

Bei mir funktioniert die übergäbe der Daten aus dem Webhook wie beschrieben.
Egal ob ich eine Notification sende, Telegram, Mobile App. Oder TTS an einen Smart Speaker.

Der einzige unterschied wäre noch, dass Du den curl Befehl von Windows aus absetzen tust und ich vom Mac aus.

Ansonsten versuche mal die Daten in json Format zu ergeben.

Ändere den url Befehl nach diesem Schema:

Code: Alles auswählen

curl -X POST -H "Content-Type: application/json" -d '{ "type": "STICHWORT" }' https://meinHA.duckdns.org/api/webhook/hook-id

Und das Template dazu sieht dann so aus:

Code: Alles auswählen

{{ trigger.json.type }}

Gruß
Osorkon

Warum auch immer, es funktioniert nun! Danke

Möchte das Ganze jetzt noch erweitern das der Text ( "type": "STICHWORT") über die Sonos Lautsprecher ausgegeben wird......hast dazu auch einen Tipp?

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Webhook Automation: type ausgeben

Beitrag von Osorkon »

Markus hat geschrieben: Mo 11. Sep 2023, 22:05

Möchte das Ganze jetzt noch erweitern das der Text ( "type": "STICHWORT") über die Sonos Lautsprecher ausgegeben wird......hast dazu auch einen Tipp?

Nicht anders als Du das schon mit der Benachrichtigung gemacht hast.
Als Message einfach das Template angeben.

Code: Alles auswählen

message: "{{ trigger.json.type }}"

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Antworten