diff --git a/Batterie/form.json b/Batterie/form.json index f944520..58e0706 100644 --- a/Batterie/form.json +++ b/Batterie/form.json @@ -16,6 +16,12 @@ "caption": "Maximale Batterieleistung", "suffix": "" }, + { + "type": "NumberSpinner", + "name": "MaxNachladen", + "caption": "Maximum Nachladen", + "suffix": "" + }, { "type": "NumberSpinner", "name": "AufdasNachladen", @@ -49,6 +55,11 @@ "name": "Batterieladezustand", "caption": "Batterieladezustand", "test": true + }, + { + "type": "SelectVariable", + "name": "Netzbezug", + "caption": "Variable mit dem zu regelnden Netzbezug" } ] } diff --git a/Batterie/module.php b/Batterie/module.php index 2ff59f0..ae718b5 100644 --- a/Batterie/module.php +++ b/Batterie/module.php @@ -13,8 +13,9 @@ class Batterie extends IPSModule $this->RegisterPropertyInteger("MinimumEntladen",0); $this->RegisterPropertyInteger("Batterieladezustand",0); $this->RegisterPropertyInteger("Batteriemanagement", 1); - - + $this->RegisterPropertyInteger("MaxNachladen",0); + $this->RegisterPropertyInteger("Netzbezug", 0); // Initialisierung mit 0 + // Variabeln für Kommunkation mit Manager $this->RegisterVariableFloat("Entladeleistung","Entladeleistung", "",0); $this->RegisterVariableInteger("Batteriemanagement_Variabel","Batteriemanagement_Variabel", "",0); @@ -163,6 +164,7 @@ public function RequestAction($Ident, $Value) if ($Peak) { + if ($batterieladezustand <= $minimumentladen) { $filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) { return $value >= 0; // Hochpass filtern @@ -171,37 +173,42 @@ public function RequestAction($Ident, $Value) $this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden)); - } elseif ($batterieladezustand >= $aufdasnachladen) { - $filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) use ($maxleistung) { - return $value < 0; // Tiefpass filtern - }); - $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)); + } + + + // Hier Modul auf Wechselrichter 1 stellen + elseif ($batterieladezustand >= $aufdasnachladen) { + $dummy_array[] = $this->ReadPropertyInteger("Netzbezug")*(-1); + $this->SetValue("PowerSteps", json_encode($dummy_array)); + + } else { $dummy_array[] = 0; $this->SetValue("PowerSteps", json_encode($dummy_array)); - } + } else { // Solar - if ($batterieladezustand <= $minimumentladen) { - $dummy_array[] = max($array_powersteps); + if ($batterieladezustand <= $aufdasnachladen) { + $dummy_array[] = $this->ReadPropertyInteger("NachLaden"); $this->SetValue("PowerSteps", json_encode($dummy_array)); - } 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)); + }elseif ($batterieladezustand = 100) { + $filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) use ($maxleistung) { + return $value < 0; // Tiefpass filtern + }); + $this->SetValue("PowerSteps", json_encode($filtered_powersteps_entladen)); + + }elseif ($batterieladezustand >= $aufdasnachladen) { + $this->SetValue("PowerSteps", json_encode($array_powersteps)); + + } else { + $dummy_array[] = 0; + $this->SetValue("PowerSteps", json_encode($dummy_array)); } } } diff --git a/library.json b/library.json index f7c0a01..57a9530 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "1.076", + "version": "1.077", "build": 0, "date": 0 } \ No newline at end of file