div korrigiert
This commit is contained in:
+39
-63
@@ -61,104 +61,80 @@ class Batterie extends IPSModule
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function SetAktuelle_Leistung(int $power){
|
public function SetAktuelle_Leistung(int $power)
|
||||||
$spannung = $this->ReadPropertyInteger("Batteriespannung");
|
{
|
||||||
$entladestrom = $this->ReadVariableInteger("Entladestrom");
|
// Batterie-spezifische Eigenschaften abrufen
|
||||||
$ladestrom = $this->ReadVariableInteger("Ladestrom");
|
$spannung = $this->ReadPropertyInteger("Batteriespannung");
|
||||||
$maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung");
|
$entladestrom = GetValue($this->GetIDForIdent("Entladestrom"));
|
||||||
|
$ladestrom = GetValue($this->GetIDForIdent("Ladestrom"));
|
||||||
//Batterie entladen < MaxBatterieleistung &&&&& MaxBatterieleistung < Batterie laden
|
$maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung");
|
||||||
|
|
||||||
|
// Batterie entladen oder laden basierend auf der Leistung
|
||||||
if ($power > $maxleistung) {
|
if ($power > $maxleistung) {
|
||||||
$ladestrom = ($power - $maxleistung) / $spannung;
|
$ladestrom = ($power - $maxleistung) / $spannung;
|
||||||
$this->SetValue("Ladestrom", $ladestrom);
|
$this->SetValue("Ladestrom", $ladestrom);
|
||||||
} else {
|
} else {
|
||||||
$entladestrom = $power / $spannung;
|
$entladestrom = $power / $spannung;
|
||||||
$this->SetValue("Entladestrom", $nachladestrom);
|
$this->SetValue("Entladestrom", $entladestrom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Prüfe auf Änderung der Leistung im Vergleich zur letzten Einstellung
|
||||||
|
|
||||||
// Prüfe auf Änderung der Power im Vergleich zur letzten Einstellung
|
|
||||||
$lastPower = GetValue($this->GetIDForIdent("Aktuelle_Leistung"));
|
$lastPower = GetValue($this->GetIDForIdent("Aktuelle_Leistung"));
|
||||||
if ($power != $lastPower) {
|
if ($power != $lastPower) {
|
||||||
$this->SetValue("Idle", false);
|
$this->SetValue("Idle", false);
|
||||||
$this->SetValue(
|
$this->SetValue(
|
||||||
"IdleCounter",
|
"IdleCounter",
|
||||||
$this->ReadPropertyInteger("IdleCounterMax")
|
$this->ReadPropertyInteger("IdleCounterMax")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setze die neue Aktuelle_Leistung
|
// Setze die neue aktuelle Leistung
|
||||||
$this->SetValue("Aktuelle_Leistung", $power);
|
$this->SetValue("Aktuelle_Leistung", $power);
|
||||||
|
|
||||||
// IdleCounter verarbeiten
|
// IdleCounter verarbeiten
|
||||||
$this->ProcessIdleCounter();
|
$this->ProcessIdleCounter();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function GetCurrentData(bool $Peak)
|
public function GetCurrentData(bool $Peak)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Werte der registrierten Variablen abrufen und in Variablen speichern
|
// Werte der registrierten Variablen abrufen und in Variablen speichern
|
||||||
$aufdasnachladen = $this->ReadVariableInteger("AufdasNachladen");
|
$aufdasnachladen = GetValue($this->GetIDForIdent("AufdasNachladen"));
|
||||||
$minimumentladen = $this->ReadVariableInteger("Minimumentladen");
|
$minimumentladen = GetValue($this->GetIDForIdent("MinimumEntladen"));
|
||||||
$batterieladezustand = $this->ReadPropertyInteger("Batterieladezustand");
|
$batterieladezustand = GetValue($this->GetIDForIdent("Batterieladezustand"));
|
||||||
$maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung");
|
$maxleistung = $this->ReadPropertyInteger("MaxBatterieleistung");
|
||||||
|
|
||||||
if ($Peak) {
|
if ($Peak) {
|
||||||
|
if ($batterieladezustand <= $minimumentladen) {
|
||||||
|
$filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) {
|
||||||
if ($batterieladezustand <= $minimumentladen){
|
return $value > $maxleistung; // Hochpass filtern
|
||||||
// Filterung des Arrays
|
|
||||||
$filtered_powersteps = array_filter($array_powersteps, function ($value) {
|
|
||||||
return $value > $maxleistung ; //Hochpassfiltern
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$filtered_powersteps_laden = array_values($filtered_powersteps);
|
$filtered_powersteps_laden = array_values($filtered_powersteps);
|
||||||
$this->SetValue(
|
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden));
|
||||||
"PowerSteps",
|
|
||||||
json_encode($filtered_powersteps_laden)
|
|
||||||
);
|
|
||||||
|
|
||||||
} elseif ($batterieladezustand >= $aufdasnachladen) {
|
} elseif ($batterieladezustand >= $aufdasnachladen) {
|
||||||
|
$filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) use ($maxleistung) {
|
||||||
$filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) {
|
return $value < $maxleistung; // Tiefpass filtern
|
||||||
return $value < $maxleistung ; //Tiefpassfiltern
|
|
||||||
});
|
});
|
||||||
|
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_entladen));
|
||||||
|
|
||||||
$filtered_powersteps = array_values($filtered_powersteps);
|
|
||||||
$this->SetValue(
|
|
||||||
"PowerSteps",
|
|
||||||
json_encode($filtered_powersteps_entladen)
|
|
||||||
);
|
|
||||||
|
|
||||||
} elseif ($batterieladezustand < $aufdasnachladen && $batterieladezustand > $minimumentladen) {
|
} elseif ($batterieladezustand < $aufdasnachladen && $batterieladezustand > $minimumentladen) {
|
||||||
$this->SetValue(
|
$this->SetValue("PowerSteps", json_encode($array_powersteps));
|
||||||
"PowerSteps",
|
|
||||||
json_encode($array_powersteps)
|
|
||||||
);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$this->SetValue(
|
} else {
|
||||||
"PowerSteps",
|
$this->SetValue("PowerSteps", json_encode($array_powersteps[0]));
|
||||||
json_encode($array_powersteps[0])
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {//Solar
|
} else { // Solar
|
||||||
|
|
||||||
|
|
||||||
// Filterung des Arrays
|
$filtered_powersteps = array_filter($array_powersteps, function ($value) use ($maxleistung) {
|
||||||
$filtered_powersteps = array_filter($array_powersteps, function ($value) {
|
return $value > $maxleistung; // Hochpass filtern
|
||||||
return $value > $maxleistung ; //Hochpassfiltern
|
|
||||||
});
|
});
|
||||||
$filtered_powersteps = array_values($filtered_powersteps);
|
|
||||||
$this->SetValue(
|
$this->SetValue("PowerSteps", json_encode($filtered_powersteps));
|
||||||
"PowerSteps",
|
|
||||||
json_encode($filtered_powersteps)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
"compatibility": {
|
"compatibility": {
|
||||||
"version": "7.1"
|
"version": "7.1"
|
||||||
},
|
},
|
||||||
"version": "0.180",
|
"version": "0.181",
|
||||||
"build": 0,
|
"build": 0,
|
||||||
"date": 0
|
"date": 0
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user