PV Daten und Überschuss - Gedankenfehler Amortisierung

Hallo zusammen, ich habe mal wieder irgendwie ein Knoten im Kopf… und kriege es irgendwie nicht hin …

Ich habe folgende Ansicht…

Mein Ziel:

a) Was habe ich heute gespart
b) Was habe ich ins. gespart
c) Wann hat sich die Kiste Amortisiert
d) Wieviel Überschuss in kw/h habe ich pro Tag und pro Woche (Lohnt sich eine Batterie quasi)

Aktiver Code:

  - sensor:
      - name: "Eigenverbrauch"
        state_class: "measurement"
        unit_of_measurement: "W"
        device_class: "power"
        state: >-
          {% set x = states('sensor.strom_aktuell') | float(0) %}
          {{ (([0, x, - 9999999]|sort)[1]) + (states('sensor.pv_power_total') | float(0)) }}


sensor:



  - platform: integration
    source: sensor.eigenverbrauch
    name: Eigenverbrauch_kwh
    unit_prefix: k
    round: 2

Ergibt:
Darf nur 2 Bilder…

Aber sobald ich den hier dran hänge:

attributes:
      ersparnis: >-
          {{ (state_attr('sensor.eigenverbrauch', 'strompreis')|float(0) * states('sensor.eigenverbrauch_kwh')|float(0)) - 1450 }}€
      strompreis: "0.6417"

Bekomme ich ein:


Anscheinend liegt das am Euro…

mache ich das Euro weg… funktioniert die Nummer , allerdings…

Aber dann kommt ein unbekannt…

Wenn ich folgendes Versuche:

       attributes:
          ersparnis: >-
            {{ (state_attr('sensor.eigenverbrauch', 'strompreis')|float(0) * states('sensor.eigenverbrauch_kwh')|float(0)) - 1450 }}
          strompreis: 0,6417

oder

 attributes:
          ersparnis: >-
            {{ (state_attr('Strompreis input_number.strompreis_pv', 'strompreis')|float(0) * states('sensor.eigenverbrauch_kwh')|float(0)) - 1450 }}

machen es nur noch schlimmer…

Hat jemand gerade eine Idee?
Am liebsten hätte ich einfach eine Kachel in welcher die Daten stehen wie oben beschrieben… aber gerade will es irgendwie nicht “klick” machen, ich habe zwar gefühlt alle Daten, aber irgendwas fehlt… (in meinem Kopf)

Und eigentlich müsste ich das doch am besten bei der KW/H am Tag und in Summe haben… irgendwie gerade verannt…

Kurz: HA auf Docker (Synology)

Ich habe folgende ENT:

Strompreis input_number.strompreis_pv
Strom Haus in W - sensor.strom_aktuell
Strom in Bezug sensor.strom_eg_bezug
Sensor Strom Einspeisung in KW sensor.pv_einspeisung
PV Total in W sensor.pv_power_total
PV Beide in Kw/h sensor.pv_in_kw_h_total_beide_all
PV in KWh Beide Today sensor.pv_in_kwh_beide_today
PV Beide KWh Gestern sensor.pv_beide_kwh_gestern
template balkonsolarbacktogridsensorwatts sensor.template_balkonsolarbacktogridsensorwatts
PV Überschuss (Ungebraucht) Today sensor.pv_uberschuss_ungebraucht_today
PV Überschuss im Monat sensor.pv_uberschuss_im_monat
PV Überschuss Woche sensor.pv_uberschuss_woche
sensor.eigenverbrauch_kwh
sensor.eigenverbrauch

Moin Marc,
bei mir sieht es aktuell so aus:


Die Amortisierung ist aber nur richtig, wenn es die nächsten 458 Tage genauso sonnig ist, wie die letzten Tage :slight_smile:
Ich teile die Restkosten durch (gesparte Stromkosten insgesamt / Tage seit Anlage läuft) = 451€ / (8,85€ / 8 Tage)

Das sieht gut aus… damit wäre ich echt happy… ich schau mir das gleich mal an… So habe ich mir das vorgestellt (-: Sehr gut… darf ich mal den Code sehen von einem deiner Kosten Entität/Sensor/Template? Ich krieg das irgendwie mit den Kosten nicht gezaubert… muss mal kurz zu einer Störung, aber gleich wieder da

Das wäre schön, wenn ich mal jemanden helfen kann und nicht nur Hilfe suche :slight_smile:
Ich habe leider nicht viel Ahnung wie man sauber in der yaml arbeitet, aber es funktioniert alles.
Es wäre zB. schöner wenn ich bereits definierte Sensoren in Berechnungen von danach definierten Sensoren nutzen könnte. Das hat aber nicht funktioniert, daher ist der Code am Ende sehr lang.

template:  
  - sensor:            
    # Sensor für heute gesparten Strom
      - name: "heute gesparter Strom"
        unique_id: "heute gesparter Strom"
        unit_of_measurement: "EUR"
        state: >-
            {{ (((float(states('input_number.strompreis_pro_kwh'))) * (float(states('sensor.pv_anlage_via_solarman_daily_production'))))|round(2)) }}
            
    # Sensor für gesamt gesparten Strom
      - name: "gesamt gesparter Strom"
        unique_id: "gesamt gesparter Strom"
        unit_of_measurement: "EUR"
        state: >-            
            {{ (((float(states('input_number.strompreis_pro_kwh'))) * (float(states('sensor.pv_anlage_via_solarman_total_production'))))|round(2)) }}
            
    # Sensor für restliche Kosten der Anlage
      - name: "restliche Kosten PV Anlage"
        unique_id: "restliche Kosten PV Anlage"
        unit_of_measurement: "EUR"
        state: >-            
            {{ (((float(states('input_number.kosten_pv_anlage'))) - ((float(states('input_number.strompreis_pro_kwh'))) * (float(states('sensor.pv_anlage_via_solarman_total_production')))))|round(2)) }}
            
    # Sensor für Tage seit PV Anlage läuft
      - name: "Tage seit PV Anlage läuft"
        unique_id: "Tage seit PV Anlage läuft"
        unit_of_measurement: "Tage"
        state: >-            
           {{ ((now().timestamp() - as_timestamp("2023-06-10")) /86400) | int }}
           
    # Sensor für Zeit bis zur Amortisierung der Anlage = restlicheKostenDerAnlage / (gesamtGesparterStrom / TageSeitAnlageLäuft)
      - name: "Zeit bis Amortisierung"
        unique_id: "Zeit bis Amortisierung"
        unit_of_measurement: "Tage"
        state: >-            
           {{ (((float(states('input_number.kosten_pv_anlage'))) - ((float(states('input_number.strompreis_pro_kwh'))) * (float(states('sensor.pv_anlage_via_solarman_total_production'))))) / (((float(states('input_number.strompreis_pro_kwh'))) * (float(states('sensor.pv_anlage_via_solarman_total_production')))) / (((now().timestamp() - as_timestamp("2023-06-10")) /86400) | int))) |round(1) }}
  

Die Kosten der Anlage und den Strompreis habe ich als Helfer hinterlegt:

Hey, das sieht gut aus… damit bekomme ich was hin…
Aber nur mal als Frage:
Bei den Restkosten hast du die Total Produktion hinterlegt, müsste da nicht erst ein Eigenverbrauch Total hinterlegt werden? Oder ist das schon dein bereinigter Wert?

Ich weiß nicht ob und wie aber wenn man den hier nimmt:

sensor:

  - platform: integration
    source: sensor.eigenverbrauch
    name: Eigenverbrauch_kwh
    unit_prefix: k
    round: 2

und diesen nach 24Std wieder quittieren könnte könnte man diese doch schon nehmen…

Das ist bei mir sehr einfach, da ich 100% Eigenverbrauch habe. Also Produktion = Eigenverbrauch :slight_smile:

Probier mal was in diese Richtung:

trigger:
  - platform: time
    at: '07:30:00'
action:
  - service: sensor.eigenverbrauch.reset
    entity_id: sensor.eigenverbrauch

Hab mir einfach weitere Zähler (Helfer) angelegt und kann es dort hinterlegen…
Aber über deine Routine habe ich gemerkt das es mit mehreren Sensoren nicht geht, aber mit Zählern…

Vielen lieben Dank dafür…
Du warst eine gr0ße Hilfe, jetzt kann ich erstmal “basteln”

So jetzt erstmal alles gesammelt:

Sowie für eine Batterieplanung ein wenig zum gucken →
image

1 „Gefällt mir“

Moin Malte,

wie hast du diese Helfer erstellt. Sowas mit der Möglichkeit der Eingabe kenne ich “noch” nicht :wink:

Hey, du meinst nicht die Helfer, oder?

Die fütter ich. Ja quasi mit meinem Eigenbedarfssensor…

Und die Auswahl sieht so aus wie das was ich brauchen konnte für mein Vorhaben →

Moin,
nein. Hab mich wohl ein wenig missverständlich ausgedrückt.

Ich meine den Beitrag von @Malte wo er in dem Bild oben unter -Amortisierung- so ein Auswahlfeld implementiert hat.
Dazu hatte er Helfer angelegt (Bild oben) mit “Strompreis pro kWh” und “Kosten_PV_Anlage”. Was sind das für Helfertypen? Finde ich nicht in meiner Liste, bzw. wie hat er das gelöst.

VG
Hajot

Der Helfertyp ist Nummer
image

Im Helfer selber dann den Haken rein bei

Super, danke.
Das “Nummer” Helferbild ist kleiner als das hier gezeigte.
Erst anlegen und dann den Helfer weiter konfigurieren (Zahnrad). Dann sieht das Bild so aus wie auf dem Bild hier.

ERLEDIGT :+1:

Gibt auch ein feature request dafür, darum voten

Ich nochmal zu dem Thema…

Bei dem Thema Eigenverbrauch → Ab und an geht das auch ins Minus… was ja faktisch falsch ist aber daran liegt, das die PV Anlage viel Schneller Daten liefert als PowerFox… Gerade wenn es wolkig ist…
Gibt es eine Möglichkeit den Wert zumindest bei 0 stehen zu lassen in dem Bruchteil von Sekunden…
Ist zwar nur ein Luxusproblem, aber wenn es einfach ist, könnte man das ja machen (-:

  - sensor:
      - name: "Eigenverbrauch"
        state_class: "measurement"
        unit_of_measurement: "W"
        device_class: "power"
        state: >-
          {% set x = states('sensor.strom_aktuell') | float(0) %}
          {{ (([0, x, - 9999999]|sort)[1]) + (states('sensor.pv_power_total') | float(0)) }}