Status "unbekannt" von Sensor mittels Template abfangen?

Hallo,

Ich messe den Strom meiner Anker Solix 2 mittels einem Template Sensor.

Das ganze sieht so aus

    - name: "PV-Produktion Watt"
      unique_id: "pv_produktion_watt"
      unit_of_measurement: "W"
      device_class: "power"
      state_class: "measurement"
      state: >
        {% if float(states('sensor.solarbank_2_e1600_pro_solarleistung')) > 0 %}
          {{ float(states('sensor.solarbank_2_e1600_pro_solarleistung'), default=0) }}
        {% else %}
          0
        {% endif %}

Wenn der sensor solarbank_2_e1600_pro_solarleistung unbekannt wird, bekommt auch der Sensor pv_produktion_watt keinen Wert mehr und das ganze sieht so aus.

Kann ich im Template irgendwie eingeben, dass der letzte Wert einfach gehalten wird sobald der Sensor unbekannt wird und der Sensor somit immer einen Wert hat?

Ich integriere den Sensor nämlich auf und bekomme dann immer eine Fehlermeldung wenn der Sensor unbekannt wird. Evtl. mit “availability:” im Template? Nur wie genau?

Weiters verwende ich das default=0 … bringt mir das überhaupt etwas?

Anregungen kannst Du Dir von hier holen. Anwender hatte sehr ähnliches Problem. Die Hauptfrage ist, woher Du den Vorgängerwert bekommst.

Danke

{% if states('sensor.solarbank_2_e1600_pro_solarleistung') not in ['unavailable', 'unknown'] %}
{{ float(states('sensor.solarbank_2_e1600_pro_solarleistung')) }}
{% else %}
{{ this.state }}
{% endif %}

So funktioniert es mal in erster Linie.

Jetzt fehlt mir nur noch die Abfrage ob der Wert auch größer 0 ist (sonst 0), das soll allerdings nur ausgeführt werden wenn der Wert vorher schon nicht unavailable oder unknown war.

Weiß jemand wie ich so eine verschachtelte IF-Abfrage mache?

Es können halt nicht beide Abfragen zugleich stattfinden.

Update:

OK

Glaube jetzt hab ichs

        {% if states('sensor.solarbank_2_e1600_pro_solarleistung') not in ['none', 'unavailable', 'unknown'] %}
          {% if float(states('sensor.solarbank_2_e1600_pro_solarleistung')) > 0 %}
            {{ float(states('sensor.solarbank_2_e1600_pro_solarleistung')) }}
          {% else %}
            0
          {% endif %}
        {% else %}
          {{ this.state }}
        {% endif %}

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

{% if states('sensor.solarbank_2_e1600_pro_solarleistung') | lower

Ich setze immer noch das | lower dahinter um die Vergleichbarkeit zu gewährleisten weil ich mir nicht immer ganz sicher bin, daß jeder Sensor in Kleinbuchstaben liefert.