Übersicht Stromverbräuche / Einspeisung / etc

Hallo zusammen,
Da dies mein erster Beitrag ist, habt bitte Nachsicht, sollte ich Info vergessen.

Ich bin schon ca. 2 Jahre im HA-Game, habe aber bisher viele Boardmittel verwenden können, da alle (interessanten) Entities vorhanden waren.

Nach Anschaffung eines BKW möchte ich mir die Werte gerne anzeigen und bspw. den genutzten Ertrag berechnen lassen. Hierfür muss ich jetzt tiefer einsteigen.

Dies versuche ich mittels folgendem Template:

Template:
  - sensor:
    # genutzter Ertrag
      - name: genutzter Ertrag
        unique_id: "genutzterertrag"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "measurement"
        state: >-
            {{ ((float(states('sensor.shelly1pm_485519cb1a04_energy'))) - (float(states('sensor.shellypro3em_34987a44fa34_total_active_returned_energy')))) | round(3) }}

Der Shelly 1pm gibt an, wieviel kWh das BKW ins Hausnetz einspeist, der Shelly pro, wieviel kWh ins Grundnetz wandern. Die Differenz davon hätte ich gerne als kWh-Angabe auf dem Dashboard ausgewiesen, als Statistik o.ä.

Mit dem Template funktioniert dies allerdings überhaupt nicht. Als Wert wird mir quasi immer der Wert des Shelly 1pm ausgegeben, was ja falsch ist.

Wo liegt hier der Fehler?

Vielen Dank für eure Tipps und Hinweise.
Grüße, Jan

Probier mal state_class: total

Warum nutzt Du nicht das Energie Dashboard?
Hast du einen Digitalen Zähler im Haus?

Nachtrag.
Du hast ja den Shelly pro 3em und hast ja den wert den Du dem vom Netzbetreiber beziehst bzw. schenkst?

Gruss

ich habe es im Energy -Dashboard und nochmal ausgewertet in einem separaten Dashboard für Tag, Woche, Monat und Jahr.


@Hette78 Diese Übersicht ist mein erklärtes Ziel - echt klasse :ok_hand:

Was mich beim Energiedashboard nicht zufriedenstellt ist die Tatsache, dass er mir einen falschen “Netz gesamt” ausgibt, da mir ein “Gesamtverbrauch” fehlt.
Beispiel: Ich beziehe 3kwh aus dem Netz, das BKW generiert 2kwh und ich speise 1 kWh ein, habe ich effektiv 4 kWh verbraucht.

Wie hast du den täglichen Eigenverbrauch vom BKW berechnet?

Ok, wenn ich dir helfen kann, versuchen wir es mal, aber ich gehe etwas anders vor.

Ich habe die yaml Dateien noch vom Shelly 3EM (hat die Werte nicht saldiert) zum Pro 3EM übernommen, deshalb ist es ein Template mehr in der .yaml aber es läuft super.

Ich berechne alle Werte in der config.yaml in Watt und rechne dann mit Helfern in KWh um, die ich im Dashboard verwende.

Ich teile mal meine Code vielleicht kommst du damit zurecht, sonst melde ich einfach wieder.


template:
  - sensor:
      - name: "Power Total"
        unique_id: power_total
        state: >
          {{ states('sensor.shelly_phase_a_active_power')|float(0) +
             states('sensor.shelly_phase_b_active_power')|float(0) +
             states('sensor.shelly_phase_c_active_power')|float(0) }}
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        availability: >
            {{
               [ states('sensor.shelly_phase_a_active_power'),
                 states('sensor.shelly_phase_b_active_power'),
                 states('sensor.shelly_phase_c_active_power') ] | map('is_number') | min }}
  - sensor:
      - name: "Power vom Netz (Watt)"
        unique_id: power_vom_netz
        state: >
          {% if states('sensor.power_total') | float(0) >= 0 %}
              {{states('sensor.power_total') | float(0) | round (3) }}
          {% else %}
              {{(states ('0.0') | float(0)) |round(3) }}
          {% endif %}
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        availability: >
          {{ 
             [ states('sensor.power_total') ] | map('is_number') | min }}
  - sensor:
      - name: "Power ins Netz (Watt)"
        unique_id: power_ins_netz
        state: >
          {% if states('sensor.power_total') | float(0) < 0 %}
              {{(states('sensor.power_total') | float(0))*-1 | round (3) }}
          {% else %}
              {{(states ('0.0') | float(0)) |round(3) }}
          {% endif %}
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        availability: >
          {{ 
             [ states('sensor.power_total') ] | map('is_number') | min }}
  - sensor:
    # Berechnet anhand des Stromzählers und der Solarerzeugung in Watt den Eigenverbrauch
      - name: Solar Eigenverbrauch (Watt)
        unique_id: "BalkonsolarEigenverbrauchWatts"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: W
        device_class: power
        state: >
            {% if is_number(states('sensor.power_total')) and states('sensor.power_total') | float(0) < 0 %}
                {{ ( (states('sensor.power_total') | float(0) ) + (states('sensor.smart_switch_2307064063274151080248e1e9cea420_power') | float(0) ) ) | round (3) }}
            {% else %}
                {{ states('sensor.smart_switch_2307064063274151080248e1e9cea420_power') | round (3) }}
            {% endif %}
    # Zweiter Sensor für Ersparnis in Euro pro Stunde, basiert auf dem obigen Sensor (Solar Eigenverbrauch (Watt) v2) und dem aktuellen Strompreis in EUR/kWh
      - name: Balkonsolar Vorteil
        unique_id: "BalkonsolarVorteil"
        unit_of_measurement: EUR/h
        state: >
         {{ states('sensor.solar_eigenverbrauch_watt')|float(0) * states('input_number.aktueller_strompreis')|float(0)/1000 }}
    
  - sensor:
    # Strom aktuell ohne BLK
      - name: Stromverbrauch aktuell
        unique_id: "strom_aktuell_haus"
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        state: >
         {{ (states('sensor.power_total') | float(0)) + (states('sensor.smart_switch_2307064063274151080248e1e9cea420_power') | float(0)) | round (2) }} 
         
         

Die Shelly müssten bei dir so passen, du müsstest nur den senor.smart_switch… austauschen gegen dein Sensor vom BLK.

Dann legst du die Helfer (Riemann) an zur Umrechnung in KWh an, dann kannst du die Helfer ins Dashboard und ins Energy Dashboard einbinden.

Vielen Danke für das Teilen des Code :slight_smile:

Habe versucht diesen auf meine Sensoren anzupassen:

- sensor:
    # Berechnet den Solar-Eigenverbrauch
      - name: Eigenverbrauch
        unique_id: "eigenverbrauch"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: kWh
        device_class: power
        state: >
            {% if is_number(states('sensor.tagesertrag')) and states('sensor.tagesertrag') | float(0) < 0 %}
                {{ ( (states('sensor.tagesertrag') | float(0) ) - (states('sensor.tageseinspeisung') | float(0) ) ) | round (3) }}
            {% else %}
                {{ states('sensor.tagesertrag') | round (3) }}
            {% endif %}

Leider kommt dabei wieder Ertrag = Eigenverbrauch raus, was falsch ist…

(Die beiden Sensoren tagesertrag und tageseinspeisung liefern die Werte in kWh, falls die Frage käme.)

Ja, dein Code passt auch nicht zu dem, was du möchtest, er besagt im groben:
Wenn dein Tagesertrag <0, dann rechne tagesertrag - tageseinspeisung, sonst gib den tagesertrag aus.