Home Assistant Anleitung how to… JSON-Daten einlesen

Ich hatte in einem anderen Beitrag schon einmal über die Möglichkeit gesprochen, Webseiten-Inhalte von Home Assistant zu scrapen. Letztlich ist dies aber für den von mir in diesem konkreten Fall gewünschten Daten-Input nicht wirklich effizient.

Also habe ich die benötigten/gewünschten Daten als JSON bereitgestellt, und lasse diese nun von Home Assistant automatisch einlesen. Der Vorteil von JSON-Daten gegenüber dem Scrapen?

Home Assistant: How to... Kurzanleitungen und Nützliches für Home Assistant!

Zum einen kann man beim JSON-Abruf festlegen, wie regelmäβig die Daten geladen werden sollen. Wenn ich also weiβ, dass sich die Daten maximal einmal pro Stunde ändern werden, reicht es vollkommen, auch nur einmal pro Stunde den JSON-Abruf auszuführen. 

Darüber hinaus ist es natürlich deutlich eleganter strukturierte Daten abzurufen, anstelle den eher als Quick&Dirty zu bezeichnenden Weg des Scrapens zu gehen 😉

Um JSON-Daten in Home Assistant zu nutzen, benötigst du natürlich im JSON-Format bereitgestellte Daten (;)) und folgenden Code:

- platform: rest
  authentication: basic
  username: "EIN_USERNAME"
  password: "EIN_PASSWORD"
  scan_interval: 60
  resource: https://link.zu/deiner/json/datei.php
  name: "My Quotes"
  json_attributes:
    - "person"
    - "quote"
- platform: template
  sensors:
    myquote_person:
      friendly_name: "Quote-Person"
      value_template: >-
        {% set invalid_value = 'unavailable' %}
        {% set state = states('sensor.my_quotes') %}
        {% if state != invalid_value %} {{ state_attr('sensor.my_quotes', 'person') }}
        {% else %}Meister Yoda
        {% endif %}
- platform: template
  sensors:
    myquote_quote:
      friendly_name: "Quote-Quote"
      value_template: >-
        {% set invalid_value = 'unavailable' %}
        {% set state = states('sensor.my_quotes') %}
        {% if state != invalid_value %} {{ state_attr('sensor.my_quotes', 'quote') }}
        {% else %}Tu es oder tu es nicht. Es gibt kein Versuchen!
        {% endif %}

In diesem Code habe ich sogar einen Fallback eingebaut, falls die JSON-Daten einmal nicht verfügbar sein sollten, damit der Home Assistant Sensor nicht „unavailable“ ist, sondern einen Dummy-Wert erhält. Inwiefern dies für deinen konkreten Anwendungszweck sinnvoll oder möglich ist, musst du natürlich selbst bewerten!

Du kannst den Code natürlich nach deinem Bedarf anpassen. Die URL musst du auf jeden Fall anpassen. Der Intervall hängt davon ab, wie oft sich die Daten ändern können. 

Ich würde den Abruf nich unnötig oft ausführen lassen, da dies natürlich letztlich wieder Arbeit ist, die Home Assistant verrichten muss. Und unnötige Arbeit sollten wir nun wirklich jedem Ersparen 😉

Hierbei handelt es sich um einen von mir so genannten Quicktipp. In dieser kleinen „Home Assistant how-to“ Reihe, gebe ich hilfreiche Tipps und Tricks, welche mir die Arbeit mit Home Assistant vereinfachen und deswegen vielleicht auch für dich hilfreich sein können!

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

AngebotBestseller Nr. 1
Netatmo Smarte Wetterstation - WLAN, Funk, Innen- und...*
  • MESSUNG DER UMGEBUNGSTEMPERATUR INNEN UND AUSSEN IN ECHZEIT:...
  • WARNMELDUNGEN IN ECHZEIT: Mit unserer Wetterstation können Sie...
AngebotBestseller Nr. 2
Staubsauger Roboter,Tesvor WLAN Saugroboter mit Raumkarte in...*
  • Kompatibel mit APP + Alexa: Der Roboter kann entweder durch die...
  • Geplant Reinigung: Der Tesvor X500 Staubsauger Roboter hat eine...

*= Preis inkl. MwSt., ggf. zzgl. Versandkosten. Letzte Aktualisierung vor 60 Minuten / Affiliate Links / Bilder von der Amazon Product Advertising API. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Schreibe einen Kommentar

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulares wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.