no message

This commit is contained in:
dh
2025-08-06 14:40:03 +02:00
parent 4596eb1a03
commit 9e3c17df0e
+21 -12
View File
@@ -348,28 +348,31 @@ class Manager extends IPSModule
} }
// Prüfen, dass jeder User mindestens seinen minimalwert an Leistung bekommt // Prüfen, dass jeder User mindestens seinen minimalwert an Leistung bekommt
foreach ($userEnergyProv as $userInstanceID => $leistung) { foreach ($userEnergyProv as $userInstanceID => $leistung) {
// 1. Innerhalb der Schleife: alle nicht-negativen Leistungen sammeln // 1. Innerhalb der Schleife: alle nicht-negativen Leistungen sammeln
$positiveValues = array_filter( $positiveValues = array_filter(
$userEnergyProv, $samePriorityUsers[$userInstanceID],
function ($l) { function ($l) {
return $l >= 0; return $l >= 0;
} }
); );
// 2. Falls keine Werte ≥ 0 vorhanden sind, auf 0 zurückfallen // 2. Falls keine Werte ≥ 0 vorhanden sind, auf 0 zurückfallen
$fallbackMinimum = empty($positiveValues) $fallbackMinimum = empty($positiveValues)
? 0 ? max($samePriorityUsers[$userInstanceID])
: min($positiveValues); : min($positiveValues);
// 3. minimalleistung = dieser Fallback // 3. minimalleistung = dieser Fallback
$minimalleistung = $fallbackMinimum; $minimalleistung = $fallbackMinimum;
// 4. den höheren Wert wählen und für IPS negativieren // 4. den höheren Wert wählen und für IPS negativieren
$schreibleistung = max($leistung, $minimalleistung); //$schreibleistung = max($leistung, $minimalleistung);
if (abs($leistung) > abs($minimalleistung)) {
$schreibleistung = $leistung;
} else {
$schreibleistung = $minimalleistung;
}
// 5. Aktion ausführen // 5. Aktion ausführen
if (IPS_InstanceExists($userInstanceID)) { if (IPS_InstanceExists($userInstanceID)) {
@@ -423,24 +426,30 @@ class Manager extends IPSModule
// Prüfen, dass jeder User mindestens seinen minimalwert an Leistung bekommt // Prüfen, dass jeder User mindestens seinen minimalwert an Leistung bekommt
foreach ($userEnergyProv as $userInstanceID => $leistung) { foreach ($userEnergyProv as $userInstanceID => $leistung) {
// 1. Innerhalb der Schleife: alle nicht-negativen Leistungen sammeln // 1. Innerhalb der Schleife: alle nicht-negativen Leistungen sammeln
$positiveValues = array_filter( $positiveValues = array_filter(
$userEnergyProv, $samePriorityUsers[$userInstanceID],
function ($l) { function ($l) {
return $l <= 0; return $l <= 0;
} }
); );
// 2. Falls keine Werte ≥ 0 vorhanden sind, auf 0 zurückfallen // 2. Falls keine Werte ≥ 0 vorhanden sind, auf 0 zurückfallen
$fallbackMinimum = empty($positiveValues) $fallbackMinimum = empty($positiveValues)
? 0 ? min($samePriorityUsers[$userInstanceID])
: min($positiveValues); : max($positiveValues);
// 3. minimalleistung = dieser Fallback // 3. minimalleistung = dieser Fallback
$minimalleistung = $fallbackMinimum*-1; $minimalleistung = $fallbackMinimum;
// 4. den höheren Wert wählen und für IPS negativieren // 4. den höheren Wert wählen und für IPS negativieren
$schreibleistung = max($leistung, $minimalleistung) * -1; //$schreibleistung = max($leistung, $minimalleistung);
if (abs($leistung) > abs($minimalleistung)) {
$schreibleistung = $leistung;
} else {
$schreibleistung = $minimalleistung;
}
// 5. Aktion ausführen // 5. Aktion ausführen
if (IPS_InstanceExists($userInstanceID)) { if (IPS_InstanceExists($userInstanceID)) {