text entfehrnt, managermodul

This commit is contained in:
2024-11-28 14:46:54 +01:00
parent 93dbb34042
commit 0ebe6cb403
2 changed files with 8 additions and 10 deletions

View File

@@ -64,12 +64,11 @@ class Manager extends IPSModule
// Frage alle Energieverbraucher ab, was sie für Leistungen benötigen könnten // Frage alle Energieverbraucher ab, was sie für Leistungen benötigen könnten
foreach ($Verbraucher_Liste as $user) { foreach ($Verbraucher_Liste as $user) {
if (IPS_InstanceExists($user["Verbraucher"])) { if (IPS_InstanceExists($user["Verbraucher"])) {
IPS_RequestAction($user["Verbraucher IPS_RequestAction($user["Verbraucher"],"GetCurrentData", $Is_Peak_Shaving);
"],"GetCurrentData",$Is_Peak_Shaving);
} }
} }
$filteredVerbrauches = []; // Array das später mit allen Verbrauchsdaten der Energieverbraucher gefüllt wird $filteredVerbraucher = []; // Array das später mit allen Verbrauchsdaten der Energieverbraucher gefüllt wird
$allIdle = true; // Variable zur Überprüfung, ob alle Benutzer Idle = true sind $allIdle = true; // Variable zur Überprüfung, ob alle Benutzer Idle = true sind
$totalAktuelle_Leistung = 0; // Variable zur Summierung der Aktuelle_Leistung Werte $totalAktuelle_Leistung = 0; // Variable zur Summierung der Aktuelle_Leistung Werte
@@ -112,20 +111,20 @@ class Manager extends IPSModule
$remainingPower += $totalAktuelle_Leistung; $remainingPower += $totalAktuelle_Leistung;
// Abbrechen wenn es keine gefilterten User gibt // Abbrechen wenn es keine gefilterten User gibt
if (empty($filteredVerbrauches)) { if (empty($filteredVerbraucher)) {
return; return;
} }
// Wenn nicht alle Benutzer Idle = true sind, rufe SetAktuelle_Leistung mit Aktuelle_Leistung Werten auf, (alle Verbraucher behalten die aktuelle Leistung) // Wenn nicht alle Benutzer Idle = true sind, rufe SetAktuelle_Leistung mit Aktuelle_Leistung Werten auf, (alle Verbraucher behalten die aktuelle Leistung)
if (!$allIdle) { if (!$allIdle) {
foreach ($filteredVerbrauchers as $user) { foreach ($filteredVerbraucher as $user) {
IPS_RequestAction($user["InstanceID"],"SetAktuelle_Leistung",$user["Aktuelle_Leistung"]); IPS_RequestAction($user["InstanceID"],"SetAktuelle_Leistung",$user["Aktuelle_Leistung"]);
} }
return; return;
} }
// Sortiere die Verbruacher nach Priorität entweder der PV_Prio oder der Peak Prio // Sortiere die Verbruacher nach Priorität entweder der PV_Prio oder der Peak Prio
usort($filteredVerbrauches, function ($a, $b) use ( usort($filteredVerbraucher, function ($a, $b) use (
$Is_Peak_Shaving $Is_Peak_Shaving
) { ) {
$primaryKey = $Is_Peak_Shaving ? "Sperre_Prio" : "PV_Prio"; $primaryKey = $Is_Peak_Shaving ? "Sperre_Prio" : "PV_Prio";
@@ -141,7 +140,7 @@ class Manager extends IPSModule
// Schleife durch alle Prioritäten // Schleife durch alle Prioritäten
$priorities = array_unique( $priorities = array_unique(
array_column($filteredVerbrauchers, $priorityKey) array_column($filteredVerbraucher, $priorityKey)
); );
$groupedUsers = []; $groupedUsers = [];
@@ -239,8 +238,7 @@ s,
// Jedem user den höheren der beiden werte aus minimalwert oder vergebenem zuteilen // Jedem user den höheren der beiden werte aus minimalwert oder vergebenem zuteilen
$leistung = max($leistung, $minimalleitsung); $leistung = max($leistung, $minimalleitsung);
// Methode SetAktuelle_Leistung für jeden Verbraucher // Methode SetAktuelle_Leistung für jeden Verbraucher mit der entsprechenden Energie aufrufen
mit der entsprechenden Energie aufrufen
if (IPS_InstanceExists($userInstanceID)) { if (IPS_InstanceExists($userInstanceID)) {
IPS_RequestAction($userInstanceID,"SetAktuelle_Leistung",$leistung); IPS_RequestAction($userInstanceID,"SetAktuelle_Leistung",$leistung);
} }

View File

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