From 7bc5610ddc067c8ad3f2d4e77e2bde0123fcea5c Mon Sep 17 00:00:00 2001 From: "belevo\\mh" Date: Mon, 24 Feb 2025 09:57:14 +0100 Subject: [PATCH] Propertys Variable probleme --- Batterie/module.php | 56 ++++++++++++++++++++++----------------------- library.json | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Batterie/module.php b/Batterie/module.php index 816027b..0ac3381 100644 --- a/Batterie/module.php +++ b/Batterie/module.php @@ -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"); - - if ($power >= 0) { - SetValue($this->ReadPropertyFloat("Ladeleistung"), $power); - } 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"); - + // Ausgewählte Variablen aus der Instanzkonfiguration lesen + $entladeleistungID = $this->ReadPropertyInteger("Entladeleistung"); + $ladeleistungID = $this->ReadPropertyInteger("Ladeleistung"); - if ($spannung <= 0) { - IPS_LogMessage("Batterie", "Fehler: Batteriespannung ist 0 oder ungültig."); - return; + // Ü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 { + // Ladeleistung auf 0 setzen, wenn keine Entladung stattfindet + $this->SetValue("AktuelleEntladeleistung", 0); + } } - - if ($power >= 0) { - $ladestrom = $power / $spannung; - $this->SetValue("Ladestrom", $ladestrom); - $this->SetValue("Entladestrom", 0); - } else { - $entladestrom = $power / $spannung; - $this->SetValue("Entladestrom", $entladestrom); - $this->SetValue("Ladestrom", 0); + + // Überprüfen, ob die Ladeleistung-ID korrekt gesetzt ist + if ($ladeleistungID > 0) { + if ($power >= 0) { + // Ladeleistung setzen (wenn power positiv ist) + $this->SetValue("AktuelleLadeleistung", $power); + $this->SetValue("AktuelleEntladeleistung", 0); // Entladeleistung auf 0 setzen + } else { + // 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")); diff --git a/library.json b/library.json index 8fcd1d8..e6db524 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "1.048", + "version": "1.049", "build": 0, "date": 0 } \ No newline at end of file