From b4de095a20dd55508914ead3365d7faea1ae83e4 Mon Sep 17 00:00:00 2001 From: DanielHaefliger Date: Fri, 12 Dec 2025 07:49:48 +0100 Subject: [PATCH] no message --- Abrechnung/module.php | 47 +++++++++---------------------------------- 1 file changed, 9 insertions(+), 38 deletions(-) diff --git a/Abrechnung/module.php b/Abrechnung/module.php index 2238545..f98bac9 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -263,7 +263,8 @@ class Abrechnung extends IPSModule 'solarverkauf' => 0.0, 'cost_solar' => 0.0, 'cost_grid' => 0.0, - 'rev_feedin' => 0.0 + 'rev_feedin' => 0.0, + 'rev_zev' => 0.0 ]; } @@ -289,8 +290,6 @@ class Abrechnung extends IPSModule // Deltas je Zähler des Users foreach ($meters as $name => $mm) { - IPS_LogMessage("KostenModul", "---- Zähler '$name' wird verarbeitet ----"); - $impDelta = 0.0; $expDelta = 0.0; @@ -298,33 +297,20 @@ foreach ($meters as $name => $mm) { if (!empty($mm['importVar'])) { $varId = (int)$mm['importVar']; if (IPS_VariableExists($varId)) { - IPS_LogMessage("KostenModul", "Import-Variable vorhanden: $varId"); $impDelta = $this->getDeltaFromArchive($varId, $ts, $slotEnd); - IPS_LogMessage("KostenModul", "importDelta = $impDelta"); - } else { - IPS_LogMessage("KostenModul", "Import-Variable existiert NICHT: $varId"); } - } else { - IPS_LogMessage("KostenModul", "Keine importVar für '$name' definiert."); - } + } // EXPORT if (!empty($mm['exportVar'])) { $varId = (int)$mm['exportVar']; if (IPS_VariableExists($varId)) { - IPS_LogMessage("KostenModul", "Export-Variable vorhanden: $varId"); $expDelta = $this->getDeltaFromArchive($varId, $ts, $slotEnd); - IPS_LogMessage("KostenModul", "exportDelta = $expDelta"); - } else { - IPS_LogMessage("KostenModul", "Export-Variable existiert NICHT: $varId"); } - } else { - IPS_LogMessage("KostenModul", "Keine exportVar für '$name' definiert."); } // Nur hinzufügen, wenn Werte vorhanden sind if ($impDelta > 0.0 || $expDelta > 0.0) { - IPS_LogMessage("KostenModul", "Zähler '$name' wird berücksichtigt: imp=$impDelta | exp=$expDelta"); $slot[$name] = [ 'imp' => $impDelta, @@ -334,19 +320,14 @@ foreach ($meters as $name => $mm) { $impTotal += $impDelta; $expTotal += $expDelta; - } else { - IPS_LogMessage("KostenModul", "Zähler '$name' hat keine Deltas > 0 – wird übersprungen."); } - IPS_LogMessage("KostenModul", "---- Ende Zähler '$name' ----"); } // Logging der Eingangswerte - IPS_LogMessage("KostenModul", "impTotal: $impTotal | expTotal: $expTotal"); // Fall 1: Weder Import noch Export -> nichts zu berechnen if ($impTotal == 0.0 && $expTotal == 0.0) { - IPS_LogMessage("KostenModul", "Beide Werte sind 0 -> continue()"); continue; } @@ -355,28 +336,23 @@ foreach ($meters as $name => $mm) { // Kein Import, aber Export → PV deckt alles $ratio = 0.0; $pvCoversAll = true; - IPS_LogMessage("KostenModul", "Fall: impTotal=0, expTotal>0 -> PV deckt alles"); } elseif ($expTotal == 0.0 && $impTotal > 0.0) { // Kein Export, aber Import → Netz deckt alles $ratio = 0.0; $pvCoversAll = false; - IPS_LogMessage("KostenModul", "Fall: expTotal=0, impTotal>0 -> Netz deckt alles"); } elseif ($impTotal <= $expTotal) { // PV produziert genug oder mehr $ratio = $expTotal > 0 ? ($impTotal / $expTotal) : 0.0; $pvCoversAll = true; - IPS_LogMessage("KostenModul", "Fall: impTotal <= expTotal -> PV deckt genug"); } else { // Import ist größer als Export → Netz deckt den Rest $ratio = $impTotal > 0 ? ($expTotal / $impTotal) : 0.0; $pvCoversAll = false; - IPS_LogMessage("KostenModul", "Fall: impTotal > expTotal -> Netz deckt den Rest"); } - IPS_LogMessage("KostenModul", "Ergebnis ratio=$ratio | pvCoversAll=" . ($pvCoversAll ? "true" : "false")); // Werte pro Zähler verteilen @@ -398,6 +374,8 @@ foreach ($meters as $name => $mm) { } if ($pFeed !== null) { $this->powerCostCache[$userId][$name]['rev_feedin'] += ((1 - $ratio) * $exp * $pFeed) / 100.0; + $this->powerCostCache[$userId][$name]['rev_zev'] += (($ratio) * $exp * $pSolar) / 100.0; + } } else { // Teil Netzbezug @@ -412,7 +390,8 @@ foreach ($meters as $name => $mm) { $this->powerCostCache[$userId][$name]['cost_solar'] += ($ratio * $imp * $pSolar) / 100.0; } if ($pFeed !== null) { - $this->powerCostCache[$userId][$name]['rev_feedin'] += ($exp * $pFeed) / 100.0; + $this->powerCostCache[$userId][$name]['rev_zev'] += ($exp * $pSolar) / 100.0; + } } } @@ -446,7 +425,7 @@ foreach ($meters as $name => $mm) { $sum = 0.0; foreach ($this->powerCostCache[$userId] as $name => $a) { - $subtotal = $a['cost_grid'] + $a['cost_solar'] - $a['rev_feedin']; + $subtotal = $a['cost_grid'] + $a['cost_solar'] - ($a['rev_feedin']+$a['rev_zev']); $sum += $subtotal; $html .= " @@ -459,7 +438,7 @@ foreach ($meters as $name => $mm) { " . number_format($a['solarverkauf'], 3) . " kWh CHF " . number_format($a['cost_solar'], 2) . ".- CHF " . number_format($a['cost_grid'], 2) . ".- - CHF " . number_format($a['rev_feedin'], 2) . ".- + CHF " . number_format(($a['rev_feedin']+$a['rev_zev']), 2) . ".- CHF " . number_format($subtotal, 2) . ".- "; } @@ -649,13 +628,7 @@ private function getDeltaFromArchive(int $varId, int $tStart, int $tEnd): float $startValue = $this->GetValueAt($varId, $tStart, false); $endValue = $this->GetValueAt($varId, $tEnd, false); - // --- Logging --- - IPS_LogMessage("KostenModul", "getDeltaFromArchive(varId=$varId)"); - IPS_LogMessage("KostenModul", " Startzeit: " . date('Y-m-d H:i:s', $tStart) . " | Startwert: " . var_export($startValue, true)); - IPS_LogMessage("KostenModul", " Endzeit: " . date('Y-m-d H:i:s', $tEnd) . " | Endwert: " . var_export($endValue, true)); - if ($startValue === null || $endValue === null) { - IPS_LogMessage("KostenModul", " -> Einer der Werte ist NULL, Delta = 0.0"); return 0.0; } @@ -663,11 +636,9 @@ private function getDeltaFromArchive(int $varId, int $tStart, int $tEnd): float $diff = $endValue - $startValue; if ($diff < 0) { - IPS_LogMessage("KostenModul", " WARNUNG: Negatives Delta erkannt! Zähler wurde vermutlich zurückgesetzt. Delta wird auf 0 gesetzt."); $diff = 0.0; } - IPS_LogMessage("KostenModul", " Delta = $diff"); return (float)$diff; }