no message
This commit is contained in:
+21
-12
@@ -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)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user