Template-Sensor-Wert abhängig von IF-THEN-ELSE festlegen

Hallo an alle Code-Spezialisten. :grinning:

Ich habe mir die DWD-Pollenflugvorhersage eingebaut und lasse mir die Vorhersagewerte in einer
“dual-gauge-Card” anzeigen:
image
Da die Vorhersage für “in 2 Tagen” nur ein Attribut ist, habe ich folgenden template-sensor gebaut:

template:
  - sensor:
      - name: "Gräserpollen in 2 Tagen"
        unique_id: "Graeser2Tage"
        state: >
            {{ state_attr('sensor.pollenflug_graeser' , 'state_in_2_days' )}}

funktioniert alles soweit.
Schönheitsfehler ist, dass zwischen Mitternacht und 11:00 Uhr die 2-Tage-Vorschau (noch) nicht vorhanden ist und somit der template-sensor “unavailable” zeigt.
Die 1-Tagesvorhersage

state_tomorrow

ist hingegen schon da (entspricht ab Mitternacht der “alten” 2-Tage-Vorhersage).
Nun möchte ich meinen template-sensor so umbauen, dass solange die 2-Tagesvorhersage noch
nicht vorhanden ist, die 1-Tagesvorhersage genommen wird.
Mit IF-THEN-ELSE sollte das ja funktionieren, aber meine Suche im WWW und Testungen in den
Entwicklungswerkzeugen waren bisher erfolglos.
Hat hier jemand eine “Vorlage”, wie man mit IF-THEN-ELSE den Wert des template-sensors “umschalten” kann?

Hi, habe auch die DWD_Pollenflug Integration eingerichtet mit 1-2 bekannten Youtube Videos. Habe das mehr oder weniger von dort übernommen. Es mussten jedoch kleine Anpassungen gemacht werden, da die direkte Integration andere Werte liefert als die alte Methode, die in den Videos gezeigt wird. Für einen Sensor sieht das bei mir so aus


Ich rechne die Werte auf 1-6 um.

Zusätzlich habe ich noch eine Abfrage, falls für die nächsten Tage alle Werte auf 0 sind, mit der ich dann die Elemente aus, bzw. wieder einblenden kann (mit der Bedingung-Karte).

dwd_pollen_erle_show:
      value_template: >-
        {% if state_attr('sensor.pollenflug_erle_42', 'state_tomorrow') == 0 and (state_attr('sensor.pollenflug_erle_42', 'state_in_2_days') == 0 or state_attr('sensor.pollenflug_erle_42', 'state_in_2_days') == none) and states('sensor.pollenflug_erle_42') == '0' %}0{% else %}1{% endif %}

Hier ist der knackpunkt, dass der Wert für Übermorgen mal 0 und mal None ist.

Aufjedenfall habe ich mit der Umsetzung genau das Verhalten, dass du dir wünscht. Zumindest habe ich noch nicht feststellen können, dass vor der aktualisierung um 11 Uhr ein Wert auf 0 “zurückgesetzt” wird.

Vielleicht hilft dir das ja weiter.

Grüße

1 „Gefällt mir“

Hi,
das YT-Video kenne ich, aber es löst mein Problem nicht.

Ich möchte einfach den Wert für “in 2 Tagen” durch den Wert von “Morgen” ersetzen, wenn der Wert
“in 2 Tagen” nicht verfügbar ist.

so vielleicht:

{% if state_attr('sensor.pollenflug_graeser', 'state_in_2_days') is none %}
  {{ state_attr('sensor.pollenflug_graeser' , 'state_tomorrow' )}} 
{% else %}
  {{ state_attr('sensor.pollenflug_graeser' , 'state_in_2_days' )}} 
{% endif %}
1 „Gefällt mir“

That’s it!!!
@d0neria
Danke Dir, genau so wollte ich es!

Vorher:
image
Nachher:
image