Zum Inhalt springen

Web-Anfrage ​

Schickt Web-Anfragen (GET, POST) und Webhooks an eine Adresse. Der Weg zu allem, wofür es kein eigenes Plugin gibt.

EigenschaftWert
FachWerkzeuge
Schlüsselhttp (so heißt das Plugin in Makros)
Bei frischer Installationaus (im Marktplatz einschalten)
Befehle3
Einrichtung2 Felder

Wofür ​

Der Weg zu allem, wofür es kein eigenes Plugin gibt: Eine Taste schickt eine Web-Anfrage (GET oder POST) oder einen Webhook an eine Adresse. Alles, was HTTP spricht, lässt sich so auslösen: ein selbst gebauter Dienst, WLED, ein Webhook, ein Schalter in einem Hausnetz.

Eine Taste löst etwas aus, sie liest nichts: Was zurückkommt, wird nicht angezeigt. Das Plugin gibt nur Auskunft, ob es geklappt hat.

Einrichten ​

Beides ist freiwillig:

FeldHinweis
Feste Adresse davor, z.B. http://homeassistant.local:8123Beispiel: leer lassen, wenn jede Aktion die volle Adresse traegt
Token (wird als Authorization: Bearer ... gesendet)geheim: wird nach dem Speichern nie wieder angezeigt
  • Feste Adresse davor: Ist sie eingetragen, genügt in jeder Aktion ein Pfad (/api/schalter). Ohne sie braucht jede Aktion die volle Adresse. Sonst meldet die Software „Das ist nur ein Pfad - trage eine feste Adresse in den Einstellungen ein oder schreibe die volle Adresse hin.“
  • Token: Wird als Authorization: Bearer … mitgeschickt, bei jeder Anfrage dieses Plugins. Trage es nur ein, wenn alle Ziele es verlangen und vertrauenswürdig sind.

Befehle ​

BefehlName im MakroFelderPasst auf
Adresse abrufen (GET)http.geturl Adresse oder Pfad *Taste
Etwas senden (POST)http.posturl Adresse oder Pfad *
body Inhalt, z.B. {"state": "on"}
content_type Art des Inhalts (leer = JSON)
Taste
Nachricht an einen Webhookhttp.webhookurl Webhook-Adresse *
text Text *
field Feldname (leer = content, wie bei Discord)
Taste

* ist ein Pflichtfeld.

  • Adresse abrufen (GET): schickt eine Anfrage ohne Inhalt.
  • Etwas senden (POST): Inhalt (zum Beispiel {"state": "on"}) und Art des Inhalts. Leer heißt JSON (application/json).
  • Nachricht an einen Webhook: schickt {"content": "<Text>"} als JSON. Mit Feldname änderst du content in ein anderes Feld. So sprechen auch die Webhooks von Discord und vielen anderen Diensten.

Eine Adresse darf nur mit http oder https beginnen. Ein Tastendruck soll nicht file: oder ein anderes Protokoll erreichen.

Beispiele ​

http.get url=http://192.168.1.50/relay/0?turn=on
http.post url=/api/szene body={"name": "film"} content_type=application/json
http.webhook url=https://example.org/hook text=Ich bin live! field=message

Gut zu wissen ​

  • Zeitlimit: acht Sekunden. Antwortet der Server nicht, meldet die Software „keine Antwort innerhalb von acht Sekunden“. Ein Tastendruck darf das Backend nicht aufhängen.
  • Von der Antwort wird nur der Anfang (4 KB) gelesen. Ein Fehlertext des Servers erscheint in der Meldung („404 Not Found: …“).
  • Dieses Plugin folgt Weiterleitungen, und das Token geht dabei mit. (Die Plugins für Home Assistant, Hue, Elgato und ntfy tun das nicht.) Trage ein Token deshalb nur ein, wenn alle Ziele vertrauenswürdig sind.
  • Für Home Assistant gibt es mit Home Assistant ein eigenes Plugin. Auch Discord hat mit Discord eines für Nachrichten.
  • Webhook-Adressen sind Geheimnisse. Halte sie in den Einstellungen des Plugins und nicht in der Belegung. Siehe Datenschutz.
  • Das Plugin hat nichts zu verbinden. Der Zustand ist immer bereit, und es ist bei einer frischen Installation aus.