
Home Assistant: Proxmox-Webhooks nutzen
Seit Proxmox Version 8.3 werden als Ziel für Benachrichtigungen (Notifications) auch sog. Webhooks unterstützt. Das sind also HTTP-Aufrufe gegen ein beliebiges Ziel. Damit könnte man beispielsweise eine Push-Notification über Pushover generieren. Oder man gibt die Informationen einfach an sein Home Assistant System und kann damit tun was immer man will. Die nötigen Schritte dafür zeige ich Dir in diesem Video.
Kurz vorab: Bitte entschuldige, dass ich den Aufruf anfangs falsch konfiguriert habe. Ich habe dann trotzdem mit der Aufnahme weiter gemacht, um Dir den Lernprozess und die Fehlersuche ebenfalls zu zeigen. Somit tasten wir uns Schritt für Schritt an das Ergebnis.
Video
Proxmox-Webhook
Beispiel
Wichtig ist, dass der Header Content-Type
auf application/json
gesetzt wird, damit Home Assistant weiß, dass jetzt JSON kommt und der HTTP-Body entsprechend geparsed wird.
{
"title": "{{ escape title }}",
"message": "{{ escape message }}",
"severity": "{{ escape severity }}",
"timestamp": {{ timestamp }},
"fields": {{ json fields }}
}
»Proxmox Webhook«
Platzhalter
{{ title }}
: Titel der Benachrichtigung{{ message }}
: Text / Nachricht{{ severity }}
: Schweregrad (info, notice, warning, error, unknown){{ timestamp }}
: Zeitstempel als UNIX-Timestamp in Sekunden{{ fields.<name> }}
: Weitere Felder der Benachrichtigung.fields.type
enthält beispielsweise den Typ der Benachrichtigung{{ secrets.<name> }}
: Zugriff auf die definierten Secrets - also sensible Informationen, welche im Dialog definiert wurden
Weiterhin gibt es folgende Helfer-Funktionen:
{{ url-encode <wert/eigenschaft> }}
: URL-encoding für eine Eigenschaft{{ escape <wert/eigenschaft> }}
: Escaping für Werte, welche direkt im JSON verwendet werden können (Beispiel siehe oben){{ json <wert/eigenschaft> }}
: Konvertiert einen Wert mit mehreren Eigenschaften direkt zu JSON. Beispielsweise{{ json fields }}
für alle Felder (Beispiel siehe oben)
Home Assistant Automation
Der Request muss an diese Url erfolgen: <instance_url>/api/webhook/<webhook_id>
. Die ID legt man dabei selbst in einer Automation fest!
Zugriff auf die Eigenschaften z.B. mit {{ trigger.json.title }}
für den Titel. Beispiel:
action: notify.mobile_app_matthiass_iphone
metadata: {}
data:
message: |-
{{ trigger.json.message }}
am {{ trigger.json.timestamp | timestamp_custom('%d.%m.%Y %H:%M:%S', True) }}
title: "Proxmox: {{ trigger.json.title }}"
Links
Transparenz-Hinweis (Level 1)
An diesem Beitrag ist kein Hersteller beteiligt! Sämtliche Produkte habe ich selbst gekauft und trage die kompletten Kosten für diesen Beitrag alleine! Die Inhalte wurden somit von niemandem gesehen oder abgestimmt. Es handelt sich zu 100% um meine persönliche Meinung und Erfahrung!