From f3461677878d88de219e20b54d5e51e84fe75eb7 Mon Sep 17 00:00:00 2001 From: "belevo\\mh" Date: Mon, 17 Feb 2025 15:17:42 +0100 Subject: [PATCH] batterie --- Batterie/module.php | 27 ++++++++++++++++----------- library.json | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Batterie/module.php b/Batterie/module.php index 090fe3c..33a2ac0 100644 --- a/Batterie/module.php +++ b/Batterie/module.php @@ -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); } } + } ?> \ No newline at end of file diff --git a/library.json b/library.json index 186add1..a6de337 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "1.037", + "version": "1.038", "build": 0, "date": 0 } \ No newline at end of file