This commit is contained in:
belevo\mh
2025-02-17 15:17:42 +01:00
parent 57ef475ab9
commit f346167787
2 changed files with 17 additions and 12 deletions

View File

@@ -55,7 +55,7 @@ class Batterie extends IPSModule
$stepSize = 250; // Schrittgröße
// Erstellen der PowerSteps
for ($i = 0; $i <= $maxleistung * 2; $i += $stepSize) {
for ($i = -$maxleistung; $i <= $maxleistung; $i += $stepSize) {
$array_powersteps[] = $i;
}
@@ -103,8 +103,8 @@ public function RequestAction($Ident, $Value)
return;
}
// Batterie entladen oder laden basierend auf der Leistung
if ($power > $maxleistung) {
$ladestrom = ($power - $maxleistung) / $spannung;
if ($power >= 0) {
$ladestrom = $power / $spannung;
$this->SetValue("Ladestrom", $ladestrom);
$this->SetValue("Entladestrom", 0);
//IPS_LogMessage("Batterie", "Ladestrom: " . $ladestrom);
@@ -148,7 +148,7 @@ public function RequestAction($Ident, $Value)
if ($Peak) {
if ($batterieladezustand <= $minimumentladen) {
$filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) {
return $value > $maxleistung; // Hochpass filtern
return $value >= 0; // Hochpass filtern
});
$filtered_powersteps_laden = array_values($filtered_powersteps);
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden));
@@ -156,7 +156,7 @@ public function RequestAction($Ident, $Value)
} elseif ($batterieladezustand >= $aufdasnachladen) {
$filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) use ($maxleistung) {
return $value < $maxleistung; // Tiefpass filtern
return $value < 0; // Tiefpass filtern
});
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_entladen));
IPS_LogMessage("Batterie", "Batterie entladen: " );
@@ -172,12 +172,16 @@ public function RequestAction($Ident, $Value)
} else { // Solar
$filtered_powersteps_solar = array_filter($array_powersteps, function ($value) use ($maxleistung) {
return $value > $maxleistung; // Hochpass filtern
});
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_solar));
IPS_LogMessage("Batterie", "Solarmodus");
if ($batterieladezustand <= $minimumentladen) {
$this->SetValue("PowerSteps", max($array_powersteps));
} else {
$filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) {
return $value >= 0; // Hochpass filtern
});
$filtered_powersteps_laden = array_values($filtered_powersteps);
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden));
}
}
}
@@ -215,5 +219,6 @@ public function RequestAction($Ident, $Value)
$this->SetValue("Idle", true);
}
}
}
?>

View File

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