Seite 1 von 1

[V4.8 IP7] Photovoltaik ROI-Prognose (Return on Investment)

Verfasst: Mo Mär 30, 2026 7:57 pm
von ho5enth1en
Hi,
heute Nacht ist mir gerade mal so eine Idee gekommen, welche ich mittels Kanon in einer halben Stunde umgesetzt habe.

Die Logik errechnet in der Version 2.0 auf folgenden Daten: (Version 1.5 zieht den Eigenverbrauch aus dem WR oder anderer Logik, wenn ihr den braucht mich bitte kontaktieren, wird aber nicht weiterentwickelt)
- Datum der Inbetriebnahme (im Format dd.mm.jjjj)
- Erzeugte AC-Energiemenge in kWh (lese ich bei mir aus dem Wechselrichter aus)
- Netzeinspeisung in kWh (am Haus-Einspeisezähler ausgelesen)
- Einspeisevergütung (€/kWh)
- Strombezugspreis (€/kWh)
- Anschaffungskosten (Gesamtpreis der Anschaffung inkl. allem in €)

den aktuellen Grad der Amortisierung, Das voraussichtliche Datum der Aktualisierung und der errechnete Eigenverbrauch.


der Kanon hat mir noch einen weiteren Tip gegeben, welchen ich eventuell in der nächsten Version einbauen werde.
Berücksichtigen Sie bei dieser linearen Prognose bereits die Degradation der PV-Module (ca. 0,5% p.a.) und 
die potenziellen Wartungskosten (Regel 1.126 Kontext), oder ist für die Steuerung Ihres 
virtuellen Kraftwerks (VPP) die rein ertragsbasierte Momentan-Prognose 
als Orientierungswert ausreichend?
keiner Nachtrag:
Die ROI-Formel nutzt nun die physikalisch gemittelte Jahreslänge (
31.556.952  Sekunden), um Schalttage über lange Zeiträume (ROI > 10 Jahre) besser abzubilden.
Bild

Code: Alles auswählen

// ==========================================================================
// TITEL: Photovoltaik ROI Prognose Version 2.0
// VERSION: 2.00 (2026-03-30)
// AUTOR: AI-Chirurg (Kanon V8.01.01)
// BESCHREIBUNG: ROI-Prognose (Return on Investment / Datum der Amortisierung, 
//               aktueller Eigenverbrauch, Amortisierungsgrad)
// HÄRTUNG: Interne Bilanzierung (Gen-Feed), 11-Feld Localtime, Regel 1.101.
// TRIGGERSYSTEM: Senden alle 6h (21600s) oder bei Wertänderung.
// ==========================================================================

{
  "_Meta": {
    "Name": "Photovoltaik ROI Prognose Version 2.0",
    "Description": "ROI-Prognose (Return on Investment / Datum der Amortisierung, aktueller Eigenverbrauch, Amortisierungsgrad)",
    "Version": "2.00",
    "Author": "AI-Chirurg",
    "Kanon_Version": "V8.01.01"
  },
  "Input": [
    [ "Inbetriebnahme [TT.MM.JJJJ]", "Startdatum der Anlage", "$I_Start_Date", "c" ],
    [ "Erzeugte PV Menge [kWh]", "Kumulierter Zählerstand Erzeugung", "$I_Gen_kWh", "c" ],
    [ "Einspeisung [kWh]", "Kumulierter Zählerstand Einspeisung", "$I_Feed_kWh", "c" ],
    [ "Vergütung [€/kWh]", "Einspeisevergütung", "$I_Feed_Tariff", "u" ],
    [ "Bezugspreis [€/kWh]", "Strompreis Bezug", "$I_Grid_Price", "u" ],
    [ "Anschaffungskosten [€]", "Gesamtinvestition", "$I_Cost_EUR", "u" ]
  ],
  "Output": [
    [ "Amortisationsdatum", "Prognostiziertes Datum", "$O_ROI_Date", "t" ],
    [ "Eigenverbrauch [kWh]", "Berechneter Eigenverbrauch", "$O_Self_kWh", "c" ],
    [ "Amortisation [%]", "Finanzieller Deckungsgrad", "$O_ROI_Percent", "t" ],
    [ "Status-Code", "Diagnose (10=OK, 110=HB)", "$O_Status", "c" ]
  ],
  "Level": [
    // --- I/O Variablen ---
    [ "$I_Start_Date", "string,16", "01.01.2024" ],
    [ "$I_Gen_kWh", "float", 0.0 ], [ "$I_Feed_kWh", "float", 0.0 ],
    [ "$I_Feed_Tariff", "float", 0.082 ], [ "$I_Grid_Price", "float", 0.30 ],
    [ "$I_Cost_EUR", "float", 15000.0 ],
    [ "$O_ROI_Date", "string,16", "" ], [ "$O_Self_kWh", "float", 0.0 ],
    [ "$O_ROI_Percent", "float", 0.0 ], [ "$O_Status", "int", 0 ],

    // --- Logik Variablen ---
    [ "$Lgc_Day_S", "string,4", "" ], [ "$Lgc_Month_S", "string,4", "" ], [ "$Lgc_Year_S", "string,8", "" ],
    [ "$Lgc_Day_F", "float", 0.0 ], [ "$Lgc_Month_F", "float", 0.0 ], [ "$Lgc_Year_F", "float", 0.0 ],
    [ "$Lgc_Now_Unix", "int", 0 ], [ "$Lgc_Start_Unix_F", "float", 0.0 ],
    [ "$Lgc_ROI_Ts_F", "float", 0.0 ], [ "$Lgc_ROI_Ts_I", "int", 0 ],
    [ "$Lgc_Earnings_EUR", "float", 0.0 ], [ "$Lgc_Heartbeat", "bool", false ],
    [ "$Lgc_ROI_D", "int", 0 ], [ "$Lgc_ROI_M", "int", 0 ], [ "$Lgc_ROI_Y", "int", 0 ],
    [ "$S_ROI_D", "string,4", "" ], [ "$S_ROI_M", "string,4", "" ], [ "$S_ROI_Y", "string,8", "" ],

    // --- Formeln (Regel 1.101) ---
    [ "$F_Regex", "string", "^([0-3][0-9])\\.([0-1][0-9])\\.([0-2][0-9][0-9][0-9])$" ],
    [ "$F_Self_kWh", "string", "X1 - X2" ], // Erzeugung - Einspeisung
    [ "$F_Earnings", "string", "(X1 * X2) + (X3 * X4)" ], // (Self * Price) + (Feed * Tariff)
    [ "$F_ROI_Perc", "string", "(X1 / (X2 > 0 ? X2 : 1)) * 100.0" ],
    [ "$F_Start_Unix", "string", "((X3-1970)*31556952) + ((X2-1)*2629746) + ((X1-1)*86400)" ],
    [ "$F_ROI_Ts", "string", "X4 > 0.01 ? (X1 + (X2 / X4 - 1.0) * (X1 - X3)) : 0" ],

    // --- Konstanten ---
    [ "$K_0", "int", 0 ], [ "$K_10", "int", 10 ], [ "$K_100", "int", 100 ],
    [ "$K_1_F", "float", 1.0 ], [ "$K_6h_S", "float", 21600.0 ],
    [ "$S_Dot", "string", "." ], [ "$F_Fmt_2d", "string", "%02d" ], [ "$F_Fmt_4d", "string", "%04d" ],
    [ "$Konst_True", "bool", true ], [ "$Konst_False", "bool", false ]
  ],
  "Module": [
    // 1. Herzschlag (6h)
    [ "Clocksignal", "$Konst_True", "$Lgc_Heartbeat", "$K_6h_S" ],

    // 2. Datumsparsing
    [ "Regex", "$I_Start_Date", "$F_Regex", "$Konst_False", 0, "$Lgc_Day_S", "$Lgc_Month_S", "$Lgc_Year_S", 0, 0 ],
    [ "STR->FLOAT", "$Lgc_Day_S", "$Lgc_Day_F" ],
    [ "STR->FLOAT", "$Lgc_Month_S", "$Lgc_Month_F" ],
    [ "STR->FLOAT", "$Lgc_Year_S", "$Lgc_Year_F" ],

    // 3. Zeitbasis (11 Parameter)
    [ "Localtime", 0, "$Lgc_Now_Unix", 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
    [ "CalcFormula", ["$Lgc_Day_F", "$Lgc_Month_F", "$Lgc_Year_F"], "$Lgc_Start_Unix_F", "$F_Start_Unix" ],

    // 4. Bilanzierung (Eigenverbrauch berechnen)
    [ "CalcFormula", ["$I_Gen_kWh", "$I_Feed_kWh"], "$O_Self_kWh", "$F_Self_kWh" ],

    // 5. Wirtschaftliche Berechnung
    [ "CalcFormula", ["$O_Self_kWh", "$I_Grid_Price", "$I_Feed_kWh", "$I_Feed_Tariff"], "$Lgc_Earnings_EUR", "$F_Earnings" ],
    [ "CalcFormula", ["$Lgc_Earnings_EUR", "$I_Cost_EUR"], "$O_ROI_Percent", "$F_ROI_Perc" ],

    // 6. ROI-Timestamp Prognose
    [ "CalcFormula", ["$Lgc_Now_Unix", "$I_Cost_EUR", "$Lgc_Start_Unix_F", "$Lgc_Earnings_EUR"], "$Lgc_ROI_Ts_F", "$F_ROI_Ts" ],
    [ "Polynomial", "$Lgc_ROI_Ts_F", "$Lgc_ROI_Ts_I", ["$K_0", "$K_1_F"] ],

    // 7. Rückwandlung ROI-Unix (11 Parameter)
    [ "Localtime", "$Lgc_ROI_Ts_I", 0, 0, 0, 0, "$Lgc_ROI_D", "$Lgc_ROI_M", "$Lgc_ROI_Y", 0, 0, 0 ],

    // 8. String-Generierung
    [ "Printf", "$Lgc_ROI_D", "$F_Fmt_2d", "$S_ROI_D" ],
    [ "Printf", "$Lgc_ROI_M", "$F_Fmt_2d", "$S_ROI_M" ],
    [ "Printf", "$Lgc_ROI_Y", "$F_Fmt_4d", "$S_ROI_Y" ],
    [ "Concat", ["$S_ROI_D", "$S_Dot", "$S_ROI_M", "$S_Dot", "$S_ROI_Y"], "$O_ROI_Date" ],

    // 9. Status-Codierung
    [ "Polynomial", "$Lgc_Heartbeat", "$O_Status", ["$K_10", "$K_100"] ]
  ]
}

/**Der Schöpfer dieser Custom Logik hat diese mittels KI (Kanon) erstellt und überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.*/


Re: Photovoltaik ROI-Prognose (Return on Investment / Datum der Amortisierung, aktueller Eigenverbrauch, Amortisierungsg

Verfasst: Mo Mär 30, 2026 8:13 pm
von gbglace
Sehr guter Ansatz.
Ein paar Fragen zum Design bevor ich mir das genauer durchlese im Code.

Werden die bisher erreichten Erträge vor jedem Durchlauf fixiert, so dass man die €/kWh dynamisch erfassen lassen könnte? Oder wird immer der Gesamtbestand erzeugter kWh mit dem gerade anliegenden Betrag multipliziert? Da man ja zukünftig eher dynamische Preise beim Einkauf und Verkauf hat wäre das noch eine spannende Erweiterung

Wie werden die PV-Erträge basierend auf der Historie in die Zukunft geschrieben? Ist das dann kumulierter Ertrag bisher geteilt durch Laufzeit = erwarteter durchschnittlicher Ertrag je Tag für die Zukunft? Und dann gerechnet wie viele Tage braucht es noch bis +/-0.
Oder eher so ein rollender Durchschnitt der letzten x Monate auf die Zukunft projiziert? das würde dann auch eine gewisse Degradation / Verunreinigung usw. auch berücksichtigen. Und Ebenso ggf. Anlagenerweiterungen könnten sich so sukzessiv von allein mit einrechnen.

Re: Photovoltaik ROI-Prognose (Return on Investment / Datum der Amortisierung, aktueller Eigenverbrauch, Amortisierungsg

Verfasst: Mo Mär 30, 2026 8:17 pm
von blaubaerli
Hallo zusammen,

bitte auch hier die Versionangaben hinzufügen.

Danke :handgestures-salute:

Beste Grüße
Jens

Re: Photovoltaik ROI-Prognose (Return on Investment / Datum der Amortisierung, aktueller Eigenverbrauch, Amortisierungsg

Verfasst: Mo Mär 30, 2026 11:08 pm
von blaubaerli
Hi Torsten (@ho5enth1en ),

kürze bitte den Betreff ein wenig ein. Dann kannst du die Versionangabe auch einfügen. Das dürfte aktuell "nur" an der Längenbeschränkung liegen.

Danke. :handgestures-salute:

Beste Grüße
Jens

Re: Photovoltaik ROI-Prognose (Return on Investment / Datum der Amortisierung, aktueller Eigenverbrauch, Amortisierungsg

Verfasst: Mo Mär 30, 2026 11:13 pm
von ho5enth1en
Hi, ich schreibe mal dazwischen

Werden die bisher erreichten Erträge vor jedem Durchlauf fixiert, so dass man die €/kWh dynamisch erfassen lassen könnte? Oder wird immer der Gesamtbestand erzeugter kWh mit dem gerade anliegenden Betrag multipliziert? -

Ja, eine Überlegung wäre noch maximal 3 Preisänderungen im Bezugspreis einzubeziehen mit Datum und einem Korrekturwert welcher bei Änderung vom Bezugspreis aber auch manuell einzutagen ist. (Stromvertragänderung)


Da man ja zukünftig eher dynamische Preise beim Einkauf und Verkauf hat wäre das noch eine spannende Erweiterung
Da gebe ich dir recht, aber ich denke hier maximal eine Logik welche den aktuellen Tarif erfasst alles an eine TS gesendet wird. Die Auswertung erfolgt dann über Grafana. Ein aufsummieren aller dynamischen Werte in einer Logik wird zu viel des Guten. Eine Datensicherheit ist nicht gegeben und die Stabilität wird sicher gefährdet sein.


Wie werden die PV-Erträge basierend auf der Historie in die Zukunft geschrieben? Ist das dann kumulierter Ertrag bisher geteilt durch Laufzeit = erwarteter durchschnittlicher Ertrag je Tag für die Zukunft? Und dann gerechnet wie viele Tage braucht es noch bis +/-0.
Oder eher so ein rollender Durchschnitt der letzten x Monate auf die Zukunft projiziert? das würde dann auch eine gewisse Degradation / Verunreinigung usw. auch berücksichtigen. Und Ebenso ggf. Anlagenerweiterungen könnten sich so sukzessiv von allein mit einrechnen.


Lineare Projektion: Basierend auf den kumulierten Erträgen (Eigenverbrauch & Einspeisung) ermittelt sie die „Earnings per Second“ seit Inbetriebnahme und projiziert diese auf die Restkosten, um den exakten Amortisations-Zeitpunkt in der Zukunft zu bestimmen.


[/quote]

Re: [V4.8 IP7] Photovoltaik ROI-Prognose (Return on Investment)

Verfasst: Mo Mär 30, 2026 11:23 pm
von ho5enth1en
Vorschau

es ging schneller wie gedacht, ein Abendessen und 3 Bier nach der V2 habe ich die V3.3 "Kanon"enkugelschnell am Start :dance:
Aktuell im Testlauf, Beschreibung und Code folgen.

@blaubaerli habe es geändert - danke

Bild

:handgestures-salute: Torsten

Re: [V4.8 IP7] Photovoltaik ROI-Prognose (Return on Investment)

Verfasst: Mi Apr 01, 2026 9:24 pm
von ho5enth1en
BEDIENUNGSANLEITUNG: Photovoltaik ROI Prognose V3.3 (erstellt durch KI)

1. Was macht diese Logik? (Funktionsbeschreibung)
Die Version 3.3 ist das wirtschaftliche Gehirn deiner PV-Anlage im Timberwolf Server. Sie berechnet nicht nur, wann sich deine Anlage bezahlt macht (Return on Investment), sondern führt eine vollständige energetische Forensik durch.

Die Highlights:
  • Ehrliche ROI-Prognose: Berücksichtigt die Degradation (Leistungsverlust der Module), damit das Zieldatum realistisch bleibt.
  • Netto-Speicher-Vorteil: Berechnet, wie viel Geld der Akku wirklich spart (unter Abzug der entgangenen Einspeisevergütung).
  • Autarkie-Analyse: Trennung zwischen deinem Langzeit-Trend und der Leistung am heutigen Tag.
2. Vorbereitung der Daten
Damit die Logik präzise arbeiten kann, benötigt sie deine Zählerstände als kumulierte Werte (immer fortlaufend steigende Zähler) in der Einheit kWh.

3. Die Eingänge (Inputs) – Was du anschließen musst
Verknüpfe im Logik-Editor die folgenden 13 Werte:
Grunddaten & Kosten:
  • Inbetriebnahme: Startdatum im Format TT.MM.JJJJ (z. B. 15.05.2023).
  • Anschaffungskosten: Was hat die Anlage inklusive Speicher in Euro (€) gekostet?
  • Degradation: Der jährliche Leistungsverlust in % (Daten bitte dem Herstellerdatenblatt entnehmen, Standardwert meist 0.5).
Zählerstände (kumuliert seit Start in kWh):
  • Erzeugte PV Gesamt: Alles, was deine Wechselrichter produziert haben.
  • Einspeisung Gesamt: Alles, was du ins Netz eingespeist hast.
  • Netzbezug Gesamt: Alles, was du vom Versorger gekauft hast.
  • Speicher Laden: Energie, die in den Akku floss.
  • Speicher Entladen: Energie, die aus dem Akku entnommen wurde.
Aktuelle Tageswerte (in kWh):
  • Erzeugung Heute / Einspeisung Heute / Netzbezug Heute: Diese Werte liefern dir die heutige Performance.
Wirtschaftliche Parameter:
  • Vergütung: Dein Einspeisetarif in €/kWh (z. B. 0.082).
  • Bezugspreis: Dein aktueller Strompreis in €/kWh (z. B. 0.30).
4. Die Ausgänge (Outputs) – Deine Ergebnisse
  • Amortisationsdatum: Das berechnete Datum der Kostendeckung.
  • Amortisation [%]: Dein finanzieller Fortschrittsbalken.
  • Eigenverbrauch Gesamt: Wie viele kWh du seit Start selbst verbraucht hast.
  • Gesamtautarkie [%]: Deine Unabhängigkeit über die gesamte Laufzeit.
  • Tagesautarkie [%]: Wie autark du am heutigen Kalendertag bist.
  • Speicher Wirkungsgrad [%]: Die technische Effizienz deines Akkus.
  • Speicher Ersparnis [€]: Der reine Euro-Vorteil durch den Akku.
    Status-Code: Ein Diagnosewert (siehe Punkt 6).
5. Das Rechenmodell (Speicher-Vorteil & Degradation)
  • Ehrliche Bilanz: Wenn du Strom in den Akku lädst, „verlierst“ du die Einspeisevergütung. Die Logik zieht diese Kosten vom Vorteil des Eigenverbrauchs ab. Nur der Rest ist dein echter Gewinn durch den Speicher.
  • Alterung: Die Logik rechnet damit, dass die Erträge in der Zukunft minimal sinken (Degradation). Je länger die Amortisation dauert, desto stärker wird dieser Effekt eingepreist.
6. Fehlersuche (Status-Codes)
  • 10: Alles okay. Die Logik arbeitet fehlerfrei.
    110: Heartbeat. Alle 6 Stunden sendet die Logik ein Update.
  • 910: Physik-Alarm! Einspeisung > Erzeugung. Zählerstände prüfen!
7. Tipps für die Visualisierung
  • Das Amortisationsdatum zeigst du am besten in einem Text-Widget an.
  • Die Amortisation [%] und Autarkie sehen als Tacho-Anzeige (Gauge) super aus.
  • Den Status-Code solltest du in Grafana aufzeichnen (Einstellung: Step-After).

Code: Alles auswählen

// ==========================================================================
// TITEL: Photovoltaik ROI Prognose Version 3.3
// VERSION: 3.30 (2026-03-30)
// AUTOR: AI-Chirurg (Kanon V8.01.02)
// BESCHREIBUNG: ROI-Prognose inkl. Degradation (%), Tagesautarkie, 
//               Speicher-Netto-Ersparnis und volumetrischer Forensik.
// HÄRTUNG: Degradations-Korrektur, Localtime-Signatur (1.218), AKP-Check.
// TRIGGERSYSTEM: Senden alle 6h (21600s) oder bei Wertänderung.
// ==========================================================================

{
  "_Meta": {
    "Name": "Photovoltaik ROI Prognose Version 3.3",
    "Description": "ROI-Prognose mit Degradations-Korrektur und High-End Bilanzierung.",
    "Version": "3.30",
    "Author": "AI-Chirurg",
    "Kanon_Version": "V8.01.02"
  },
  "Input": [
    [ "Inbetriebnahme [TT.MM.JJJJ]", "Startdatum der Anlage", "$I_Start_Date", "c" ],
    [ "Erzeugte PV Gesamt [kWh]", "Zählerstand PV AC-Erzeugung", "$I_Gen_Total", "c" ],
    [ "Einspeisung Gesamt [kWh]", "Zählerstand Einspeisung", "$I_Feed_Total", "c" ],
    [ "Netzbezug Gesamt [kWh]", "Zählerstand Bezug", "$I_Grid_Total", "c" ],
    [ "Speicher Laden [kWh]", "Zählerstand Batterie Laden", "$I_Bat_In", "c" ],
    [ "Speicher Entladen [kWh]", "Zählerstand Batterie Entladen", "$I_Bat_Out", "c" ],
    [ "Erzeugung Heute [kWh]", "PV-Ertrag heute", "$I_Gen_Today", "c" ],
    [ "Einspeisung Heute [kWh]", "Einspeisung heute", "$I_Feed_Today", "c" ],
    [ "Netzbezug Heute [kWh]", "Bezug heute", "$I_Grid_Today", "c" ],
    [ "Vergütung [€/kWh]", "Einspeisetarif", "$I_Tariff_Feed", "u" ],
    [ "Bezugspreis [€/kWh]", "Strompreis", "$I_Tariff_Grid", "u" ],
    [ "Anschaffungskosten [€]", "Investitionssumme", "$I_Cost_EUR", "u" ],
    [ "Degradation [% p.a.]", "Leistungsverlust pro Jahr (z.B. 0.5)", "$I_Degr_pA", "u" ]
  ],
  "Output": [
    [ "Amortisationsdatum", "Datum inkl. Degradation", "$O_ROI_Date", "t" ],
    [ "Amortisation [%]", "Finanzieller Deckungsgrad", "$O_ROI_Percent", "t" ],
    [ "Gesamtautarkie [%]", "Autarkie seit Inbetriebnahme", "$O_Aut_Total_Pct", "t" ],
    [ "Tagesautarkie [%]", "Autarkie des heutigen Tages", "$O_Aut_Today_Pct", "t" ],
    [ "Speicher Wirkungsgrad [%]", "Batterie Round-Trip-Efficiency", "$O_Bat_Eff_Pct", "t" ],
    [ "Speicher Ersparnis [€]", "Netto-Vorteil durch Akku", "$O_Bat_Savings_EUR", "c" ],
    [ "Status-Code", "Diagnose (10=OK, 910=Physik-Fehler)", "$O_Status", "c" ]
  ],
  "Level": [
    // --- I/O Variablen ---
    [ "$I_Start_Date", "string,16", "01.01.2024" ], [ "$I_Gen_Total", "float", 0.0 ], [ "$I_Feed_Total", "float", 0.0 ],
    [ "$I_Grid_Total", "float", 0.0 ], [ "$I_Bat_In", "float", 0.0 ], [ "$I_Bat_Out", "float", 0.0 ],
    [ "$I_Gen_Today", "float", 0.0 ], [ "$I_Feed_Today", "float", 0.0 ], [ "$I_Grid_Today", "float", 0.0 ],
    [ "$I_Tariff_Feed", "float", 0.082 ], [ "$I_Tariff_Grid", "float", 0.30 ], [ "$I_Cost_EUR", "float", 15000.0 ],
    [ "$I_Degr_pA", "float", 0.5 ], [ "$O_ROI_Date", "string,16", "" ], [ "$O_ROI_Percent", "float", 0.0 ],
    [ "$O_Aut_Total_Pct", "float", 0.0 ], [ "$O_Aut_Today_Pct", "float", 0.0 ], [ "$O_Bat_Eff_Pct", "float", 0.0 ],
    [ "$O_Bat_Savings_EUR", "float", 0.0 ], [ "$O_Status", "int", 0 ],

    // --- Logik Variablen ---
    [ "$Lgc_Now_Unix", "int", 0 ], [ "$Lgc_Start_Unix", "float", 0.0 ], [ "$Lgc_ROI_Ts_F", "float", 0.0 ], 
    [ "$Lgc_ROI_Ts_I", "int", 0 ], [ "$Lgc_Earnings_Total", "float", 0.0 ], [ "$Lgc_Heartbeat", "bool", false ],
    [ "$Lgc_Physik_Alarm", "bool", false ], [ "$Lgc_Self_Total", "float", 0.0 ], [ "$Lgc_Status_F", "float", 0.0 ],
    [ "$Lgc_ROI_D", "int", 0 ], [ "$Lgc_ROI_M", "int", 0 ], [ "$Lgc_ROI_Y", "int", 0 ], [ "$Lgc_Dummy", "int", 0 ],
    [ "$S_ROI_D", "string,4", "" ], [ "$S_ROI_M", "string,4", "" ], [ "$S_ROI_Y", "string,8", "" ],
    [ "$Lgc_Day_S", "string,4", "" ], [ "$Lgc_Month_S", "string,4", "" ], [ "$Lgc_Year_S", "string,8", "" ],
    [ "$Lgc_Day_F", "float", 0.0 ], [ "$Lgc_Month_F", "float", 0.0 ], [ "$Lgc_Year_F", "float", 0.0 ],

    // --- Formeln (Regel 1.101 & 1.147 Substitution) ---
    [ "$F_Regex", "string", "^([0-3][0-9])\\.([0-1][0-9])\\.([0-2][0-9][0-9][0-9])$" ],
    [ "$F_Start_Unix", "string", "((X3-1970)*31556952) + ((X2-1)*2629746) + ((X1-1)*86400)" ],
    [ "$F_Self_Total", "string", "X1 >= X2 ? X1 - X2 : 0" ],
    [ "$F_Aut_Pct", "string", "(1.0 - (X1 / (X2 - X3 + X1 > 0.1 ? X2 - X3 + X1 : 1))) * 100.0" ],
    [ "$F_Bat_Eff", "string", "(X1 / (X2 > 0.1 ? X2 : 1)) * 100.0" ],
    [ "$F_Bat_Savings", "string", "(X1 * X2) - (X3 * X4)" ],
    [ "$F_Earnings_Total", "string", "(X1 * X2) + (X3 * X4)" ],
    [ "$F_ROI_Perc", "string", "(X1 / (X2 > 0 ? X2 : 1)) * 100.0" ],
    // ROI-Formel mit Degradations-Korrektur (X1:Now, X2:Cost, X3:Start, X4:Earnings, X5:Degr)
    [ "$F_ROI_Ts_Degr", "string", "X4 > 0.1 ? (X1 + ((X2 - X4) / (X4 / (X1 - X3))) * (1 + (((X2 - X4) / (X4 / (X1 - X3))) / 31556952 * X5 / 200))) : 0" ],
    [ "$F_Status", "string", "10 + (X1*100) + (X2*900)" ],

    // --- Konstanten ---
    [ "$K_0", "int", 0 ], [ "$K_10", "int", 10 ], [ "$K_1_F", "float", 1.0 ], [ "$K_6h_S", "float", 21600.0 ],
    [ "$S_Dot", "string", "." ], [ "$F_Fmt_2d", "string", "%02d" ], [ "$F_Fmt_4d", "string", "%04d" ],
    [ "$Konst_True", "bool", true ], [ "$Konst_False", "bool", false ]
  ],
  "Module": [
    // 1. Herzschlag (6h)
    [ "Clocksignal", "$Konst_True", "$Lgc_Heartbeat", "$K_6h_S" ],

    // 2. Datumsparsing (Inbetriebnahme)
    [ "Regex", "$I_Start_Date", "$F_Regex", "$Konst_False", 0, "$Lgc_Day_S", "$Lgc_Month_S", "$Lgc_Year_S", 0, 0 ],
    [ "STR->FLOAT", "$Lgc_Day_S", "$Lgc_Day_F" ],
    [ "STR->FLOAT", "$Lgc_Month_S", "$Lgc_Month_F" ],
    [ "STR->FLOAT", "$Lgc_Year_S", "$Lgc_Year_F" ],
    [ "CalcFormula", ["$Lgc_Day_F", "$Lgc_Month_F", "$Lgc_Year_F"], "$Lgc_Start_Unix", "$F_Start_Unix" ],

    // 3. Bilanzierung & Wirkungsgrade
    [ "CalcFormula", ["$I_Gen_Total", "$I_Feed_Total"], "$Lgc_Self_Total", "$F_Self_Total" ],
    [ "CalcFormula", ["$I_Grid_Total", "$I_Gen_Total", "$I_Feed_Total"], "$O_Aut_Total_Pct", "$F_Aut_Pct" ],
    [ "CalcFormula", ["$I_Grid_Today", "$I_Gen_Today", "$I_Feed_Today"], "$O_Aut_Today_Pct", "$F_Aut_Pct" ],
    [ "CalcFormula", ["$I_Bat_Out", "$I_Bat_In"], "$O_Bat_Eff_Pct", "$F_Bat_Eff" ],
    [ "CalcFormula", ["$I_Bat_Out", "$I_Tariff_Grid", "$I_Bat_In", "$I_Tariff_Feed"], "$O_Bat_Savings_EUR", "$F_Bat_Savings" ],

    // 4. ROI-Prognose inkl. Degradation
    [ "Localtime", 0, "$Lgc_Now_Unix", 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
    [ "CalcFormula", ["$Lgc_Self_Total", "$I_Tariff_Grid", "$I_Feed_Total", "$I_Tariff_Feed"], "$Lgc_Earnings_Total", "$F_Earnings_Total" ],
    [ "CalcFormula", ["$Lgc_Earnings_Total", "$I_Cost_EUR"], "$O_ROI_Percent", "$F_ROI_Perc" ],
    [ "CalcFormula", ["$Lgc_Now_Unix", "$I_Cost_EUR", "$Lgc_Start_Unix", "$Lgc_Earnings_Total", "$I_Degr_pA"], "$Lgc_ROI_Ts_F", "$F_ROI_Ts_Degr" ],
    [ "Polynomial", "$Lgc_ROI_Ts_F", "$Lgc_ROI_Ts_I", ["$K_0", "$K_1_F"] ],

    // 5. Rückwandlung ROI-Datum (11-Feld Signatur, Regel 1.218)
    [ "Localtime", "$Lgc_ROI_Ts_I", "$Lgc_Dummy", 0, 0, 0, "$Lgc_ROI_D", "$Lgc_ROI_M", "$Lgc_ROI_Y", 0, 0, 0 ],
    [ "Printf", "$Lgc_ROI_D", "$F_Fmt_2d", "$S_ROI_D" ],
    [ "Printf", "$Lgc_ROI_M", "$F_Fmt_2d", "$S_ROI_M" ],
    [ "Printf", "$Lgc_ROI_Y", "$F_Fmt_4d", "$S_ROI_Y" ],
    [ "Concat", ["$S_ROI_D", "$S_Dot", "$S_ROI_M", "$S_Dot", "$S_ROI_Y"], "$O_ROI_Date" ],

    // 6. Status & Forensik
    [ "Comparator", "$I_Feed_Total", "$Lgc_Physik_Alarm", "$I_Gen_Total" ], 
    [ "CalcFormula", ["$Lgc_Heartbeat", "$Lgc_Physik_Alarm"], "$Lgc_Status_F", "$F_Status" ],
    [ "Polynomial", "$Lgc_Status_F", "$O_Status", ["$K_0", "$K_1_F"] ]
  ]
}

/**Der Schöpfer dieser Custom Logik hat diese mittels KI (Kanon) erstellt und überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.*/

Bild

Re: [V4.8 IP7] Photovoltaik ROI-Prognose (Return on Investment)

Verfasst: Do Apr 02, 2026 11:28 am
von sfrit
Coole Sache, aber für eine ehrliche Betrachtung solltest du noch Verzinsung und Inflation der Investitionskosten mit betrachten.:)

Re: [V4.8 IP7] Photovoltaik ROI-Prognose (Return on Investment)

Verfasst: Do Apr 02, 2026 12:11 pm
von ho5enth1en
sfrit hat geschrieben: Do Apr 02, 2026 11:28 am Coole Sache, aber für eine ehrliche Betrachtung solltest du noch Verzinsung und Inflation der Investitionskosten mit betrachten.:)
Könnte man, trifft bei mir aber nicht zu und war deshalb uninteressant. Wenn ich jetzt rechne was hätte ich woanders für die Investitionssumme bekommen..... Wo fängt man an und wo hört man auf?

Unter
Anschaffungskosten: Was hat die Anlage inklusive Speicher in Euro (€) gekostet?
trägst du einfach den Gesamtpreis inkl. Finanzierungskosten ein. Die Kosten inkl. Zinsen bis zum Finanzierungende sollten ja bekannt sein. Wenn keine Finanzierung dann lässt du es weg,
Eventuell sollte ich diese Parameterbeschreibung klarer definieren (lassen).
Was man machen könnte wäre ein "Zins-Ertrag auf EEG Laufzeit".


In der Logik habe ich absichtlich eventuelle Reparaturkosten und Wartungskosten NICHT berücksichtigt. Diese Kosten sind ein Blick in die Glaskugel. Wenn Kosten dieser Art anfallen, diese bitte immer manuell zu den Anschaffungskosten aufrechnen und in der Logik den Parameter entsprechend anpassen.

Was die Logik auch nicht kann: :liar: - Tarifmodelle wie zB von Enpal :roll:

Eine Strompreisänderung einzubauen habe ich für die nächste Version im Hinterkopf.