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.
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.*/
