DWD Pollen auslesen mit Templatesensor ?

Rat und Tat rings um Home Assistant Automationen.


Antworten
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

DWD Pollen auslesen mit Templatesensor ?

Beitrag von Andifidi »

Nachdem das Templating mit der Inzidenzauswertung und Benachrichtigung so gut funktioniert hat (viewtopic.php?f=2&t=373wollte ich natürlich an den Pollenwarndienst dran, der seit einigen Updates von Homeassistant nicht mehr funktioniert wie er soll. Ich vermute dies liegt am neuen Syntax für Templatesensoren um die Attribute eines Sensors auszulesen...? Als Muster habe ich "damals" die Anleitung von Smarthomeyourself https://smarthomeyourself.de/pollenflug ... assistant/ genutzt, diese hat Anfangs auch bestens funktioniert. Homeassistant ruft wohl auch noch mit dem Restsensor die Daten ab, kann sie aber nicht über die Templatesensoren darstellen. Vielleicht kann man die Templatesensoren auf den neuen Syntax umstellen. Ich beisse mir da irgendwie die Zähne daran aus.....

Hier der REST-SENSOR (funktioniert auch nicht mehr):

Code: Alles auswählen

# DWD Pollen, see: https://opendata.dwd.de/climate_environment/health/alerts/Beschreibung_pollen_s31fg.pdf
  - platform: rest
    scan_interval: 21600
    # Alle 6 Std wird neu geladen
    name: "DWD Pollen"
    resource: https://opendata.dwd.de/climate_environment/health/alerts/s31fg.json
    json_attributes_path: "$..content[?(@.partregion_id==-50)].Pollen"
    json_attributes:
      - Graeser
    value_template: "{{ value_json.last_update }}"
Die folgenden Pollenarten habe ich zunächst entfernt, können aber individuell noch eingefügt werden, sofern der Templatesensor vorhanden ist:

Code: Alles auswählen

      - Erle
      - Beifuss
      - Ambrosia
      - Birke
      - Esche
      - Hasel
      - Roggen
Der dazugehörige Templatesensor (der auf einmal nicht mehr funktioniert):

Code: Alles auswählen

  #graeser
  - platform: template
    sensors:
      dwd_pollen_graeser_today:
        icon_template: "mdi:tree-outline"
        friendly_name: "Gräser Heute"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'graeser')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'graeser')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
      dwd_pollen_graeser_tomorrow:
        icon_template: "mdi:tree-outline"
        friendly_name: "Gräser Morgen"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'graeser')['tomorrow'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'graeser')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
      dwd_pollen_graeser_dayafter_to:
        icon_template: "mdi:tree-outline"
        friendly_name: "Gräser Übermorgen"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'graeser')['dayafter_to'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          dayafter_to: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'graeser')['dayafter_to'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
Die Anzeige der Pollenvorhersage hat mir bisher immer ganz geholfen, bis dieser leider nur eine 0 bei allen Sensoren angezeigt hat.

Vielleicht kennt sich ja jemand aus :) Gruß, Andifidi
Zuletzt geändert von Andifidi am Mo 13. Jun 2022, 18:55, insgesamt 1-mal geändert.
Moss
Beiträge: 226
Registriert: Di 5. Apr 2022, 09:34
2
Has thanked: 12 times
Been thanked: 13 times

Re: DWD Pollen auslesen mit Templatesensor ?

Beitrag von Moss »

Code: Alles auswählen

 # DWD Pollenflug Informationen
  - platform: rest
    scan_interval: 3600
    name: "DWD Pollen"
    resource: https://opendata.dwd.de/climate_environment/health/alerts/s31fg.json
    json_attributes_path: "$..content[?(@.partregion_id==101)].Pollen"
    json_attributes:
      - Ambrosia
      - Beifuss
      - Birke
      - Erle
      - Esche
      - Graeser
      - Hasel
      - Roggen
    value_template: "{{ value_json.last_update }}"
  - platform: template
    sensors:
      dwd_pollen_erle:
        icon_template: "mdi:tree-outline"
        friendly_name: "Erle"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Erle')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Erle')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Erle')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_beifuss:
        icon_template: "mdi:tree-outline"
        friendly_name: "Beifuss"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Beifuss')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Beifuss')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Beifuss')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_ambrosia:
        icon_template: "mdi:tree-outline"
        friendly_name: "Ambrosia"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Ambrosia')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Ambrosia')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Ambrosia')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_birke:
        icon_template: "mdi:tree-outline"
        friendly_name: "Birke"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Birke')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Birke')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Birke')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_esche:
        icon_template: "mdi:tree-outline"
        friendly_name: "Esche"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Esche')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Esche')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Esche')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_hasel:
        icon_template: "mdi:tree-outline"
        friendly_name: "Hasel"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Hasel')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Hasel')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Hasel')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_graeser:
        icon_template: "mdi:tree-outline"
        friendly_name: "Graeser"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Graeser')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Graeser')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Graeser')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

  - platform: template
    sensors:
      dwd_pollen_roggen:
        icon_template: "mdi:tree-outline"
        friendly_name: "Roggen"
        value_template: >-
          {% set dwd_state = state_attr('sensor.dwd_pollen', 'Roggen')['today'] %}
          {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
        attribute_templates:
          today: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Roggen')['today'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}
          tomorrow: >-
            {% set dwd_state = state_attr('sensor.dwd_pollen', 'Roggen')['tomorrow'] %}
            {% if dwd_state == "3" %}6{% elif dwd_state == "2-3"%}5{% elif dwd_state == "2"%}4{% elif dwd_state == "1-2"%}3{% elif dwd_state == "1"%}2{% elif dwd_state == "0-1"%}1{% else %}0{% endif %}

# 
Dateianhänge
136103EC-9CD5-4B41-B18F-F4F730B33B91.jpeg
136103EC-9CD5-4B41-B18F-F4F730B33B91.jpeg (186.17 KiB) 271 mal betrachtet
Moss
Beiträge: 226
Registriert: Di 5. Apr 2022, 09:34
2
Has thanked: 12 times
Been thanked: 13 times

Re: DWD Pollen auslesen mit Templatesensor ?

Beitrag von Moss »

Bei mir funktioniert es noch mit den o.g. Sensoren

LG
Moss
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

Re: DWD Pollen auslesen mit Templatesensor ?

Beitrag von Andifidi »

Hallo Moss,
ich habe mal Deinen Code kopiert und siehe da, es funktioniert. War sicherlich ein Zeichen falsch und alles stockt.
Danke dafür :-) Der Code ist aber dann noch im alten Templateformat, wäre interessant ob der bei weiteren Updates von Homeassistant weiterhin funktioniert.

Wie hast du das mit der Lovelaceanzeige gemacht?

Beste Grüße
AndiFidi
Antworten