leistungsdelta eingefügt.

This commit is contained in:
2025-03-19 14:08:52 +01:00
parent 213976e6cd
commit 6a2ae9913b
8 changed files with 17 additions and 10 deletions

View File

@@ -29,8 +29,7 @@ class Batterie extends IPSModule
$this->RegisterVariableInteger("PV_Prio", "PV_Prio");
$this->RegisterVariableInteger("Power", "Power");
$this->RegisterVariableBoolean("Is_Peak_Shaving", "Is_Peak_Shaving");
//$this->RegisterVariableBoolean("Hysterese", "Hysterese","",0);
//$this->RegisterVariableBoolean("Hysterese_Netz", "Hysterese_Netz","",0);
$this->RegisterVariableInteger("Leistung_Delta", "Leistung_Delta", "", 0);
$this->RegisterVariableBoolean("Hysterese", "Hysterese","",false);

View File

@@ -38,6 +38,7 @@ class Boiler_2_Stufig_Mit_Fueler extends IPSModule
$this->RegisterVariableString("PowerSteps", "PowerSteps");
$this->RegisterVariableInteger("Power", "Power", '', 0);
$this->RegisterVariableBoolean("Is_Peak_Shaving", "Is_Peak_Shaving", "", true);
$this->RegisterVariableInteger("Leistung_Delta", "Leistung_Delta", "", 0);
// Hilfsvariabeln für Idle zustand
$this->RegisterPropertyInteger("IdleCounterMax", 2);

View File

@@ -111,7 +111,7 @@ class HauptManager extends IPSModule
if(in_array(0, $user["PowerSteps"], true)){
// Addiere die aktuell bereits verwendete Leistung auf, um sie bei der verteilung zu berücksichtigen
$totalAktuelle_Leistung += $user["Aktuelle_Leistung"];
$totalAktuelle_Leistung += ($user["Aktuelle_Leistung"]- $user["Leistung_Delta"]);
}
}
@@ -276,7 +276,7 @@ class HauptManager extends IPSModule
}
// Überprüfe, ob noch genügend verbleibende Energie für den nächsten Schritt vorhanden ist
if ($remainingPower >= $powerstep - $aktleistung['Set_Leistung']) {
if ($remainingPower >= $powerstep - $aktleistung['Set_Leistung']+$user["Leistung_Delta"]) {
// Aktualisiere die verbleibende Energie und die bereitgestellte Energie für den Benutzer
$remainingPower -= $powerstep - $aktleistung['Set_Leistung'];
@@ -361,7 +361,7 @@ class HauptManager extends IPSModule
}
// Überprüfe, ob noch genügend verbleibende Energie für den nächsten Schritt vorhanden ist
if ($remainingPower >= $powerstep - $aktleistung['Set_Leistung']) {
if ($remainingPower >= $powerstep - $aktleistung['Set_Leistung']-$user["Leistung_Delta"]) {
// Aktualisiere die verbleibende Energie und die bereitgestellte Energie für den Benutzer
$remainingPower -= $powerstep - $aktleistung['Set_Leistung'];

View File

@@ -39,6 +39,7 @@ class Ladestation_Universal extends IPSModule
$this->RegisterVariableString("PowerSteps", "PowerSteps");
$this->RegisterVariableInteger("Power", "Power");
$this->RegisterVariableBoolean("Is_Peak_Shaving", "Is_Peak_Shaving");
$this->RegisterVariableInteger("Leistung_Delta", "Leistung_Delta", "", 0);
// Hilfsvariabeln für Idle zustand
$this->RegisterPropertyInteger("IdleCounterMax", 2);
@@ -335,7 +336,7 @@ class Ladestation_Universal extends IPSModule
}
// PowerSteps in der RegisterVariable speichern
SetValue($this->GetIDForIdent("PowerSteps"), json_encode($powerSteps));
$this->SetValue("Leistung_Delta", $this->GetValue("Ladeleistung_Effektiv")-$this->GetValue("Ladeleistung"));
// Rückgabe der Powersteps
return $powerSteps;
}

View File

@@ -120,6 +120,7 @@ class Manager extends IPSModule
$idle = GetValue(IPS_GetObjectIDByIdent("Idle", $user["Verbraucher"]));
$powerStepsJson = GetValue(IPS_GetObjectIDByIdent("PowerSteps", $user["Verbraucher"]));
$powerSteps = json_decode($powerStepsJson, true);
$delta = GetValue(IPS_GetObjectIDByIdent("Leistung_Delta", $user["Verbraucher"]));
// Verbraucher-Daten zum gefilterten Array hinzufügen
$filteredVerbraucher[] = [
@@ -131,6 +132,7 @@ class Manager extends IPSModule
"Sperre_Prio" => $Sperre_Prio,
"Idle" => $idle,
"PowerSteps" => $powerSteps,
"Leistung_Delta" => $delta
];
// Überprüfen, ob alle Benutzer Idle = true sind, wenn einer nicht ist, wird später verworfen...
@@ -142,7 +144,7 @@ class Manager extends IPSModule
if(in_array(0, $powerSteps, true)){
// Addiere die aktuell bereits verwendete Leistung auf, um sie bei der verteilung zu berücksichtigen
$totalAktuelle_Leistung += $Aktuelle_Leistung;
$totalAktuelle_Leistung += ($Aktuelle_Leistung-$delta);
}
@@ -261,7 +263,7 @@ class Manager extends IPSModule
$powerstep = $entry["step"];
// Überprüfe, ob noch genügend verbleibende Energie für den nächsten Schritt vorhanden ist
if ($remainingPower >= $powerstep - $userEnergyProv[$user]) { // oder bedingung testen
if ($remainingPower >= $powerstep - $userEnergyProv[$user]-$user["Leistung_Delta"]) { // oder bedingung testen
// Aktualisiere die verbleibende Energie und die bereitgestellte Energie für den Benutzer
$remainingPower -= $powerstep - $userEnergyProv[$user];
$userEnergyProv[$user] = $powerstep;
@@ -327,7 +329,7 @@ class Manager extends IPSModule
$powerstep = $entry["step"];
// Überprüfe, ob noch genügend verbleibende Energie für den nächsten Schritt vorhanden ist
if ($remainingPower >= $powerstep - $userEnergyProv[$user]) { // oder bedingung testen
if ($remainingPower >= $powerstep - $userEnergyProv[$user]+$user["Leistung_Delta"]) { // oder bedingung testen
// Aktualisiere die verbleibende Energie und die bereitgestellte Energie für den Benutzer
$remainingPower -= $powerstep - $userEnergyProv[$user];
$userEnergyProv[$user] = $powerstep;
@@ -391,6 +393,7 @@ class Manager extends IPSModule
$Sperre_Prio = GetValue(IPS_GetObjectIDByIdent("Sperre_Prio", $user["Verbraucher"]));
$idle = GetValue(IPS_GetObjectIDByIdent("Idle", $user["Verbraucher"]));
$powerStepsJson = GetValue(IPS_GetObjectIDByIdent("PowerSteps", $user["Verbraucher"]));
$delta = GetValue(IPS_GetObjectIDByIdent("Leistung_Delta", $user["Verbraucher"]));
$powerSteps = json_decode($powerStepsJson, true);
// Verbraucher-Daten zum gefilterten Array hinzufügen
@@ -403,6 +406,7 @@ class Manager extends IPSModule
"Sperre_Prio" => $Sperre_Prio,
"Idle" => $idle,
"PowerSteps" => $powerSteps,
"Leistung_Delta" => $delta,
"ParentManager" => $this->ReadPropertyInteger("ManagerID")
];

View File

@@ -32,6 +32,7 @@ class Verbraucher_1_Stufig extends IPSModule
$this->RegisterVariableString("PowerSteps", "PowerSteps");
$this->RegisterVariableInteger("Power", "Power");
$this->RegisterVariableBoolean("Is_Peak_Shaving", "Is_Peak_Shaving");
$this->RegisterVariableInteger("Leistung_Delta", "Leistung_Delta", "", 0);
// Hilfsvariabeln für Idle zustand
$this->RegisterPropertyInteger("IdleCounterMax", 2);

View File

@@ -37,6 +37,7 @@ class WP_Steuerung extends IPSModule
$this->RegisterVariableString("PowerSteps", "PowerSteps");
$this->RegisterVariableInteger("Power", "Power");
$this->RegisterVariableBoolean("Is_Peak_Shaving", "Is_Peak_Shaving");
$this->RegisterVariableInteger("Leistung_Delta", "Leistung_Delta", "", 0);
// Hilfsvariabeln für Idle zustand
$this->RegisterPropertyInteger("IdleCounterMax", 2);

View File

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