diff --git a/Abrechnung/module.php b/Abrechnung/module.php index 9b996cb..d253413 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -286,25 +286,60 @@ class Abrechnung extends IPSModule $expTotal = 0.0; $slot = []; - // Deltas je Zähler des Users - foreach ($meters as $name => $mm) { +// Deltas je Zähler des Users +foreach ($meters as $name => $mm) { - $impDelta = 0.0; - $expDelta = 0.0; + IPS_LogMessage("KostenModul", "---- Zähler '$name' wird verarbeitet ----"); - if (!empty($mm['importVar']) && IPS_VariableExists((int)$mm['importVar'])) { - $impDelta = $this->getDeltaFromArchive((int)$mm['importVar'], $ts, $slotEnd); - } - if (!empty($mm['exportVar']) && IPS_VariableExists((int)$mm['exportVar'])) { - $expDelta = $this->getDeltaFromArchive((int)$mm['exportVar'], $ts, $slotEnd); - } + $impDelta = 0.0; + $expDelta = 0.0; - if ($impDelta > 0.0 || $expDelta > 0.0) { - $slot[$name] = ['imp' => $impDelta, 'exp' => $expDelta]; - $impTotal += $impDelta; - $expTotal += $expDelta; - } - } + // IMPORT + 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, + 'exp' => $expDelta + ]; + + $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");