auf instanz geprüft dies nicht gibt...

This commit is contained in:
2025-03-04 10:31:53 +01:00
parent 21eab7d4fc
commit 7e9e912cdf
2 changed files with 13 additions and 11 deletions

View File

@@ -214,14 +214,19 @@ class HauptManager extends IPSModule
$samePriorityUsers = $withZero;
// Array für die verteilte Energie pro User erstellen
$userEnergyProv = [];
$userEnergyProv = array_fill_keys(array_column($samePriorityUsers, "InstanceID"), 0); // Initialisierung für jeden Benutzer auf 0 setzen
foreach ($samePriorityUsers as $user) {
$userEnergyProv["User"] = [
'InstanceID' => $user['InstanceID'],
'Writeback' => $user['Writeback']
];
}
// Alle Schritte der Benutzer in einem Array sammeln
$allSteps = [];
foreach ($samePriorityUsers as $user) {
foreach ($user["PowerSteps"] as $step) {
$allSteps[] = [
"user" => $user["InstanceID"],
"writeback" => $user["Writeback"],
"step" => $step,
];
}
@@ -247,13 +252,11 @@ class HauptManager extends IPSModule
}
// Prüfen, dass jeder User mindestens seinen minimalwert an Leistung bekommt
foreach ($userEnergyProv as $userInstanceID => $leistung) {
$minimalleitsung = min(
foreach ($userEnergyProv as $user) {
$minimalleistung = min(
array_column(
array_filter($allSteps, function ($entry) use (
$userInstanceID
) {
return $entry["user"] == $userInstanceID;
array_filter($allSteps, function ($entry) use ($user) {
return $entry["user"] == $user['InstanceID'] && $entry["writeback"] == $user['Writeback'];
}),
"step"
)
@@ -263,7 +266,6 @@ class HauptManager extends IPSModule
$leistung = max($leistung, $minimalleitsung);
// Methode SetAktuelle_Leistung für jeden Verbraucher mit der entsprechenden Energie aufrufen
if (IPS_InstanceExists($userInstanceID)) {
$resultArray['User'][] = [
'InstanceID' => $userInstanceID['InstanceID'],
@@ -272,7 +274,7 @@ class HauptManager extends IPSModule
];
IPS_LogMessage("Hauptmanager", "aufgerufen setleistung normal");
}
}
}