no message

This commit is contained in:
2025-08-06 11:36:53 +02:00
parent e40655a117
commit 62dff3dda0
2 changed files with 91 additions and 16 deletions

View File

@@ -110,12 +110,12 @@ class HauptManager extends IPSModule
}
// Addiere die aktuell bereits verwendete Leistung auf, um sie bei der verteilung zu berücksichtigen
if(in_array(0, $user["PowerSteps"], true)){
//if(in_array(0, $user["PowerSteps"], true)){
// Addiere die aktuell bereits verwendete Leistung auf, um sie bei der verteilung zu berücksichtigen
$totalAktuelle_Leistung += ($user["Aktuelle_Leistung"]- $user["Leistung_Delta"]);
}
//}
}
// Berücksichtigung der bereits verteilten Leistungen (nachher kann dafür wieder bei 0 begonnen werden zu verteilen)
@@ -206,8 +206,10 @@ class HauptManager extends IPSModule
if (empty($samePriorityUsers)) {
continue;
}
$withZero = [];
$withoutZero = [];
$withoutZeroHigh = [];
$withoutZeroLow = [];
/* Alter Verteilalgor. zu testzwecken auskommentiert, wird dann gelöscht wenns funktioniert.
foreach ($samePriorityUsers as $entry) {
if (min($entry["PowerSteps"]) <= 0) {
@@ -216,12 +218,54 @@ class HauptManager extends IPSModule
$withoutZero[] = $entry;
}
}
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZero)) {
foreach ($withoutZero as $entry) {
$instanceID = $entry["InstanceID"];
$minPowerStep = min($entry["PowerSteps"]);
IPS_RequestAction($instanceID,"SetAktuelle_Leistung",$minPowerStep);
//$remainingPower -= $entry["Aktuelle_Leistung"];
}
}
*/
/* Neuer Block */
foreach ($samePriorityUsers as $entry) {
$withZero[] = $entry;
$withZero[] = $entry;
if (min($entry["PowerSteps"]) > 0) {
$withoutZeroHigh[] = $entry;
}
if (max($entry["PowerSteps"]) < 0) {
$withoutZeroLow[] = $entry;
}
}
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZeroHigh)) {
foreach ($withoutZeroHigh as $entry) {
$instanceID = $entry["InstanceID"];
$minPowerStep = min($entry["PowerSteps"]);
$remainingPower -= $minPowerStep;
}
}
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZeroLow)) {
foreach ($withoutZeroLow as $entry) {
$instanceID = $entry["InstanceID"];
$minPowerStep = max($entry["PowerSteps"]);
$remainingPower += $minPowerStep;
}
}
/* Neuer Block Ende */
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert

View File

@@ -169,12 +169,12 @@ class Manager extends IPSModule
IPS_LogMessage("Manager", "nciht idle");
}
if(in_array(0, $powerSteps, true)){
//if(in_array(0, $powerSteps, true)){
// Addiere die aktuell bereits verwendete Leistung auf, um sie bei der verteilung zu berücksichtigen
$totalAktuelle_Leistung += ($Aktuelle_Leistung-$delta);
}
// }
}
// Berücksichtigung der bereits verteilten Leistungen (nachher kann dafür wieder bei 0 begonnen werden zu verteilen)
@@ -238,7 +238,8 @@ class Manager extends IPSModule
continue;
}
$withZero = [];
$withoutZero = [];
$withoutZeroHigh = [];
$withoutZeroLow = [];
// Verbraucher die nicht 0 Annhemen können, bekommen einfach den tiefsten wert
@@ -252,15 +253,6 @@ class Manager extends IPSModule
$withoutZero[] = $entry;
}
}
*/
/* Neuer Block */
foreach ($samePriorityUsers as $entry) {
$withZero[] = $entry;
}
/* Neuer Block Ende */
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZero)) {
@@ -272,6 +264,45 @@ class Manager extends IPSModule
//$remainingPower -= $entry["Aktuelle_Leistung"];
}
}
*/
/* Neuer Block */
foreach ($samePriorityUsers as $entry) {
$withZero[] = $entry;
if (min($entry["PowerSteps"]) > 0) {
$withoutZeroHigh[] = $entry;
}
if (max($entry["PowerSteps"]) < 0) {
$withoutZeroLow[] = $entry;
}
}
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZeroHigh)) {
foreach ($withoutZeroHigh as $entry) {
$instanceID = $entry["InstanceID"];
$minPowerStep = min($entry["PowerSteps"]);
$remainingPower -= $minPowerStep;
}
}
// Verbraucher die nicht 0 annhemen können erhalten nun den minimalwert
if (!empty($withoutZeroLow)) {
foreach ($withoutZeroLow as $entry) {
$instanceID = $entry["InstanceID"];
$minPowerStep = max($entry["PowerSteps"]);
$remainingPower += $minPowerStep;
}
}
/* Neuer Block Ende */
// Nun die verteilen, die 0 erhalten können.