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

@@ -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"
}
]
}

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

View File

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