Fehler behoben, manager verteilt energie jetzt auch richtig, wenn einzelne verbraucher nicht 0 wollen

This commit is contained in:
2024-11-18 10:57:35 +01:00
parent 70f96dfe79
commit b87989e1b2
2 changed files with 21 additions and 1 deletions

View File

@@ -152,6 +152,26 @@ class Manager extends IPSModule
} }
IPS_LogMessage("Manager", print_r($samePriorityUsers, true)); IPS_LogMessage("Manager", print_r($samePriorityUsers, true));
// Verbraucher die nicht 0 Annhemen können, bekommen einfach den tiefsten wert
foreach ($samePriorityUsers as $entry) {
if (in_array(0, $entry['PowerSteps'])) {
$withZero[] = $entry;
} else {
$withoutZero[] = $entry;
}
}
// Methode für alle im withoutZero-Array aufrufen
foreach ($withoutZero as $entry) {
$instanceID = $entry['InstanceID'];
$minPowerStep = min($entry['PowerSteps']);
// Simulierte Methode (Debug-Ausgabe)
IPS_RequestAction($instanceID, 'SetCurrentPower', $minPowerStep);
// Hier kann der tatsächliche Funktionsaufruf eingebaut werden
// IPS_RequestAction($instanceID, 'SetCurrentPower', $minPowerStep);
}
$samePriorityUsers = $withZero;
// Array für die verteilte Energie pro User erstellen // Array für die verteilte Energie pro User erstellen
$userEnergyProv = array_fill_keys(array_column($samePriorityUsers, 'InstanceID'), 0); // Initialisierung für jeden Benutzer auf 0 setzen $userEnergyProv = array_fill_keys(array_column($samePriorityUsers, 'InstanceID'), 0); // Initialisierung für jeden Benutzer auf 0 setzen
IPS_LogMessage("Manager", print_r($userEnergyProv, true)); IPS_LogMessage("Manager", print_r($userEnergyProv, true));

View File

@@ -6,7 +6,7 @@
"compatibility": { "compatibility": {
"version": "7.1" "version": "7.1"
}, },
"version": "0.138", "version": "0.139",
"build": 0, "build": 0,
"date": 0 "date": 0
} }