idle objekt angepasst

This commit is contained in:
2025-03-03 16:14:06 +01:00
parent 6324747942
commit f5f5140a42
2 changed files with 30 additions and 9 deletions

View File

@@ -110,15 +110,36 @@ class HauptManager extends IPSModule
IPS_LogMessage("Hauptmanager", print_r($Verbraucher_Liste_Korr));
// Wenn nicht alle Benutzer Idle = true sind, rufe SetAktuelle_Leistung mit Aktuelle_Leistung Werten auf, (alle Verbraucher behalten die aktuelle Leistung)
if (!$allIdle) {
foreach ($Verbraucher_Liste_Korr as $user) {
$sendarray = [
"peak" => $Is_Peak_Shaving,
"setpower" => $user["User"]["Aktuelle_Leistung"]
];
RequestAction($user["Sendback"], json_encode($sendarray));
IPS_LogMessage("HauptManager", "aufgerufen nicht alle idle");
if (true) {
// Schritt 1: Benutzer nach Writeback-Wert aufteilen
$writebackArrays = [];
foreach ($Verbraucher_Liste_Korr[0] as $user) {
$writeback = $user['Writeback'];
if (!isset($writebackArrays[$writeback])) {
$writebackArrays[$writeback] = [];
}
$writebackArrays[$writeback][] = $user;
}
// Schritt 2: Foreach-Schleife pro Writeback-Array
foreach ($writebackArrays as $writeback => $users) {
$resultArray = [
'Is_Peak_Shaving' => true,
'User' => []
];
foreach ($users as $user) {
$resultArray['User'][] = [
'InstanceID' => $user['InstanceID'],
'Set_Leistung' => $user['Aktuelle_Leistung']
];
}
// Schritt 3: Array in String konvertieren
$resultString = json_encode($resultArray);
// Schritt 4: RequestAction aufrufen
RequestAction($writeback, $resultString);
}
return;
}