Propertys Variable probleme

This commit is contained in:
belevo\mh
2025-02-24 09:57:14 +01:00
parent f90bda4133
commit 7bc5610ddc
2 changed files with 29 additions and 29 deletions

View File

@@ -16,6 +16,7 @@ class Batterie extends IPSModule
$this->RegisterPropertyFloat("Ladeleistung",0);
// Variabeln für Kommunkation mit Manager
$this->RegisterVariableFloat("Ladestrom", "Ladestrom", "", 0);
$this->RegisterVariableFloat("Entladestrom", "Entladestrom", "", 0);
$this->RegisterVariableInteger("Aktuelle_Leistung", "Aktuelle_Leistung", "", 0);
@@ -28,7 +29,8 @@ class Batterie extends IPSModule
$this->RegisterVariableFloat("Bezogene_Energie", "Bezogene_Energie", "", 0);
$this->RegisterVariableFloat("AktuelleLadeleistung", "Aktuelle Ladeleistung", "", 0);
$this->RegisterVariableFloat("AktuelleEntladeleistung", "Aktuelle Entladeleistung", "", 0);
// Hilfsvariabeln für Idle zustand
$this->RegisterPropertyInteger("IdleCounterMax", 2);
$this->RegisterVariableInteger("IdleCounter", "IdleCounter", "", 0);
@@ -92,36 +94,34 @@ public function RequestAction($Ident, $Value)
public function SetAktuelle_Leistung(int $power)
{
$ladeleistung = $this->ReadPropertyFloat("Ladeleistung");
$entladeleistung = $this->ReadPropertyFloat("Entladeleistung");
// Ausgewählte Variablen aus der Instanzkonfiguration lesen
$entladeleistungID = $this->ReadPropertyInteger("Entladeleistung");
$ladeleistungID = $this->ReadPropertyInteger("Ladeleistung");
if ($power >= 0) {
SetValue($this->ReadPropertyFloat("Ladeleistung"), $power);
// Überprüfen, ob die Entladeleistung-ID korrekt gesetzt ist
if ($entladeleistungID > 0) {
if ($power < 0) {
// Entladeleistung setzen (wenn power negativ ist)
$this->SetValue("AktuelleEntladeleistung", abs($power));
$this->SetValue("AktuelleLadeleistung", 0); // Ladeleistung auf 0 setzen
} else {
SetValue($this->ReadPropertyFloat("Entladeleistung"),abs($power));
}
$spannung = $this->ReadPropertyInteger("Batteriespannung");
//$ladestrom = GetValue($this->GetIDForIdent("Ladestrom"));
//$entladestrom = GetValue($this->GetIDForIdent("Entladestrom"));
$ladestrom = $this->ReadPropertyFloat("Ladestrom");
$entladestrom = $this->ReadPropertyFloat("Entladestrom");
if ($spannung <= 0) {
IPS_LogMessage("Batterie", "Fehler: Batteriespannung ist 0 oder ungültig.");
return;
// Ladeleistung auf 0 setzen, wenn keine Entladung stattfindet
$this->SetValue("AktuelleEntladeleistung", 0);
}
}
// Überprüfen, ob die Ladeleistung-ID korrekt gesetzt ist
if ($ladeleistungID > 0) {
if ($power >= 0) {
$ladestrom = $power / $spannung;
$this->SetValue("Ladestrom", $ladestrom);
$this->SetValue("Entladestrom", 0);
// Ladeleistung setzen (wenn power positiv ist)
$this->SetValue("AktuelleLadeleistung", $power);
$this->SetValue("AktuelleEntladeleistung", 0); // Entladeleistung auf 0 setzen
} else {
$entladestrom = $power / $spannung;
$this->SetValue("Entladestrom", $entladestrom);
$this->SetValue("Ladestrom", 0);
// Ladeleistung auf 0 setzen, wenn keine Aufladung stattfindet
$this->SetValue("AktuelleLadeleistung", 0);
}
}
// Prüfe auf Änderung der Leistung im Vergleich zur letzten Einstellung
$lastPower = GetValue($this->GetIDForIdent("Aktuelle_Leistung"));

View File

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