version 2 für manager und ladestation erstellt

This commit is contained in:
2025-04-07 15:18:24 +02:00
parent e07711f5f6
commit 72ce4ec094
9 changed files with 1131 additions and 116 deletions
-116
View File
@@ -182,7 +182,6 @@ public function RequestAction($Ident, $Value)
// IdleCounter verarbeiten
$this->ProcessIdleCounter();
$this->SetValue("Leistung_Delta", GetValue($this->ReadPropertyInteger("Batterieleistung_Effektiv"))-$power);
}
@@ -286,121 +285,6 @@ public function RequestAction($Ident, $Value)
}
// $inhystere = $this->GetValue("Hysterese");
// $inhystere_netz = $this->GetValue("Hysterese_Netz");
/*$batterieManagement = $this->ReadPropertyInteger("Batteriemanagement");
if ($batterieManagement == 1) {
$dummy_array[] = 0;
return $this->SetValue("PowerSteps", json_encode($dummy_array));
}
$batterieladezustandID = $this->ReadPropertyInteger("Batterieladezustand");
if ($batterieladezustandID > 0) {
$batterieladezustand = GetValue($batterieladezustandID);
} else {
IPS_LogMessage("Batterie", "Fehler: Ungültige Batterieladezustand-ID.");
return;
}
if ($Peak) {
if ($batterieladezustand >= 5 + $aufdasnachladen) {
$this->SetValue("Hysterese", false);
$this->SetValue("Hysterese_Netz", true);
}
if ($batterieladezustand < $aufdasnachladen) {
$this->SetValue("Hysterese_Netz", false);
}
if ($batterieladezustand <= $minimumentladen) {
$filtered_powersteps = array_filter($array_powersteps, function ($value) {
return $value >= 0;
});
$filtered_powersteps_laden = array_values($filtered_powersteps);
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden));
$this->SetValue("Hysterese", true);
IPS_LogMessage("Batterie", "Peak: unter minimum");
} elseif ($batterieladezustand > $minimumentladen) {
if ($inhystere == true && $inhystere_netz == false) {
$filtered_powersteps = array_filter($array_powersteps, function ($value) {
return $value >= 0;
});
$filtered_powersteps_laden = array_values($filtered_powersteps);
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden));
IPS_LogMessage("Batterie", ": peak: Hysterese");
IPS_LogMessage("Debug", "peak: Hysterese Hysterese_Netz: " . ($inhystere_netz ? "true" : "false"));
IPS_LogMessage("Debug", "peak: Hysterese Hysterese: " . ($inhystere ? "true" : "false"));
} elseif ($inhystere_netz == true && $inhystere == false) {
$netzbezug = GetValue($this->ReadPropertyInteger("Netzbezug"));
if (abs($netzbezug) > $maxleistung) {
$dummy_array[] = $maxleistung * (-1);
} else {
$dummy_array[] = $netzbezug;
}
$this->SetValue("PowerSteps", json_encode($dummy_array));
IPS_LogMessage("Batterie", "Peak: netzbezug, keine hysterese");
IPS_LogMessage("Debug", "Peak: netzbezug, keine hysterese Hysterese_Netz: " . ($inhystere_netz ? "true" : "false"));
IPS_LogMessage("Debug", "Peak: netzbezug, keine hysterese Hysterese: " . ($inhystere ? "true" : "false"));
} elseif ($inhystere_netz == false && $inhystere == false) {
$this->SetValue("PowerSteps", json_encode($array_powersteps));
IPS_LogMessage("Batterie", "Peak: alle Werte, keine hysterese");
} else {
$dummy_array[] = 0;
$this->SetValue("PowerSteps", json_encode($dummy_array));
IPS_LogMessage("Batterie", ": peak: Kein Fall");
}
}
} else { // Solar
if ($batterieladezustand >= 5 + $aufdasnachladen) {
$this->SetValue("Hysterese", false);
$this->SetValue("Hysterese_Netz", true);
}
if ($batterieladezustand < $aufdasnachladen) {
$this->SetValue("Hysterese", true);
$this->SetValue("Hysterese_Netz", false);
$nachladen = $this->ReadPropertyInteger("MaxNachladen");
$dummy_array[] = $nachladen;
IPS_LogMessage("Batterie", ": MaxNachladen " . json_encode($dummy_array));
$this->SetValue("PowerSteps", json_encode($dummy_array));
} elseif ($batterieladezustand >= $aufdasnachladen) {
if ($inhystere == true) {
$filtered_powersteps = array_filter($array_powersteps, function ($value) {
return $value >= 0;
});
$filtered_powersteps_laden = array_values($filtered_powersteps);
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_laden));
IPS_LogMessage("Batterie", ": solar: Hysterese");
} else {
$this->SetValue("PowerSteps", json_encode($array_powersteps));
IPS_LogMessage("Batterie", ": solar: Keine Hysterese");
}
} else {
$dummy_array[] = 0;
$this->SetValue("PowerSteps", json_encode($dummy_array));
}
if ($batterieladezustand >= 100) {
$filtered_powersteps_entladen = array_filter($array_powersteps, function ($value) {
return $value <= 0;
});
$this->SetValue("PowerSteps", json_encode($filtered_powersteps_entladen));
IPS_LogMessage("Batterie", ": Solar über 100%" );
}
}*/
}