no message
This commit is contained in:
@@ -14,6 +14,7 @@ class HauptManager extends IPSModule
|
||||
$this->RegisterPropertyInteger("Interval", 3); // Recheninterval
|
||||
|
||||
$this->RegisterVariableInteger("Gesamtnetzbezug", "Gesamtnetzbezug", "", 0);
|
||||
$this->RegisterVariableBoolean("Is_Peak_Shaving", false);
|
||||
|
||||
// Timer registrieren
|
||||
$this->RegisterTimer("Timer_DistributeEnergy",$this->ReadPropertyInteger("Interval")*1000,"IPS_RequestAction(" .$this->InstanceID .', "DistributeEnergy", "");');
|
||||
@@ -77,15 +78,9 @@ class HauptManager extends IPSModule
|
||||
$Ueberschussleistung = $this->ReadPropertyInteger("Ueberschussleistung");
|
||||
$Is_Peak_Shaving = false;
|
||||
|
||||
IPS_LogMessage("MaHaunager", $Peakleistung);
|
||||
|
||||
IPS_LogMessage("MaHaunager", $Ueberschussleistung);
|
||||
|
||||
IPS_LogMessage("MaHaunager", $Netzbezug);
|
||||
|
||||
|
||||
// Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird.
|
||||
if ($Netzbezug < ($Peakleistung - $Ueberschussleistung) / 2) {
|
||||
if ($Netzbezug < ($Peakleistung + $Ueberschussleistung) / 2) {
|
||||
$remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug);
|
||||
$Is_Peak_Shaving = false;
|
||||
} else {
|
||||
@@ -127,7 +122,7 @@ class HauptManager extends IPSModule
|
||||
$remainingPower += $totalAktuelle_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 || ($Is_Peak_Shaving != $this->GetValue("Is_Peak_Shaving"))) {
|
||||
// Schritt 1: Benutzer nach Writeback-Wert aufteilen
|
||||
$writebackArrays = [];
|
||||
foreach ($Verbraucher_Liste_Korr[0]["User"] as $user) {
|
||||
@@ -161,8 +156,11 @@ class HauptManager extends IPSModule
|
||||
// Schritt 4: RequestAction aufrufen
|
||||
RequestAction($writeback, $resultString);
|
||||
}
|
||||
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||
|
||||
return;
|
||||
}
|
||||
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||
|
||||
// Sortiere die Verbruacher nach Priorität entweder der PV_Prio oder der Peak Prio
|
||||
usort($Verbraucher_Liste_Korr[0]["User"], function ($a, $b) use (
|
||||
|
||||
@@ -17,6 +17,8 @@ class Manager extends IPSModule
|
||||
$this->RegisterPropertyInteger("DatenZuruck", 0); // Initialisierung mit 0
|
||||
$this->RegisterPropertyInteger("Interval", 2); // Recheninterval
|
||||
|
||||
$this->RegisterVariableBoolean("Is_Peak_Shaving", false);
|
||||
|
||||
// Timer registrieren
|
||||
|
||||
$this->RegisterTimer("Timer_DistributeEnergy",$this->ReadPropertyInteger("Interval")*1000,"IPS_RequestAction(" .$this->InstanceID .', "DistributeEnergy", "");');
|
||||
@@ -78,7 +80,7 @@ class Manager extends IPSModule
|
||||
$Ueberschussleistung = $this->ReadPropertyInteger("Ueberschussleistung");
|
||||
|
||||
// Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird.
|
||||
if ($Netzbezug < ($Peakleistung - $Ueberschussleistung) / 2) {
|
||||
if ($Netzbezug < ($Peakleistung + $Ueberschussleistung) / 2) {
|
||||
$remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug);
|
||||
$Is_Peak_Shaving = false;
|
||||
} else {
|
||||
@@ -163,16 +165,17 @@ class Manager extends IPSModule
|
||||
return;
|
||||
}
|
||||
|
||||
// Wenn nicht alle Benutzer Idle = true sind, rufe SetAktuelle_Leistung mit Aktuelle_Leistung Werten auf, (alle Verbraucher behalten die aktuelle Leistung)
|
||||
if (!$allIdle) {
|
||||
// Wenn nicht alle Benutzer Idle = true sind, oder sich der zustand von Is_Peak_shaving gerade verändert hat rufe SetAktuelle_Leistung mit Aktuelle_Leistung Werten auf, (alle Verbraucher behalten die aktuelle Leistung)
|
||||
if (!$allIdle || ($Is_Peak_Shaving != $this->GetValue("Is_Peak_Shaving"))) {
|
||||
foreach ($filteredVerbraucher as $user) {
|
||||
IPS_RequestAction($user["InstanceID"],"SetAktuelle_Leistung",$user["Aktuelle_Leistung"]);
|
||||
IPS_LogMessage("Manager", "aufgerufen nicht alle idle");
|
||||
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||
// Sortiere die Verbruacher nach Priorität entweder der PV_Prio oder der Peak Prio
|
||||
usort($filteredVerbraucher, function ($a, $b) use (
|
||||
$Is_Peak_Shaving
|
||||
|
||||
Reference in New Issue
Block a user