diff --git a/Batterie/module.php b/Batterie/module.php index cfad474..af279a8 100644 --- a/Batterie/module.php +++ b/Batterie/module.php @@ -61,104 +61,80 @@ class Batterie extends IPSModule } } - public function SetAktuelle_Leistung(int $power){ - $spannung = $this->ReadPropertyInteger("Batteriespannung"); - $entladestrom = $this->ReadVariableInteger("Entladestrom"); - $ladestrom = $this->ReadVariableInteger("Ladestrom"); - $maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung"); - - //Batterie entladen < MaxBatterieleistung &&&&& MaxBatterieleistung < Batterie laden + public function SetAktuelle_Leistung(int $power) + { + // Batterie-spezifische Eigenschaften abrufen + $spannung = $this->ReadPropertyInteger("Batteriespannung"); + $entladestrom = GetValue($this->GetIDForIdent("Entladestrom")); + $ladestrom = GetValue($this->GetIDForIdent("Ladestrom")); + $maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung"); + + // Batterie entladen oder laden basierend auf der Leistung if ($power > $maxleistung) { $ladestrom = ($power - $maxleistung) / $spannung; $this->SetValue("Ladestrom", $ladestrom); } else { $entladestrom = $power / $spannung; - $this->SetValue("Entladestrom", $nachladestrom); + $this->SetValue("Entladestrom", $entladestrom); } - - - - // Prüfe auf Änderung der Power im Vergleich zur letzten Einstellung + + // Prüfe auf Änderung der Leistung im Vergleich zur letzten Einstellung $lastPower = GetValue($this->GetIDForIdent("Aktuelle_Leistung")); if ($power != $lastPower) { $this->SetValue("Idle", false); $this->SetValue( "IdleCounter", $this->ReadPropertyInteger("IdleCounterMax") - ); - } + ); + } - // Setze die neue Aktuelle_Leistung + // Setze die neue aktuelle Leistung $this->SetValue("Aktuelle_Leistung", $power); // IdleCounter verarbeiten - $this->ProcessIdleCounter(); - + $this->ProcessIdleCounter(); } + public function GetCurrentData(bool $Peak) { - // Werte der registrierten Variablen abrufen und in Variablen speichern - $aufdasnachladen = $this->ReadVariableInteger("AufdasNachladen"); - $minimumentladen = $this->ReadVariableInteger("Minimumentladen"); - $batterieladezustand = $this->ReadPropertyInteger("Batterieladezustand"); - $maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung"); - + $aufdasnachladen = GetValue($this->GetIDForIdent("AufdasNachladen")); + $minimumentladen = GetValue($this->GetIDForIdent("MinimumEntladen")); + $batterieladezustand = GetValue($this->GetIDForIdent("Batterieladezustand")); + $maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung"); + if ($Peak) { - - - if ($batterieladezustand <= $minimumentladen){ - // Filterung des Arrays - $filtered_powersteps = array_filter($array_powersteps, function ($value) { - return $value > $maxleistung ; //Hochpassfiltern + if ($batterieladezustand <= $minimumentladen) { + $filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) { + return $value > $maxleistung; // Hochpass filtern }); - $filtered_powersteps_laden = array_values($filtered_powersteps); - $this->SetValue( - "PowerSteps", - json_encode($filtered_powersteps_laden) - ); + $this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden)); } elseif ($batterieladezustand >= $aufdasnachladen) { - - $filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) { - return $value < $maxleistung ; //Tiefpassfiltern + $filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) use ($maxleistung) { + return $value < $maxleistung; // Tiefpass filtern }); + $this->SetValue("PowerSteps", json_encode($filtered_powersteps_entladen)); - $filtered_powersteps = array_values($filtered_powersteps); - $this->SetValue( - "PowerSteps", - json_encode($filtered_powersteps_entladen) - ); - } elseif ($batterieladezustand < $aufdasnachladen && $batterieladezustand > $minimumentladen) { - $this->SetValue( - "PowerSteps", - json_encode($array_powersteps) - ); - - } else { + $this->SetValue("PowerSteps", json_encode($array_powersteps)); - $this->SetValue( - "PowerSteps", - json_encode($array_powersteps[0]) - ); + } else { + $this->SetValue("PowerSteps", json_encode($array_powersteps[0])); } - } else {//Solar - + } else { // Solar - // Filterung des Arrays - $filtered_powersteps = array_filter($array_powersteps, function ($value) { - return $value > $maxleistung ; //Hochpassfiltern + $filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) { + return $value > $maxleistung; // Hochpass filtern }); - $filtered_powersteps = array_values($filtered_powersteps); - $this->SetValue( - "PowerSteps", - json_encode($filtered_powersteps) - ); + + $this->SetValue("PowerSteps", json_encode($filtered_powersteps)); } + } + diff --git a/library.json b/library.json index fcc286e..1b3942b 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "0.180", + "version": "0.181", "build": 0, "date": 0 } \ No newline at end of file