diff --git a/Manager/module.php b/Manager/module.php index 9ed3db2..2eabb37 100644 --- a/Manager/module.php +++ b/Manager/module.php @@ -97,18 +97,7 @@ class Manager extends IPSModule { // Systemvariablen abrufen $Netzbezug = GetValue($this->ReadPropertyInteger("Netzbezug")); - $Peakleistung = $this->ReadPropertyInteger("Peakleistung"); - $Ueberschussleistung = $this->ReadPropertyInteger("Ueberschussleistung"); - // Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird. - if ($Netzbezug < ($Peakleistung + $Ueberschussleistung) / 2) { - $remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug); - $Is_Peak_Shaving = false; - } else { - $remainingPower = $Peakleistung - $Netzbezug; - $Is_Peak_Shaving = true; - } - IPS_LogMessage("Manag anfang", $remainingPower); // Alle Energieverbraucher auslesen und dekodieren $Verbraucher_Liste = json_decode($this->ReadPropertyString("Verbraucher_Liste"), true); @@ -120,14 +109,6 @@ class Manager extends IPSModule return; } - // Frage alle Energieverbraucher ab, was sie für Leistungen benötigen könnten - foreach ($Verbraucher_Liste as $user) { - if (IPS_InstanceExists($user["Verbraucher"])) { - IPS_RequestAction($user["Verbraucher"],"GetCurrentData", $Is_Peak_Shaving); - IPS_LogMessage("Manager", "aufgerufen getcurrentdata"); - - } - } $filteredVerbraucher = []; // Array das später mit allen Verbrauchsdaten der Energieverbraucher gefüllt wird $allIdle = true; // Variable zur Überprüfung, ob alle Benutzer Idle = true sind @@ -180,9 +161,34 @@ class Manager extends IPSModule // } } - // Berücksichtigung der bereits verteilten Leistungen (nachher kann dafür wieder bei 0 begonnen werden zu verteilen) - $remainingPower += $totalAktuelle_Leistung; + + + + // Berücksichtigung der bereits verteilten Leistungen (nachher kann dafür wieder bei 0 begonnen werden zu verteilen) + $Netzbezug += $totalAktuelle_Leistung; + + $Peakleistung = $this->ReadPropertyInteger("Peakleistung"); + $Ueberschussleistung = $this->ReadPropertyInteger("Ueberschussleistung"); + + // Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird. + if ($Netzbezug < ($Peakleistung + $Ueberschussleistung) / 2) { + $remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug); + $Is_Peak_Shaving = false; + } else { + $remainingPower = $Peakleistung - $Netzbezug; + $Is_Peak_Shaving = true; + } + IPS_LogMessage("Manag anfang", $remainingPower); + + // Frage alle Energieverbraucher ab, was sie für Leistungen benötigen könnten + foreach ($Verbraucher_Liste as $user) { + if (IPS_InstanceExists($user["Verbraucher"])) { + IPS_RequestAction($user["Verbraucher"],"GetCurrentData", $Is_Peak_Shaving); + IPS_LogMessage("Manager", "aufgerufen getcurrentdata"); + + } + } // Abbrechen wenn es keine gefilterten User gibt if (empty($filteredVerbraucher)) {