Zum Inhalt springen
Alles Automatisch

Externe Daten im Home Assistant Dashboard – REST API einfach erklärt

Lerne, wie du externe Datenquellen per REST-API in Home Assistant einbindest. Schritt-für-Schritt-Anleitung am Beispiel eines zufälligen Dad Jokes von icanhazdadjoke.com. Inklusive JSON-Verarbeitun...

Externe Daten im Home Assistant Dashboard – REST API einfach erklärt

REST-Daten im Home Assistant Dashboard anzeigen

Mit Home Assistant kannst du externe Datenquellen über REST-APIs einbinden und die Ergebnisse direkt im Dashboard darstellen. Das ist besonders praktisch, wenn du Informationen aus dem Internet oder von eigenen Diensten nutzen möchtest. In diesem Beispiel wird gezeigt, wie du einen zufälligen Dad Joke von icanhazdadjoke.com abrufst, als Sensor speicherst und im Dashboard anzeigst.

Anwendungsfall: Zufälligen Dad Joke anzeigen

Du möchtest regelmäßig einen neuen Witz aus dem Internet abrufen und auf deinem Home Assistant Dashboard anzeigen. Das ist ein einfaches, aber anschauliches Beispiel, um REST-API-Aufrufe, das Extrahieren von JSON-Daten mit Jinja und die Visualisierung im Dashboard zu verstehen.

REST-API-Aufrufe und JSON-Verarbeitung mit Jinja

Home Assistant nutzt Jinja-Templates, um aus der JSON-Antwort der API gezielt Felder zu extrahieren. Das ist nötig, weil viele APIs komplexe Datenstrukturen zurückliefern. Im Template kannst du auf die Felder wie auf ein Dictionary zugreifen:

{{ value_json.feldname }}

Enthält der Schlüssel ein Sonderzeichen wie Bindestrich oder Leerzeichen, brauchst du die Klammerschreibweise:

{{ value_json['feld-name'] }}

Beispiel für ein JSON-Objekt:

json
{
  "name": "Max",
  "alter": 28
}

Im Jinja-Template:

jinja2
Name: {{ value_json.name }}
Alter: {{ value_json.alter }}

Weitere Informationen findest du in der Jinja Variablen-Dokumentation und bei den Ansible JSON-Filtern.

REST-Sensor in Home Assistant definieren

Um die Daten von der API zu holen, legst du einen REST-Sensor in deiner configuration.yaml an. Dieser Sensor ruft die API regelmäßig ab und speichert das gewünschte Feld als Sensorwert.

yaml
1rest:
2  - resource: https://icanhazdadjoke.com/
3    headers:
4      Accept: application/json
5      User-Agent: Home Assistant (https://github.com/home-assistant/core)
6    scan_interval: 43200  # alle 12 Stunden (anpassbar)
7    sensor:
8      - name: "Joke of the Day"
9        value_template: "{{ value_json.joke }}"

Die wichtigsten Punkte:

  • resource: Die URL der API
    • headers: Notwendig, damit die API eine JSON-Antwort liefert
    • scan_interval: Gibt an, wie oft der Sensor aktualisiert wird (hier: alle 12 Stunden)
    • value_template: Extrahiert das Feld joke aus dem JSON

Die API liefert zum Beispiel folgende Antwort:

json
{
  "id": "123",
  "joke": "Irgendein lustiger Spruch",
  "status": 200
}

Sensor gezielt aktualisieren: Automatisierung

Falls du möchtest, dass der Witz zu einer festen Uhrzeit (z.B. morgens um 7 Uhr) aktualisiert wird, kannst du eine Automatisierung anlegen. Damit wird der Sensor unabhängig vom scan_interval aktualisiert.

yaml
1automation:
2  - alias: "Update Dad Joke Daily"
3    triggers:
4      - trigger: time
5        at: "07:00:00"
6    actions:
7      - action: homeassistant.update_entity
8        target:
9          entity_id: sensor.joke_of_the_day

So stellst du sicher, dass der Witz immer zum gewünschten Zeitpunkt neu geladen wird.

Visualisierung im Dashboard

Um den aktuellen Witz im Dashboard anzuzeigen, kannst du jede beliebige Karte verwenden. Besonders flexibel ist die mushroom-template-card. Damit lässt sich der Sensorwert direkt als Text einbinden:

yaml
1type: custom:mushroom-template-card
2primary: Joke of the Day
3secondary: "{{ states('sensor.joke_of_the_day') }}"
4icon: mdi:emoticon-excited
5multiline_secondary: true
6icon_color: yellow

Die Karte zeigt den aktuellen Witz ansprechend und übersichtlich an. Du kannst das Layout natürlich nach deinen Wünschen anpassen.

Weitere Ideen für REST-APIs im Smart Home

Mit REST-Sensoren kannst du viele andere Anwendungsfälle umsetzen, zum Beispiel:

  • Den Witz per TTS (Text-to-Speech) ausgeben lassen
  • Den Witz als Push-Nachricht aufs Smartphone senden
  • Andere APIs einbinden, zum Beispiel Wetterdaten, Nachrichten oder eigene Dienste

Ein Beispielvideo findest du hier: https://youtu.be/cQOWqQT0_2A

Mit REST-Integrationen und Jinja-Templates kannst du Home Assistant flexibel um externe Daten erweitern und dein Dashboard individuell gestalten.

Verwendete Erweiterungen & Repositories

  • home-assistant/core house_with_garden: Open source home automation that puts local control and privacy first.

Im Video wird „Externe Daten im Home Assistant Dashboard – REST API einfach erklärt“ verständlich und praxisnah eingeordnet.

Snippet teilen