Was sind Webhooks und wie funktionieren sie?
Wenn du dich schon etwas länger mit dem Thema Smart Home oder IT beschäftigst weißt du, dass Systeme miteinander kommunizieren. Dabei ist dir vielleicht nicht klar, wie Systeme genau miteinander kommunizieren oder wie Daten zwischen verschiedenen Geräten ausgetauscht werden. In diesem Artikel zeige ich dir daher die Technologie der Webhooks.
Ich möchte dir gerne erklären, was es mit Webhooks auf sich hat und warum sie gerade im Smart Home äußerst praktisch sein können. Ich zeige dir außerdem anhand verschiedener Beispiele, wie Webhooks funktionieren und wofür sie eigentlich gebraucht und eingesetzt werden. Damit das Thema für dich nicht zu trocken wird, versuche ich an passenden Stellen immer einen praktischen Bezug herzustellen.
Mein Interesse basiert dabei vor allem auf der losen Kopplung von Systemen. Gerade im Smart Home könnten Webhooks einen enormen Vorteil bringen. Jedoch werden sie in meinen Augen zum aktuellen Zeitpunkt noch viel zu stark unterschätzt. Das liegt unter anderem auch daran, dass sicherlich einige Enthusiasten diese Technologie gar nicht im Blick haben.
Was die ganze Thematik übrigens mit IFTTT zutun hat, wirst du in diesem Artikel auch erfahren.
Was sind Webhooks?
Der Name Webhook ist ein zusammengesetzter Begriff aus den Worten Web und Hook (Quelle: Wikipedia). Wie du bereits sehen kannst, hat es demnach etwas mit dem Web, also dem Internet zutun. Woher der Begriff generell stammt, ist von meiner Seite nicht wirklich zu erklären. Schätzungsweise wurde schon vor längerer Zeit durch ein Unternehmen dieser Begriff geprägt.
Grundsätzlich handelt es sich bei Webhooks um eine nicht-standardisierte Technologie zum Nachrichtenaustausch. Ihr Einsatzgebiet ist hauptsächlich bei der Kommunikation zwischen Servern, beispielsweise beim verteilten Rechnen. Nicht-standardisiert bedeutet dabei, dass grundsätzlich jede Nachricht in einer beliebigen Form über Webhooks verschickt werden können. In der Regel nutzt man hierfür jedoch ein standardisiertes Protokoll, das von beiden Seiten verstanden wird.
Bei einem Webhook handelt es sich also um eine Nachricht, die ein Server empfängt. Diese Nachricht kann zum Beispiel über ein eintretendes Ereignis informieren oder eine Zustandsänderung mitteilen.
Besonders ist hierbei jedoch, dass es keine feste Kopplung zwischen zwei Systemen geben muss. Einen Webhook kann man prinzipiell an jedes Gerät versenden. Ebenso kann jedes Gerät einen Webhook empfangen, sofern es mit dem Internet verbunden ist. In der Regel handelt es sich dabei – wie bereits erwähnt – jedoch nur um Server.
Welche Systeme nutzen Webooks?
Wer sich ein wenig mit Softwareentwicklung beschäftigt weiß, dass heute sehr viele IT-Systeme auf Webhooks setzen, um Informationen miteinander auszutauschen. Eine sehr prominentes Beispiel sind Zahlungsdienstleister (z. B. Paypal). Sie informieren den eigenen Shop mit einem Webhook über den Status der Zahlung (z. B. erfolgreich) und geben so den Versand frei.
Aber auch andere Systeme wie zum Beispiel Zapier, Hubspot, Discord und viele weitere nutzen Webhooks, um ihre eigenen Plattformen, für Entwickler zu öffnen. Dabei sind diese Plattformen oftmals nicht nur in der Lage Webhooks zu empfangen. Sie versenden sie bei bestimmten Aktionen auch aktiv an eine vorher definierte URL.
Auf diese Art und Weise können Systeme miteinander interagieren und Informationen austauschen. Das ist in der heutigen Zeit ein elementarer Bestandteil von Diensten und dem Internet. Doch kommen wir wieder zurück auf die Webhooks im Smart Home.
Warum sind Webhooks für das Smart Home interessant?
Wie du vielleicht weißt, besteht das Smart Home aus einer Vielzahl von Geräten. Diese Geräte kommunizieren häufig nicht miteinander, obwohl sie technisch dazu in der Lage sind. Das bringt den Nachteil mit sich, dass man immer eine übergeordnete Zentrale einsetzen muss. Eine solche Zentrale kann zum Beispiel ioBroker, OpenHAB oder auch Home Assistant sein.
Doch selbst wenn du eine übergeordnete Zentrale einsetzt, bedeutet das nicht automatisch Perfektion. In der Regel läuft es so, dass deine Zentrale regelmäßig Daten bei den jeweiligen Geräten abfragt. Zum Beispiel werden alle 10 Sekunden deine Lampen gefragt, in welchem Zustand sie sich befinden. Das ist nicht nur eine Belastung für das Netzwerk, sondern auch nicht gerade effizient.
Im Falle von Webhooks wäre es nun so, dass deine Zentrale eigenständig keine Daten (oder nur sehr wenige – z. B. Initialzustand) abfragen muss. Sollte sich nun der Zustand deiner Lampe verändern, wird diese eigenständig aktiv und meldet das deiner Zentrale weiter.
Nach diesem Kommunikationsverfahren können Online-Dienste eine Veränderung an dein Smart Home weitergeben, ohne dass hierfür eine dauerhafte Verbindung notwendig ist. Sobald sich beispielsweise die Daten für die aktuelle Wettervorhersage ändern, schickt die Plattform eine Nachricht an dein Smart Home mit den neuen Werten. Aus der Sicht des Smart Homes ist dafür lediglich eine einzige Verbindung notwendig, die noch nicht einmal dauerhaft aufrecht gehalten werden muss. Verpasst deine Technik einen Webhook, wird ihr der nächste trotzdem noch zugestellt.
Wo liegen die Probleme?
Grundsätzlich ist es in einem Smart Home so, dass deine Geräte hinter einer Firewall geschützt sind. Diese Firewall ist notwendig, damit du Angriffen von Hackern nicht schutzlos ausgeliefert bist. Dabei wehrt die Firewall sämtliche Zugriffe ab, die nicht explizit zugelassen sind.
Doch auch wenn du die Technologie einer Firewall aushebelst oder umgehst, wirst du damit nicht unbedingt glücklich werden. Das Deaktivieren der Firewall bringt ein großes Risiko mit sich, gerade wenn es um das Smart Home geht. Du öffnest grob gesagt jedem Menschen dieser Welt deine Haustür. Er muss nur noch durchgehen. Das bedeutet natürlich, dass jeder Mensch auf dieser Welt dein Smart Home steuern kann, wenn er die Zugangsdaten erhält. Behältst du die Zugangsdaten für dich, kann derjenige dennoch versuchen unerlaubten Zugriff zu bekommen.
Das Smart Home ist damit nicht unbedingt direkt für Webhooks geschaffen, da es große Hürden gibt. Diese Hürden lassen sich nur dann umgehen, wenn die Sicherheit verringert wird. Und dennoch kann es interessante Ansätze geben.
Wie kann man die Probleme umgehen?
Eine Möglichkeit zur Umgehung der Problematik ist die Verbindung mit einer Cloud. Nehmen wir hierfür als Beispiel die ioBroker-Cloud an. Innerhalb dieser Cloud gibt es einen Link, der unmittelbar zu deinem Smart Home führt. Dein Smart Home wiederum hält eine dauerhafte Verbindung zur Cloud, versteckt sich aber weiterhin hinter der Firewall. Trifft nun über diesen Link ein Webhook ein, wird er über die Verbindung direkt in dein Smart Home geleitet. Dein System selbst muss hierfür nicht ständig nachfragen, ob es zu einer Änderung gekommen ist.
Neben dieser Möglichkeit lässt sich mit einem etwas größeren Aufwand auch eine eigene Software oder Schnittstelle nutzen, die frei im Internet zur Verfügung steht. Über diese Schnittstelle werden die Webhooks entgegen genommen und an dein internes System weitergeleitet. Damit hast du zwar eine Freigabe ins Internet, jedoch ist das eigentliche System weiterhin geschützt.
Beide Möglichkeiten bilden in meinen Augen einen interessanten Ansatz, wie Systeme lose mit dem Smart Home gekoppelt werden können.
Wo werden Webhooks eingesetzt?
In Zeiten der Digitalisierung – das weißt du sicherlich selbst – müssen immer mehr Systeme miteinander kommunizieren. So ist es zum Beispiel nicht gerade selten, dass Online Shops mit einem Zahldienstleister sprechen und Cloud-Plattformen Statusänderungen an Unternehmenssoftware senden.
Ein klassisches Beispiel hierfür ist Paypal in einem Online Shop. Der Kunde bestellt seine Ware und gibt seine Zahlungsdaten auf der Website ein. Nun überprüft Paypal auf Basis von Schnittstellen zu Banken, ob das Konto über Deckung verfügt und der Betrag abgebucht werden kann. Ist alles in Ordnung, sendet Paypal einen Webhook an den Shop mit der Information, dass die Zahlung abgebucht wurde. Das Shopsystem kann nun den Mitarbeitern mitteilen, dass die Artikel in den Versand gehen können.
Wer eher auf Informationen aus ist, kann ebenso Webhooks nutzen. So können zum Beispiel Systeme ihre Statusänderungen in Microsoft Teams oder Slack senden, so dass der Nutzer direkt darüber informiert ist.
Im Smart Home wäre es nun denkbar, dass auf Basis dieser Informationen eine Aktion gestartet wird. Zum Beispiel wird eine Lampe eingeschaltet, sobald ein Anruf eingeht.
Gibt es das nicht schon im Smart Home?
Sofern du dir nun die Frage stellst, ob es eine solche Technologie nicht schon im Smart Home gibt, hast du nicht ganz Unrecht. So werden zum Beispiel Telegram Nachrichten aus ioBroker per Webhook versendet. Jedoch ist es hierbei so, dass die Verbindung aus deinem Netzwerk ins Internet aufgebaut wird und nicht umgekehrt. Hierbei spielt dann die Firewall auch keine Rolle mehr, zumindest im Heimbereich.
Was ich allerdings meine ist genau der umgekehrte Fall. Dein Smart Home empfängt von anderen Systemen Daten, ohne diese ständig danach fragen zu müssen. Das entlastet deine Zentrale, dein Netzwerk und schont auch Ressourcen. Sogar bei Dienstanbietern kann das interessant sein. Denn diese werden nicht ständig mit unzähligen Anfragen bombardiert, sondern gehen von sich aus auf ihre Abonnenten zu und liefern neue Informationen.
Home Assistant Webhooks
Wir Nutzer von ioBroker schauen auch gerne mal über den Tellerrand. In vielen Aspekten bedeutet das, dass wir einen Blick auf Home Assistant werfen. Eine ebenso mächtige und vielversprechende Lösung für das Smart Home. Dass auch Home Assistant Webhooks unterstützt, dürfte dabei kaum ein Wunder sein.
In der Praxis bedeutet das, dass vor allem externe Systeme dabei Automationen starten können. So können zum Beispiel fremde Systeme, die nicht direkt mit der eigenen Lösung verbunden werden können, ebenso ins Smart Home geholt werden. Oftmals bedeutet das jedoch einen Programmier-Aufwand, da man die Brücke zwischen zwei Systemen manuell herstellen muss.
Soweit ich das durch den Blogpost von Marco evaluieren kann, sind aber gerade bei Home Assistant (aber auch ioBroker) die Aufwände überschaubar. Wenn du also mehr zum Thema Webhooks mit Home Assistant wissen möchtest, empfehle ich dir den Blogpost von Marco zum Thema Home Assistant mit WebHooks automatisieren.
Woher du Webhooks schon kennst
Vielleicht bist du schon darauf gekommen, woher du Webhooks kennst. Eventuell tappst du jedoch noch im Dunkeln, aus dem ich dir gerne helfen möchte.
Der Dienst IFTTT arbeitet auf Basis dieser Webhooks. Stellvertretend für dich nimmt er Anfragen entgegen und dein Smart Home kann die Daten hiervon wieder abrufen. Manche Geräte können auch direkt mit IFTTT integriert werden, so dass zum Beispiel eine dauerhafte Verbindung besteht oder auch hier wieder mit Webhooks gearbeitet wird.
Ein in meinen Augen tolles Beispiel hierfür ist übrigens der Telefonieanbieter Satellite. Dieser erlaubt die Integration deiner App in dein Smart Home. Hierfür wird die Vernetzung über IFTTT vorgenommen, wodurch du zum Beispiel deine Lampen blinken lassen kannst sobald ein Anruf eingeht. Aber auch mit iRobot lassen sich ähnliche Szenarien schaffen, auch wenn iRobot selbst mit MQTT arbeitet (überrascht?).
Was meinst du zum Thema Webhooks? Sinnvoll oder kann das weg? Schreib es mir gerne in die Kommentare und lass mich an deinen Gedanken teilhaben. Ich freue mich darauf!
Webhooks testen
Da ich selbst im Bereich der Softwareentwicklung aktiv bin will ich dir gerne noch einen Tipp mit auf den Weg geben, der durchaus hilfreich sein kann. Denn wer mit Webhooks arbeitet, möchte diese auch gerne testen können.
Einige Systeme, darunter auch Paypal, bieten Funktionen zum Testen der Webhooks. Andere Systeme hingegen bieten eine solche Funktion nicht und daher muss man den Endpunkt selbst testen, an den der Webhook geschickt werden soll.
Je nachdem über welche der sogenannten HTTP-Methoden das erfolgen muss, kannst du das entweder im Browser selbst machen (bei GET-Requests) oder du brauchst eine zusätzliche Software. Ich persönlich greife hier gerne auf Postman zurück. Das Tool kann kostenlos genutzt werden und bietet eine breite Auswahl an Möglichkeiten, um Schnittstellen von IT-Systemen zu testen. Das ist nicht nur im Bezug auf Webhooks, sondern auch viele weitere Schnittstellen interessant.
Und auch im Smart Home hat mit das Tool schon öfter mal dabei geholfen, um die richtigen Schnittstellen zu testen und mein eigenes Zuhause weiter zu verbessern.
0 Kommentare