no message

This commit is contained in:
dh
2025-09-23 16:43:56 +02:00
parent 1dfb4c99ac
commit 022d295d30
+19 -38
View File
@@ -270,17 +270,24 @@ class Manager extends IPSModule
} }
*/ */
/* Neuer Block */ $userEnergyProv = [];
foreach ($samePriorityUsers as $entry) { foreach ($samePriorityUsers as $entry) {
$withZero[] = $entry; $instanceID = $entry["InstanceID"];
$minPowerStep = min($entry["PowerSteps"]);
$maxPowerStep = max($entry["PowerSteps"]);
if (min($entry["PowerSteps"]) > 0) { if ($minPowerStep > 0) {
// Nur positive Werte -> minimaler Wert einsetzen
$withoutZeroHigh[] = $entry; $userEnergyProv[$instanceID] = $minPowerStep;
} $remainingPower -= $minPowerStep;
if (max($entry["PowerSteps"]) < 0) { } elseif ($maxPowerStep < 0) {
// Nur negative Werte -> maximaler Wert einsetzen
$withoutZeroLow[] = $entry; $userEnergyProv[$instanceID] = $maxPowerStep;
$remainingPower += $maxPowerStep;
} else {
// Darf 0 haben
$userEnergyProv[$instanceID] = 0;
} }
} }
@@ -290,7 +297,7 @@ class Manager extends IPSModule
$instanceID = $entry["InstanceID"]; $instanceID = $entry["InstanceID"];
$minPowerStep = min($entry["PowerSteps"]); $minPowerStep = min($entry["PowerSteps"]);
//$remainingPower -= $minPowerStep; $remainingPower -= $minPowerStep;
} }
} }
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert // Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
@@ -299,7 +306,7 @@ class Manager extends IPSModule
$instanceID = $entry["InstanceID"]; $instanceID = $entry["InstanceID"];
$minPowerStep = max($entry["PowerSteps"]); $minPowerStep = max($entry["PowerSteps"]);
//$remainingPower += $minPowerStep; $remainingPower += $minPowerStep;
} }
} }
@@ -310,33 +317,7 @@ class Manager extends IPSModule
// Nun die verteilen, die 0 erhalten können. // Nun die verteilen, die 0 erhalten können.
//$samePriorityUsers = $withZero; $samePriorityUsers = $withZero;
// Nun die verteilen, die 0 erhalten können.
$userEnergyProv = [];
// Initialisierung für jeden Benutzer abhängig von den Bedingungen
foreach ($samePriorityUsers as $entry) {
$instanceID = $entry["InstanceID"];
if (in_array($entry, $withZero, true)) {
// User darf 0 annehmen
$userEnergyProv[$instanceID] = 0;
} else {
// User darf nicht 0 annehmen -> min() oder max()
$minPowerStep = min($entry["PowerSteps"]);
$maxPowerStep = max($entry["PowerSteps"]);
if ($minPowerStep > 0) {
$userEnergyProv[$instanceID] = $minPowerStep;
} elseif ($maxPowerStep < 0) {
$userEnergyProv[$instanceID] = $maxPowerStep;
} else {
// Falls weder klar >0 noch klar <0 -> als Fallback 0
$userEnergyProv[$instanceID] = 0;
}
}
}
IPS_LogMessage("Manag", $remainingPower); IPS_LogMessage("Manag", $remainingPower);