Wenn man Home Assistant nutzt, hat man in der Regel viele Dinge oder GerĂ€te bereits im Home Assistant angelegt. Es gibt jedoch einige AnwendungsfĂ€lle, wo man Automationen (und entsprechende Aktionen) in Home Assistant ausfĂŒhren möchte, diese aber nicht von Home Assistant selbst ausgelöst werden. Hier kommen WebHooks zum Einsatz.
Was sind WebHooks
Im Kern sind WebHooks nichts anderes als API-Endpunkte. Was genau API-Endpunkte sind, erfĂ€hrst du in meiner EinfĂŒhrung zu REST-APIs đ

Diese definierten Endpunkte werden durch Systeme bereitgestellt, in dem Falle Home Assistant und erwarten (in der Regel) eine vordefinierte Struktur.
So können wir Daten an ein System ĂŒbergeben und damit das andere System mit Daten fĂŒttern oder anzeigen, dass gerade eine Aktion ausgefĂŒhrt worden ist.
Ich selbst nutze einen solchen WebHook in n8n (hierzu habe ich bereits einen Artikel geschrieben) um mir eine Benachrichtigung ĂŒber Home Assistant an mein Handy zu schicken, wenn ich einen neuen Blog-Artikel veröffentliche. Da ich viele Artikel im Vorfeld plane, ist es immer schön zu sehen, dass ein Artikel auch gepostet worden ist.
Wie werden WebHooks in Home Assistant definiert?
In Home Assistant ist es recht einfach, WebHooks zu definieren. Hierzu brauchen wir nur eine neue Automation erstellen und als Einstiegspunkt "Webhook" auswÀhlen.

Jeder dieser WebHooks bekommt dann eine feste ID, mit der dieser erreicht werden kann. Bei Home Assistant werden die WebHooks immer als POST oder PUTangegeben, so dass man dort auch Daten ĂŒbergeben kann. Ein GEThĂ€tte den Nachteil, dass man hier nur Daten ĂŒber den Query-String mitliefern kann.
Das heiĂt, dass wir unseren WebHook wie folgt erreichen könnten:
POST https://homeassistant.local/api/webhook/-mNLpFGdHRSK0fhJIFDEOydyMFeuern wir nun den Request mit cURL ab, sehen wir unseren Request in den AutomationsablÀufen:

Liefern wir Ihm im Bodyauch Daten als JSONmit, sehen wir auch diese:


In der Automation selbst, haben wir also im Trigger unsere Daten. In einem Home Assistant-Template können wir mit {{ trigger.json }} darauf zugreifen.
Diese Daten können wir dann weiter verwenden, um z.B. eine Benachrichtigung in Home Assistant zu feuern:
service: notify.notify
data:
title: Post veröffentlicht đ
message: "'{{ trigger.json.name }}' veröffentlicht"
Und damit wÀre dein erster WebHook geschrieben und einsatzfÀhig.
Cheers đ€
Sicherheit bei WebHooks
Da WebHooks HTTP-Endpunkte sind, die von auĂen erreichbar sein mĂŒssen, ist Sicherheit besonders wichtig. Verwende immer lange, zufĂ€llig generierte Webhook-IDs und stelle sicher, dass dein Home Assistant hinter einem Reverse Proxy mit HTTPS lĂ€uft. So verhinderst du, dass Unbefugte deine Automationen auslösen können.
Praxisbeispiele fĂŒr WebHooks
WebHooks eröffnen vielfÀltige Möglichkeiten: Du kannst sie mit n8n oder IFTTT kombinieren, um bei bestimmten E-Mails eine Automation auszulösen, oder mit GitHub Actions, um nach einem erfolgreichen Deployment eine Benachrichtigung auf deinem Smart Display anzuzeigen. Auch Dienste wie Pushover oder Telegram können Webhooks nutzen, um Befehle an Home Assistant zu senden.
Besonders praktisch sind WebHooks in Kombination mit NFC-Tags: Halte dein Smartphone an einen NFC-Tag an der HaustĂŒr und löse damit die âIch bin zuhause"-Automation aus, die Licht, Heizung und Musik einschaltet.
WeiterfĂŒhrende Artikel
Wenn dir dieser Artikel gefallen hat, könnten dich auch diese BeitrÀge interessieren:
