Daten von beliebigen Linux-Systemen in HA anzeigen

Webhooks ermöglichen es, Daten unkompliziert von einem beliebigen Linux-System an Home Assistant zu übermitteln. 

Automation: Webhook Auslöser

Für das Empfangen in Home Assistant kann eine "Automation" mit einem Webhook-Auslöser verwendet werden:

Linux-System: curl Aufruf

Mit Hilfe der Webhook-ID kann curl von einem beliebigen Linux-System die Automation auslösen und Daten übermitteln.

curl -X POST http://homeassistant.local:8123/api/webhook/WebhookID

Daten empfangen: trigger.data

Für den Empfang bestimmter Werte oder Daten steht in der Automation die Variable "trigger.data" zur Verfügung. Damit die Daten in einer Entität in Home Assistant landen, benötigen wir noch eine Entität, als Beispiel einen Text-Eingabe-Helfer:

Um den Test-Sensor mit einem Wert zu befüllen, kann der Parameter -d (Data) an curl mit dem gewünschten Wert angehängt werden:

curl -X POST  -d bashdata="state_from_curl"  http://homeassistant.local:8123/api/webhook/WebhookID

Der Text-Eingabe-Helfer hat dabei ein Limit von 255 Zeichen. 

Mehr als 255 Zeichen: HACS "Variables+History"

Die HACS-Intergration "Variables+History" ermöglicht das Befüllen der Attributes eines Sensors, wodurch beliebig lange Werte übertragen werden können. Für das Hinzufügen der Integration wird HACS vorausgesetzt, siehe: Home Assistant Integrationen

Variable anlegen

Ein Sensor, in der Integration "Variable" genannt, kann über das Hinzufügen in den Integrationen angelegt werden:

Die Variable kann jetzt in der Automation verwendet werden:

Über den curl-Befehl können damit mehrere Attribute an die Automation übergeben werden: 

curl Befehl Automation, Variables+History: Attributes
curl -X POST  -d bashdata="state_from_curl"  http://homeassistant.local:8123/api/webhook/WebhookID bashdata: "{{ trigger.data.bashdata }}"
curl -X POST  -d bashdata1="state_from_curl"  -d bashdata2="state_from_curl"   http://homeassistant.local:8123/api/webhook/WebhookID

bashdata1: "{{ trigger.data.bashdata }}"

bashdata2: "{{ trigger.data.bashdata2 }}"

Beispiel: OpenWrt

Mit Hilfe eines Cron-Jobs in OpenWrt können beliebige Daten an Home Assistant übermittelt werden, so z.B. alle verbundenen WiFi-Geräte von mehreren AccessPoints, die DHCP Leases und Usteer-Daten:

📢 Hier wird voraussichtlich am 07.08.2025 ein neuer Beitrag verlinkt werden: OpenWrt - Webhook: curl and cron Push-Nachrichten erlauben?

Variante 2: REST-API

Daten von einem Linux-Terminal können alternativ über einen AccessToken an Home Assistant übermittelt werden. Die Variante erlaubt den Access-Token allerdings weitreichende Berechtigungen in Home Assistant, daher kann ich die Variante für den hier beschriebenen Einsatzzweck nur bedingt empfehlen.

Voraussetzung: Access Token

Entität anlegen / Daten senden in Bash:

curl -X POST -H "Content-Type: application/json" -d '{"state": "50"}'   http://HA-IP:8123/api/states/counter.backup_sox_scripts_backup -H "Authorization: Bearer ??"

Fazit

Die Verwendung von Bash oder REST ermöglicht es, Werte in Home Assistant abzuliefern und diese mit Smart Home auszuwerten oder anzuzeigen. Linux-Systeme mit Zugriff auf cron können damit eingebunden, auch wenn dafür keine Integration existiert.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Beitrag erstellt von Bernhard | Veröffentlicht: 31.07.2025 | Aktualisiert: 31.07.2025 | Translation English |🔔 | Kommentare:0

Fragen / Kommentare


 
Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details