['unknown', 'unavailable', 'none'] richtig anwenden bzw. eine Alternative?

{% set is_available = states('sensor.sunny_boy_grid_power') not in ['unknown', 'unavailable', 'none'] %}

{% if is_available %}
  {% set sensor_data = states('sensor.sunny_boy_grid_power') | float(0) %}
  {{ iif( sensor_data > 0, sensor_data, 0 ) }}
{% else %}
  0
{% endif %}

So habe ich das in einem HELFER gemacht, aber trotzdem bekomme ich öfter (z. B. Startphase) mal ein “unavailable” angezeigt.

Wie kann ich es so einrichten, dass ich einfach eine 0 zurückbekomme, wenn der Sensor eben nicht funzt?

Ich habe eben scheinbar eine bessere Lösung gefunden….

{% set x = states('sensor.sunny_boy_grid_power') | lower %}
{% set output = 0 if x == 'unknown' else x | int | default(0, true) %}
{{ output }}

Das funktioniert bestens, muss nur den Namen der Entität ändern und bekomme ein 0. Leider steht während der Startphase trotzdem “unavailable” auf dem Bildschirm….

states('sensor.sunny_boy_grid_power') | lower
macht es etwas robuster falls der Status nicht immer klein geschrieben ist

Ich denke mal, dass z. B. während der HA Startphase, solche Dinge noch nicht abgearbeitet werden und der Sensor dann halt als “unavailable” angezeigt wird. Ist kein Drama, aber unschön.