Problem mit Attributes

Muhkuh666

Member
Hallo folgende zwei Sensoren liefern in developer-tools/template alle Werte, sobald sie in der Yaml angelegt sind sehe ich bei "Attributes" und den einzelnen Einträgen "unbekannt", hat jemand eine Idee was hier falsch läuft? Danke




Code:
      - name: "PV Amortisation"
        unit_of_measurement: "%"
        state: >
          {% set investition = states('input_number.pv_investition') | float(0) %}
          {% set einspeiseverguetung = states('input_number.einspeisevergutung') | float(0) %}
          {% set strompreis = states('input_number.aktueller_strompreis') | float(0) %}
          {% set solar_gesamt = states('sensor.h3_6kw_solar_energy_total') | float(0) %}
          {% set einspeisung = states('sensor.h3_6kw_feed_in_energy_total') | float(0) %}
          
          {% set eigenverbrauch = solar_gesamt - einspeisung %}
          {% set ersparnis = eigenverbrauch * strompreis %}
          {% set verguetung = einspeisung * einspeiseverguetung %}
          {% set gesamt = ersparnis + verguetung %}
          
          {% if investition == 0 %}
            0
          {% else %}
            {{ (gesamt / investition * 100) | round(2) }}
          {% endif %}
          
        attributes:
          Investition: "{{ investition }} €"
          Einspeisevergütung: "{{ (einspeiseverguetung * 100) | round(2) }} ct/kWh"
          Strompreis: "{{ (strompreis * 100) | round(2) }} ct/kWh"
          Eigenverbrauch: "{{ eigenverbrauch | round(1) if eigenverbrauch > 0 else 'unbekannt' }}"
          Ersparnis: "{{ ersparnis | round(2) if ersparnis > 0 else 'unbekannt' }}"
          Gesamtvorteil: "{{ gesamt | round(2) if gesamt > 0 else 'unbekannt' }}"

      - name: "PV Amortisation (Jahre)"
        unit_of_measurement: "Jahre"
        state: >
          {% set investition = states('input_number.pv_investition') | float(0) %}
          {% set einspeiseverguetung = states('input_number.einspeisevergutung') | float(0) %}
          {% set strompreis = states('input_number.aktueller_strompreis') | float(0) %}
          {% set solar_gesamt = states('sensor.h3_6kw_solar_energy_total') | float(0) %}
          {% set einspeisung = states('sensor.h3_6kw_feed_in_energy_total') | float(0) %}
          
          {% set eigenverbrauch = solar_gesamt - einspeisung %}
          {% set ersparnis = eigenverbrauch * strompreis %}
          {% set verguetung = einspeisung * einspeiseverguetung %}
          {% set gesamt = ersparnis + verguetung %}
          
          {% set start = '2023-01-20' %}
          {% set start_date = strptime(start, '%Y-%m-%d') %}
          {% set heute = now().replace(tzinfo=None) %}
          {% set laufzeit = ((heute - start_date).days / 365.25) | float(1) %}
          
          {% if laufzeit <= 0 %}
            0.1
          {% else %}
            {% set ertrag_pro_jahr = gesamt / laufzeit %}
            {% if ertrag_pro_jahr > 0 %}
              {{ (investition / ertrag_pro_jahr) | round(1) }}
            {% else %}
              unknown
            {% endif %}
          {% endif %}
          
        attributes:
          Beschreibung: "Geschätzte Amortisationsdauer basierend auf bisherigem Ertrag"
          Gesamtvorteil: "{{ gesamt | round(2) if gesamt > 0 else 'unbekannt' }}"
          Eigenverbrauch: "{{ eigenverbrauch | round(1) if eigenverbrauch > 0 else 'unbekannt' }}"
          Einspeisung: "{{ einspeisung | round(1) if einspeisung > 0 else 'unbekannt' }}"
          Jahresertrag: "{{ (gesamt / laufzeit) | round(2) if gesamt > 0 else 'unbekannt' }}"
          Startdatum: "2023-01-20"
          Laufzeit: "{{ laufzeit | round(2) if laufzeit > 0 else 'unbekannt' }}"
 
eine Idee was hier falsch läuft
Du kannst unter attributes: nicht auf etwas zugreifen, das unter state: definiert wurde, das sind zwei getrennte Bereiche. Sowas hier in der template.yaml funktioniert:
YAML:
- sensor:
  - name: "PV Amortisation"
    unit_of_measurement: "%"
    state: >
      {% set investition = states('input_number.xyz') | float(0) %}
      {% set gesamt = 10 %}
      {% if investition == 0 %}
        0
      {% else %}
        {{ (gesamt / investition * 100) | round(2) }}
      {% endif %}
    attributes:
      Investition: "{{ states('input_number.xyz') | float(0) }} €"
1744890264922.png
 

Zurzeit aktive Besucher

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
6.564
Beiträge
63.120
Mitglieder
6.780
Neuestes Mitglied
elacus
Zurück
Oben