From 28bea9f9fe3f971def13dd30897871550de67bd8 Mon Sep 17 00:00:00 2001 From: DanielHaefliger Date: Fri, 5 Dec 2025 08:41:24 +0100 Subject: [PATCH] no message --- Abrechnung/module.php | 140 +++++++++++++++++++++++++----------------- 1 file changed, 82 insertions(+), 58 deletions(-) diff --git a/Abrechnung/module.php b/Abrechnung/module.php index faadbd1..c3a0883 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -195,70 +195,94 @@ private function CalculateAllPowerCosts($powerMeters, $tariffs, $from, $to) // 2a. Deltas je Zähler des Users IPS_LogMessage("ABR", "---- DELTA-Berechnung für Intervall " . date("H:i", $ts) . " - " . date("H:i", $slotEnd) . " ----"); - foreach ($meters as $name => $mm) { +// 2a. Deltas je Zähler des Users +IPS_LogMessage("ABR", "---- BEGIN USER-METER DELTA BLOCK ----"); +IPS_LogMessage("ABR", "Intervall: " . date("d.m.Y H:i", $ts) . " - " . date("d.m.Y H:i", $slotEnd)); - IPS_LogMessage("ABR", " Prüfe Zähler: $name"); - IPS_LogMessage("ABR", " ImportVar=" . ($mm['importVar'] ?? 'NULL')); - IPS_LogMessage("ABR", " ExportVar=" . ($mm['exportVar'] ?? 'NULL')); +foreach ($meters as $name => $mm) { - $impDelta = 0.0; - $expDelta = 0.0; + IPS_LogMessage("ABR", "Meter: $name"); + IPS_LogMessage("ABR", " RAW mm JSON: " . json_encode($mm)); - // --- IMPORT --- - if (!empty($mm['importVar'])) { + $impDelta = 0.0; + $expDelta = 0.0; - $varId = (int)$mm['importVar']; - - if (!IPS_VariableExists($varId)) { - IPS_LogMessage("ABR", " ⚠ ImportVar $varId existiert NICHT!"); - } else { - - IPS_LogMessage("ABR", " → ImportDelta: getDeltaFromArchive($varId, $ts, $slotEnd)"); - - $impDelta = $this->getDeltaFromArchive($varId, $ts, $slotEnd); - - IPS_LogMessage("ABR", " Ergebnis ImportDelta=$impDelta"); - } - } - - // --- EXPORT --- - if (!empty($mm['exportVar'])) { - - $varId = (int)$mm['exportVar']; - - if (!IPS_VariableExists($varId)) { - IPS_LogMessage("ABR", " ⚠ ExportVar $varId existiert NICHT!"); - } else { - - IPS_LogMessage("ABR", " → ExportDelta: getDeltaFromArchive($varId, $ts, $slotEnd)"); - - $expDelta = $this->getDeltaFromArchive($varId, $ts, $slotEnd); - - IPS_LogMessage("ABR", " Ergebnis ExportDelta=$expDelta"); - } - } - - // --- Ergebnis für diesen Zähler --- - IPS_LogMessage("ABR", " → Zähler $name: impDelta=$impDelta | expDelta=$expDelta"); - - if ($impDelta > 0.0 || $expDelta > 0.0) { - - IPS_LogMessage("ABR", " ✔ Delta > 0 → wird für Intervall übernommen"); - - $slot[$name] = [ - 'imp' => $impDelta, - 'exp' => $expDelta - ]; - - $impTotal += $impDelta; - $expTotal += $expDelta; - - } else { - IPS_LogMessage("ABR", " ✘ Delta = 0 → wird ignoriert"); - } + // -------------------- + // IMPORT + // -------------------- + if (isset($mm['importVar'])) { + IPS_LogMessage("ABR", " importVar found: " . $mm['importVar']); + } else { + IPS_LogMessage("ABR", " ⚠ importVar NOT FOUND IN ARRAY!"); } - IPS_LogMessage("ABR", "---- Ende DELTA-Berechnung: impTotal=$impTotal | expTotal=$expTotal ----"); + if (!empty($mm['importVar'])) { + + $varId = (int)$mm['importVar']; + IPS_LogMessage("ABR", " Checking IMPORT variable ID = $varId"); + + if (IPS_VariableExists($varId)) { + IPS_LogMessage("ABR", " → IMPORT variable EXISTS"); + + $impDelta = $this->getDeltaFromArchive($varId, $ts, $slotEnd); + + IPS_LogMessage("ABR", " → IMPORT DELTA = $impDelta"); + } else { + IPS_LogMessage("ABR", " ⚠ IMPORT variable DOES NOT EXIST in IPS!"); + } + } else { + IPS_LogMessage("ABR", " ⚠ importVar IS EMPTY OR NULL"); + } + + // -------------------- + // EXPORT + // -------------------- + if (isset($mm['exportVar'])) { + IPS_LogMessage("ABR", " exportVar found: " . $mm['exportVar']); + } else { + IPS_LogMessage("ABR", " ⚠ exportVar NOT FOUND IN ARRAY!"); + } + + if (!empty($mm['exportVar'])) { + + $varId = (int)$mm['exportVar']; + IPS_LogMessage("ABR", " Checking EXPORT variable ID = $varId"); + + if (IPS_VariableExists($varId)) { + IPS_LogMessage("ABR", " → EXPORT variable EXISTS"); + + $expDelta = $this->getDeltaFromArchive($varId, $ts, $slotEnd); + + IPS_LogMessage("ABR", " → EXPORT DELTA = $expDelta"); + } else { + IPS_LogMessage("ABR", " ⚠ EXPORT variable DOES NOT EXIST in IPS!"); + } + } else { + IPS_LogMessage("ABR", " ⚠ exportVar IS EMPTY OR NULL"); + } + + // -------------------- + // DELTAS WURDEN GEFUNDEN? + // -------------------- + if ($impDelta > 0.0 || $expDelta > 0.0) { + + IPS_LogMessage("ABR", " ✔ VALID DELTAS → imp=$impDelta exp=$expDelta"); + + $slot[$name] = ['imp' => $impDelta, 'exp' => $expDelta]; + + $impTotal += $impDelta; + $expTotal += $expDelta; + + } else { + + IPS_LogMessage("ABR", " ⚠ NO DELTA FOUND FOR THIS METER (imp=0 exp=0)"); + } + + IPS_LogMessage("ABR", "-------------------------------------------"); +} + +IPS_LogMessage("ABR", "---- END USER-METER DELTA BLOCK ----"); +IPS_LogMessage("ABR", "Intervall SUMME: impTotal=$impTotal | expTotal=$expTotal"); if ($impTotal == 0.0 && $expTotal == 0.0) {