no message
This commit is contained in:
@@ -14,6 +14,7 @@ class HauptManager extends IPSModule
|
|||||||
$this->RegisterPropertyInteger("Interval", 3); // Recheninterval
|
$this->RegisterPropertyInteger("Interval", 3); // Recheninterval
|
||||||
|
|
||||||
$this->RegisterVariableInteger("Gesamtnetzbezug", "Gesamtnetzbezug", "", 0);
|
$this->RegisterVariableInteger("Gesamtnetzbezug", "Gesamtnetzbezug", "", 0);
|
||||||
|
$this->RegisterVariableBoolean("Is_Peak_Shaving", false);
|
||||||
|
|
||||||
// Timer registrieren
|
// Timer registrieren
|
||||||
$this->RegisterTimer("Timer_DistributeEnergy",$this->ReadPropertyInteger("Interval")*1000,"IPS_RequestAction(" .$this->InstanceID .', "DistributeEnergy", "");');
|
$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");
|
$Ueberschussleistung = $this->ReadPropertyInteger("Ueberschussleistung");
|
||||||
$Is_Peak_Shaving = false;
|
$Is_Peak_Shaving = false;
|
||||||
|
|
||||||
IPS_LogMessage("MaHaunager", $Peakleistung);
|
|
||||||
|
|
||||||
IPS_LogMessage("MaHaunager", $Ueberschussleistung);
|
|
||||||
|
|
||||||
IPS_LogMessage("MaHaunager", $Netzbezug);
|
|
||||||
|
|
||||||
|
|
||||||
// Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird.
|
// Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird.
|
||||||
if ($Netzbezug < ($Peakleistung - $Ueberschussleistung) / 2) {
|
if ($Netzbezug < ($Peakleistung + $Ueberschussleistung) / 2) {
|
||||||
$remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug);
|
$remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug);
|
||||||
$Is_Peak_Shaving = false;
|
$Is_Peak_Shaving = false;
|
||||||
} else {
|
} else {
|
||||||
@@ -127,7 +122,7 @@ class HauptManager extends IPSModule
|
|||||||
$remainingPower += $totalAktuelle_Leistung;
|
$remainingPower += $totalAktuelle_Leistung;
|
||||||
|
|
||||||
// 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 || ($Is_Peak_Shaving != $this->GetValue("Is_Peak_Shaving"))) {
|
||||||
// Schritt 1: Benutzer nach Writeback-Wert aufteilen
|
// Schritt 1: Benutzer nach Writeback-Wert aufteilen
|
||||||
$writebackArrays = [];
|
$writebackArrays = [];
|
||||||
foreach ($Verbraucher_Liste_Korr[0]["User"] as $user) {
|
foreach ($Verbraucher_Liste_Korr[0]["User"] as $user) {
|
||||||
@@ -161,8 +156,11 @@ class HauptManager extends IPSModule
|
|||||||
// Schritt 4: RequestAction aufrufen
|
// Schritt 4: RequestAction aufrufen
|
||||||
RequestAction($writeback, $resultString);
|
RequestAction($writeback, $resultString);
|
||||||
}
|
}
|
||||||
|
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||||
|
|
||||||
// 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($Verbraucher_Liste_Korr[0]["User"], function ($a, $b) use (
|
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("DatenZuruck", 0); // Initialisierung mit 0
|
||||||
$this->RegisterPropertyInteger("Interval", 2); // Recheninterval
|
$this->RegisterPropertyInteger("Interval", 2); // Recheninterval
|
||||||
|
|
||||||
|
$this->RegisterVariableBoolean("Is_Peak_Shaving", false);
|
||||||
|
|
||||||
// Timer registrieren
|
// Timer registrieren
|
||||||
|
|
||||||
$this->RegisterTimer("Timer_DistributeEnergy",$this->ReadPropertyInteger("Interval")*1000,"IPS_RequestAction(" .$this->InstanceID .', "DistributeEnergy", "");');
|
$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");
|
$Ueberschussleistung = $this->ReadPropertyInteger("Ueberschussleistung");
|
||||||
|
|
||||||
// Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird.
|
// Fallunterscheidung ob auf Solarladen oder Peakshaving gerregelt wird.
|
||||||
if ($Netzbezug < ($Peakleistung - $Ueberschussleistung) / 2) {
|
if ($Netzbezug < ($Peakleistung + $Ueberschussleistung) / 2) {
|
||||||
$remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug);
|
$remainingPower = -1 * (-1 * $Ueberschussleistung + $Netzbezug);
|
||||||
$Is_Peak_Shaving = false;
|
$Is_Peak_Shaving = false;
|
||||||
} else {
|
} else {
|
||||||
@@ -163,16 +165,17 @@ class Manager extends IPSModule
|
|||||||
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, 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) {
|
if (!$allIdle || ($Is_Peak_Shaving != $this->GetValue("Is_Peak_Shaving"))) {
|
||||||
foreach ($filteredVerbraucher as $user) {
|
foreach ($filteredVerbraucher as $user) {
|
||||||
IPS_RequestAction($user["InstanceID"],"SetAktuelle_Leistung",$user["Aktuelle_Leistung"]);
|
IPS_RequestAction($user["InstanceID"],"SetAktuelle_Leistung",$user["Aktuelle_Leistung"]);
|
||||||
IPS_LogMessage("Manager", "aufgerufen nicht alle idle");
|
IPS_LogMessage("Manager", "aufgerufen nicht alle idle");
|
||||||
|
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||||
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$this->SetValue("Is_Peak_Shaving", $Is_Peak_Shaving);
|
||||||
// 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($filteredVerbraucher, function ($a, $b) use (
|
usort($filteredVerbraucher, function ($a, $b) use (
|
||||||
$Is_Peak_Shaving
|
$Is_Peak_Shaving
|
||||||
|
|||||||
Reference in New Issue
Block a user