Modul erweitert

This commit is contained in:
belevo\mh
2025-02-25 14:44:06 +01:00
parent 731725e2d8
commit 6184e52156
3 changed files with 41 additions and 23 deletions

View File

@@ -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));
}
}
}