From 7e9e912cdf9deb4eccb7fea01a34a40f8cfdb27d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=A4fliger?= Date: Tue, 4 Mar 2025 10:31:53 +0100 Subject: [PATCH] =?UTF-8?q?auf=20instanz=20gepr=C3=BCft=20dies=20nicht=20g?= =?UTF-8?q?ibt...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HauptManager/module.php | 22 ++++++++++++---------- library.json | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/HauptManager/module.php b/HauptManager/module.php index 6ce4970..17c484e 100644 --- a/HauptManager/module.php +++ b/HauptManager/module.php @@ -214,14 +214,19 @@ class HauptManager extends IPSModule $samePriorityUsers = $withZero; // Array für die verteilte Energie pro User erstellen $userEnergyProv = []; - $userEnergyProv = array_fill_keys(array_column($samePriorityUsers, "InstanceID"), 0); // Initialisierung für jeden Benutzer auf 0 setzen - + foreach ($samePriorityUsers as $user) { + $userEnergyProv["User"] = [ + 'InstanceID' => $user['InstanceID'], + 'Writeback' => $user['Writeback'] + ]; + } // Alle Schritte der Benutzer in einem Array sammeln $allSteps = []; foreach ($samePriorityUsers as $user) { foreach ($user["PowerSteps"] as $step) { $allSteps[] = [ "user" => $user["InstanceID"], + "writeback" => $user["Writeback"], "step" => $step, ]; } @@ -247,13 +252,11 @@ class HauptManager extends IPSModule } // Prüfen, dass jeder User mindestens seinen minimalwert an Leistung bekommt - foreach ($userEnergyProv as $userInstanceID => $leistung) { - $minimalleitsung = min( + foreach ($userEnergyProv as $user) { + $minimalleistung = min( array_column( - array_filter($allSteps, function ($entry) use ( - $userInstanceID - ) { - return $entry["user"] == $userInstanceID; + array_filter($allSteps, function ($entry) use ($user) { + return $entry["user"] == $user['InstanceID'] && $entry["writeback"] == $user['Writeback']; }), "step" ) @@ -263,7 +266,6 @@ class HauptManager extends IPSModule $leistung = max($leistung, $minimalleitsung); // Methode SetAktuelle_Leistung für jeden Verbraucher mit der entsprechenden Energie aufrufen - if (IPS_InstanceExists($userInstanceID)) { $resultArray['User'][] = [ 'InstanceID' => $userInstanceID['InstanceID'], @@ -272,7 +274,7 @@ class HauptManager extends IPSModule ]; IPS_LogMessage("Hauptmanager", "aufgerufen setleistung normal"); - } + } } diff --git a/library.json b/library.json index 3b9938f..fd14940 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "1.161", + "version": "1.162", "build": 0, "date": 0 } \ No newline at end of file