"If" Abfrage ohne ELSE

Hallo zusammen,
ihr werdet sicher über die Anfrage lachen, aber ich habe das Problem, dass gewisse Meldungen zeitweise als “unbekannt” angezeigt werden.
Im Graphen scheint alles i.O. zu sein, da der das “Unbekannt” wohl ignoriert.
Im Dashboard wird dann, wenn der Wert dann irgendwann wieder angezeigt wird, der gesamte Wert dem Zeitfenster zugeordnet…

meine Idee:

# Sensor für Entladeleistung vom Akku
- name: Entladeleistung vom Akku
  unique_id: “entladeleistung_akku”
  unit_of_measurement: kWh
  device_class: energy
  state_class: total_increasing
  state: >
{% if is_number(states(‘sensor.hybrid_wechselrichter_entladene_energie’)) and states(‘sensor.hybrid_wechselrichter_entladene_energie’) | float(0) < 0 %}             {{(states(‘sensor.hybrid_wechselrichter_entladene_energie’)  | float(1)) | round (3) }}
{% endif %} 

Problem, da ich kein Else habe, wird die Entität nicht mehr bereitgestellt… => noch bescheidener…
Wenn aber der Wert keine Zahl, oder die Zahl “0” sein sollte, soll doch einfach nur der Alte Wert nicht überschrieben werden…
Gab es da nicht was, die genau das realisiert?

Sorry, wie kann ich noch mal den Code als Code anzeigen lassen?

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)
Post formatiert

Danke Harry, hatte es dann aber über die drei “`” gefunden…
Ne Antwort zur Frage?

Nein, leider nicht (ich mache alles mit Node-Red), da stellt sich die Frage nicht.
Aber evtl. hilft das hier:

ich weiß nicht ob es daran liegt das es davor falsch formatiert ist aber das sollte ' sein und nicht was bei dir im Code ist.

danke für die Info: ist aber leider nicht die Lösung, sondern war wohl nur ein Formatierungsproblem beim kopieren…

Im File Editor steht es richtig.


     #  Sensor für Entladeleistung vom Akku
      - name: Entladeleistung vom Akku
        unique_id: "entladeleistung_akku"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >
            {% if is_number(states('sensor.hybrid_wechselrichter_entladene_energie')) and states('sensor.hybrid_wechselrichter_entladene_energie') | float(0) < 0 %}
                {{(states('sensor.hybrid_wechselrichter_entladene_energie')  | float(1)) | round (3) }}
            {% endif %}

Edit:hab gerade das hier gefunde:How to handle unknown or unavailable states in template entities or automations - #17 by tman98 - Configuration - Home Assistant Community

sensor:
      - name: "Last valid Pet weight"
        unique_id: "last_valid_pet_weight"
        state: >
          {% set value = states('sensor.pet_last_weight_measurement') %}
          {% set last_value = states('sensor.last_valid_pet_weight') %}

            {% if value in ['unknown', 'unavailable', 'none'] or value | float(0) == 0 %}
              {{ last_value }}
          {% else %}
            {{ value | float }}
          {% endif %}
        unit_of_measurement: "lb"

Werde mal versuchen das Bsp. zu adaptieren…

Wie wird dieser Sensor (Vorgänger) bei Dir befüllt?

ich hatte es mir z.B. so vorgestellt:

sensor:
      - name: Entladeleistung vom Akku
        unique_id: "entladeleistung_akku"
        state: >
          {% set value = states('sensor.hybrid_wechselrichter_entladene_energie') %}
          {% set last_value = states('sensor.entladeleistung_akku') %}

            {% if value in ['unknown', 'unavailable', 'none'] or value | float(0) == 0 %}
              {{ last_value }}
          {% else %}
            {{ value | float }}
          {% endif %}

test ist ausstehend

Das würde mich wundern, wenn das funktioniert.

Mir ist die Ermittlung des Vorgängers nur bekannt über Trigger oder Befüllung durch eine separate Automatisation.

Für trigger based template hatte ich hier mal ein Beispiel, das Du abwandeln kannst.

Du findest aber auch andere, wenn Du im Forum suchst.

Das ist doppelt

{% if value | float(0) == 0 %}

würde reichen. Oder die Liste mit unknown etc.

Du machst das schon.