Modul erweitert

This commit is contained in:
mh
2025-02-25 14:44:06 +01:00
parent 731725e2d8
commit 6184e52156
3 changed files with 41 additions and 23 deletions
+11
View File
@@ -16,6 +16,12 @@
"caption": "Maximale Batterieleistung", "caption": "Maximale Batterieleistung",
"suffix": "" "suffix": ""
}, },
{
"type": "NumberSpinner",
"name": "MaxNachladen",
"caption": "Maximum Nachladen",
"suffix": ""
},
{ {
"type": "NumberSpinner", "type": "NumberSpinner",
"name": "AufdasNachladen", "name": "AufdasNachladen",
@@ -49,6 +55,11 @@
"name": "Batterieladezustand", "name": "Batterieladezustand",
"caption": "Batterieladezustand", "caption": "Batterieladezustand",
"test": true "test": true
},
{
"type": "SelectVariable",
"name": "Netzbezug",
"caption": "Variable mit dem zu regelnden Netzbezug"
} }
] ]
} }
+29 -22
View File
@@ -13,8 +13,9 @@ class Batterie extends IPSModule
$this->RegisterPropertyInteger("MinimumEntladen",0); $this->RegisterPropertyInteger("MinimumEntladen",0);
$this->RegisterPropertyInteger("Batterieladezustand",0); $this->RegisterPropertyInteger("Batterieladezustand",0);
$this->RegisterPropertyInteger("Batteriemanagement", 1); $this->RegisterPropertyInteger("Batteriemanagement", 1);
$this->RegisterPropertyInteger("MaxNachladen",0);
$this->RegisterPropertyInteger("Netzbezug", 0); // Initialisierung mit 0
// Variabeln für Kommunkation mit Manager // Variabeln für Kommunkation mit Manager
$this->RegisterVariableFloat("Entladeleistung","Entladeleistung", "",0); $this->RegisterVariableFloat("Entladeleistung","Entladeleistung", "",0);
$this->RegisterVariableInteger("Batteriemanagement_Variabel","Batteriemanagement_Variabel", "",0); $this->RegisterVariableInteger("Batteriemanagement_Variabel","Batteriemanagement_Variabel", "",0);
@@ -163,6 +164,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 >= 0; // Hochpass filtern return $value >= 0; // Hochpass filtern
@@ -171,37 +173,42 @@ public function RequestAction($Ident, $Value)
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden)); $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) { } elseif ($batterieladezustand < $aufdasnachladen && $batterieladezustand > $minimumentladen) {
$this->SetValue("PowerSteps", json_encode($array_powersteps)); $this->SetValue("PowerSteps", json_encode($array_powersteps));
}
} else {
// 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; $dummy_array[] = 0;
$this->SetValue("PowerSteps", json_encode($dummy_array)); $this->SetValue("PowerSteps", json_encode($dummy_array));
} }
} else { // Solar } else { // Solar
if ($batterieladezustand <= $minimumentladen) { if ($batterieladezustand <= $aufdasnachladen) {
$dummy_array[] = max($array_powersteps); $dummy_array[] = $this->ReadPropertyInteger("NachLaden");
$this->SetValue("PowerSteps", json_encode($dummy_array)); $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));
} }
} }
} }
+1 -1
View File
@@ -6,7 +6,7 @@
"compatibility": { "compatibility": {
"version": "7.1" "version": "7.1"
}, },
"version": "1.076", "version": "1.077",
"build": 0, "build": 0,
"date": 0 "date": 0
} }