text entfehrnt, managermodul
This commit is contained in:
@@ -64,12 +64,11 @@ class Manager extends IPSModule
|
||||
// Frage alle Energieverbraucher ab, was sie für Leistungen benötigen könnten
|
||||
foreach ($Verbraucher_Liste as $user) {
|
||||
if (IPS_InstanceExists($user["Verbraucher"])) {
|
||||
IPS_RequestAction($user["Verbraucher
|
||||
"],"GetCurrentData",$Is_Peak_Shaving);
|
||||
IPS_RequestAction($user["Verbraucher"],"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
|
||||
$totalAktuelle_Leistung = 0; // Variable zur Summierung der Aktuelle_Leistung Werte
|
||||
|
||||
@@ -112,20 +111,20 @@ class Manager extends IPSModule
|
||||
$remainingPower += $totalAktuelle_Leistung;
|
||||
|
||||
// Abbrechen wenn es keine gefilterten User gibt
|
||||
if (empty($filteredVerbrauches)) {
|
||||
if (empty($filteredVerbraucher)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Wenn nicht alle Benutzer Idle = true sind, rufe SetAktuelle_Leistung mit Aktuelle_Leistung Werten auf, (alle Verbraucher behalten die aktuelle Leistung)
|
||||
if (!$allIdle) {
|
||||
foreach ($filteredVerbrauchers as $user) {
|
||||
foreach ($filteredVerbraucher as $user) {
|
||||
IPS_RequestAction($user["InstanceID"],"SetAktuelle_Leistung",$user["Aktuelle_Leistung"]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 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
|
||||
) {
|
||||
$primaryKey = $Is_Peak_Shaving ? "Sperre_Prio" : "PV_Prio";
|
||||
@@ -141,7 +140,7 @@ class Manager extends IPSModule
|
||||
|
||||
// Schleife durch alle Prioritäten
|
||||
$priorities = array_unique(
|
||||
array_column($filteredVerbrauchers, $priorityKey)
|
||||
array_column($filteredVerbraucher, $priorityKey)
|
||||
);
|
||||
$groupedUsers = [];
|
||||
|
||||
@@ -239,8 +238,7 @@ s,
|
||||
// Jedem user den höheren der beiden werte aus minimalwert oder vergebenem zuteilen
|
||||
$leistung = max($leistung, $minimalleitsung);
|
||||
|
||||
// Methode SetAktuelle_Leistung für jeden Verbraucher
|
||||
mit der entsprechenden Energie aufrufen
|
||||
// Methode SetAktuelle_Leistung für jeden Verbraucher mit der entsprechenden Energie aufrufen
|
||||
if (IPS_InstanceExists($userInstanceID)) {
|
||||
IPS_RequestAction($userInstanceID,"SetAktuelle_Leistung",$leistung);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"compatibility": {
|
||||
"version": "7.1"
|
||||
},
|
||||
"version": "0.157",
|
||||
"version": "0.158",
|
||||
"build": 0,
|
||||
"date": 0
|
||||
}
|
||||
Reference in New Issue
Block a user