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

View File

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