Sensor Eigenverbrauch berechnen

Hallo Zusammen,

kann mir jemand bei der Erstellung meines Eigenverbrauch Sensors helfen. Ich stehe gerade echt auf dem Schlauch. Der Sensor soll ausgeben:

Wenn: “stromvebrauch” > “stromerzeugung” = “stromerzeugung”
ansonsten: “stromverbrauch”

Leider wird der Sensor als nicht verfügbar angezeigt.

   - sensor:
      - name: eigenverbrauch_neu
        unique_id: "eigenverbrauch_neu"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: "W"
        device_class: power
        state: >
            {% if states('sensor.stromverbrauch_berechnen') | float(0) > states('sensor.stromerzeugung_gesamt_2') %}
               {{ ( (states('sensor.stromerzeugung_gesamt_2') | float(0) ) ) | round (3) }}
            {% else %}
                {{ states('sensor.stromverbrauch_berechnen') | round (3) }}
            {% endif %}

Hast du das mal unter Entwicklerwerkzeuge - Vorlagen getestet?

            {% if states('sensor.stromverbrauch_berechnen') | float(0) > states('sensor.stromerzeugung_gesamt_2') %}
               {{ ( (states('sensor.stromerzeugung_gesamt_2') | float(0) ) ) | round (3) }}
            {% else %}
                {{ states('sensor.stromverbrauch_berechnen') | round (3) }}
            {% endif %}

Sonst versuche es mal so

          {% if (states('sensor.stromverbrauch_berechnen') | float(0)) > states('sensor.stromerzeugung_gesamt_2') %}

Was soll das „float(0)“ bewirken?

Und probiere das mal bitte:

float(states.sensor.stromverbrauch_berechnen.state)

Ohne irgendwelche Anführungszeichen oder oder oder

Danke euch!

So hat es jetzt funktioniert.

   - sensor:
      - name: eigenverbrauch_neu2
        unique_id: "eigenverbrauch_neu2"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: "W"
        device_class: power
        state: >            
            {% if states('sensor.stromverbrauch_berechnen') | float > states('sensor.stromerzeugung_gesamt_2') | float %}
            {{ states('sensor.stromerzeugung_gesamt_2') }}
            {% else %}
            {{ states('sensor.stromverbrauch_berechnen') }}
            {% endif %}
1 „Gefällt mir“

Das ist der Standardwert, für den Fall, dass der String nicht nach float gewandelt werden kann. Würde ich bei Sensoren, die auch mal etwas anderes als eine Zahl liefern können, immer mit angeben.
Bei der von dir angegebenen Schreibweise geht das ebenfalls:

float('diesIstEinString', 0)

oder

float('diesIstEinString', default=0)
1 „Gefällt mir“

Ich muss unbedingt aufhören Jinja Templates mit Python zu vergleichen …