This commit is contained in:
2025-03-04 14:38:42 +01:00
parent 2823c992d5
commit e4392477f6
2 changed files with 12 additions and 8 deletions

View File

@@ -77,7 +77,7 @@ class HauptManager extends IPSModule
$remainingPower = $Peakleistung - $Netzbezug;
$Is_Peak_Shaving = true;
}
$resultArray = [];
// Alle Energieverbraucher auslesen und dekodieren
if (empty($Verbraucher_Liste_Korr[0]["User"])) {
@@ -175,7 +175,7 @@ class HauptManager extends IPSModule
}
$resultArray = [];
IPS_LogMessage("Hauptmanager", "Eintrag gtupoed user: ".print_r($groupedUsers));
// Jetzt werden die energien pro gruppe verteilt (Immer alle pro prio in einer gruppe miteinander)
foreach ($groupedUsers as $priority => $users) {
@@ -183,6 +183,8 @@ class HauptManager extends IPSModule
$samePriorityUsers = isset($groupedUsers[$priority])
? $groupedUsers[$priority]
: [];
IPS_LogMessage("Hauptmanager", "Eintrag samepriouser: ".print_r($samePriorityUsers));
// Wenn keine Verbraucher mit gleicher Priorität vorhanden sind, überspringen
if (empty($samePriorityUsers)) {
@@ -198,6 +200,11 @@ class HauptManager extends IPSModule
$withoutZero[] = $entry;
}
}
IPS_LogMessage("Hauptmanager", "Eintrag withZero: ".print_r($withZero));
IPS_LogMessage("Hauptmanager", "Eintrag withoutZero: ".print_r($withoutZero));
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZero)) {
foreach ($withoutZero as $entry) {
@@ -232,8 +239,7 @@ class HauptManager extends IPSModule
];
}
}
IPS_LogMessage("Hauptmanager", "Eintrag allsteps: ". print_r($allSteps));
IPS_LogMessage("Hauptmanager", "Eintrag allsteps: ". print_r($resultArray));
// Sortiere die Schritte nach Größe
usort($allSteps, function ($a, $b) {
@@ -245,9 +251,7 @@ class HauptManager extends IPSModule
$user = $entry["user"];
$manager = $entry["Writeback"];
$powerstep = $entry["step"];
IPS_LogMessage("Hauptmanager", "Eintrag userenergyprov: ".$user ." ". $manager);
IPS_LogMessage("Hauptmanager", "Eintrag userenergyprov: ".print_r($userEnergyProv));
IPS_LogMessage("Hauptmanager", "Eintrag entry: ".print_r($entry));
$aktleistung = array_filter($userEnergyProv["user"], function($entry2) use ($user, $manager) {
return $entry2["user"] == $user && $entry2["Writeback"] == $manager;