Europas Gasspeicher Füllstand in Home Assistant über die API von agsi.gie.eu

Gas Infrastructure Europe

Wer sich für Gaswerte von Gas Infrastructure Europe interessiert, kann sich auf der Seite https://agsi.gie.eu/ die jeweiligen anschauen. Auch die grafische Auswertung mit Diagrammen und Graphen ist auf der Seite möglich.

Kostenlose API

Zudem kann man sich kostenlos registrieren und erhält einen API Key. Diesen bekommt man, wenn man sich registriert und einen Account hier macht API Login - AGSI

Integration in Home Assistant

Um die Werte dann in seinen Home Assistant zu bekommen, bedient man sich an der Funktionalität von dem RESTful Sensor - Home Assistant. Danach macht man aus den Werten einzelne Sensoren entity mit einem Template - Home Assistant

RESTful Sensor für configuration.yaml

Der folgende Beispielcode erstellt einen Sensor mit unterschiedlichen Attributen.

sensor rest:
  - platform: rest
    scan_interval: 3600
    name: Gas Speicher De
    resource: https://agsi.gie.eu/api?country=DE
    headers:
      content-type: "application/json"
      x-key: !secret gas_token #Hier den API Key eintragen! 
    json_attributes_path: "$.data[0].['.']"
    json_attributes:
      - name
      - code
      - url
      - gasDayStart
      - gasInStorage
      - consumption
      - consumptionFull
      - injection
      - withdrawl
      - workingGasVolume
      - injectionCapacity
      - status
      - trend
      - full
      - info
    value_template: >-
      {{ value_json.message }}

Nach einem Neustart erhält man den folgenden Sensor in Home Assistant:

Template Sensoren erstellen

Jetzt kann man aus den Attribut-Werten einzelne Sensoren erstellen.

template agsi:
  - sensor:
      - name: Füllstand Deutschland Total
        icon: mdi:gas-burner
        unit_of_measurement: "%"
        state: "{{ state_attr('sensor.gas_speicher_de', 'full') }}"
        device_class: "gas"
      - name: Gas im Speicher Deutschland
        icon: mdi:storage-tank
        unit_of_measurement: "TWh"
        state: "{{ state_attr('sensor.gas_speicher_de', 'gasInStorage') }}"
        #device_class: "gas"
      - name: Trend Gas Speicher Deutschland
        icon: mdi:storage-tank
        unit_of_measurement: "%"
        state: "{{ state_attr('sensor.gas_speicher_de', 'trend') }}"
        #device_class: "gas"
      - name: Gasverbrauch Deutschland
        icon: mdi:gas-burner
        unit_of_measurement: "TWh"
        state: "{{ state_attr('sensor.gas_speicher_de', 'consumption') }}"
      - name: Gasverbrauch Total Deutschland
        icon: mdi:gas-burner
        unit_of_measurement: "%"
        state: "{{ state_attr('sensor.gas_speicher_de', 'consumptionFull') }}"

Nach einem weiteren Neustart hat man jetzt 5 neue Sensoren, die man nach Lust und Laune in Home Assistant auswerten kann.
Bildschirmfoto 2022-09-02 um 13.21.03

Hallo Amon,
danke für die ausführliche Anleitung.
Den Gasspeicher kann ich ohne Probleme abfragen. Leider funktionieren die Templates nicht. Müssen diese an einer bestimmten Position inder configuration.yaml stehen?
Die Prüfung ergibt keinen Fehler, trotzdem wird nichts angezeigt.
Gruß EU

Hallo ErreUno,

ich habe eine sensor.yaml und dort folgenden angepassten Code abgelegt:

- platform: template
  sensors:
    fuellstand_deutschland_total:
      friendly_name: Füllstand Deutschland Total
      unique_id: "fuellstand_deutschland_total"
      icon_template: mdi:gas-burner
      unit_of_measurement: "%"
      value_template: "{{ state_attr('sensor.gas_speicher_de', 'full') }}"
      device_class: "gas"
    gas_im_speicher_deutschland:
      friendly_name: "Gas im Speicher Deutschland"
      unique_id: "gas_im_speicher_deutschland"
      icon_template: mdi:storage-tank
      unit_of_measurement: "TWh"
      value_template: "{{ state_attr('sensor.gas_speicher_de', 'gasInStorage') }}"
      #device_class: "gas"
    trend_gas_speicher_deutschland:
      friendly_name: "Trend Gas Speicher Deutschland"
      unique_id: "trend_gas_speicher_deutschland"
      icon_template: mdi:storage-tank
      unit_of_measurement: "%"
      value_template: "{{ state_attr('sensor.gas_speicher_de', 'trend') }}"
      #device_class: "gas"
    gasverbrauch_deutschland:
      friendly_name: "Gasverbrauch Deutschland"
      unique_id: "gasverbrauch_deutschland"
      icon_template: mdi:gas-burner
      unit_of_measurement: "TWh"
      value_template: "{{ state_attr('sensor.gas_speicher_de', 'consumption') }}"
    gasverbrauch_total_deutschland:
      friendly_name: "Gasverbrauch Total Deutschland"
      unique_id: "gasverbrauch_total_deutschland"
      icon_template: mdi:gas-burner
      unit_of_measurement: "%"
      value_template: "{{ state_attr('sensor.gas_speicher_de', 'consumptionFull') }}"

Viele Grüße
Marco

Hallo @ErreUno,
hallo @Fabian,

Herzlich willkommen!

Ja, tatsächlich gehört mein Code upgedatet. Es hat in der Zwischenzeit Änderungen in der Schreibweise gegeben. Glücklicherweise scheint der Code von Fabian zu funktionieren.
Ich werde das nächste Woche auch mal probieren! Schöne Grüße

Hallo Fabian, hallo Amon,
danke für die schnelle Antwort.
Fabians Vorschlag hat funktioniert. Allerdings nur, wenn ich eine separate sensor.yaml anlegen. Scheinbar handelt es sich hierbei um eine alte Schreibweise, die nicht dirket in die configuration.yaml eingetragen werden kann.
Jetzt funzt es auf jeden Fall :wink:
Gruß EU

BTW: Geht jetzt auch mit den LNG-Terminals (ALSI) :wink: