From 94ec5861cf51bcf7dd288d2504d3e50a46db78e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=A4fliger?= Date: Tue, 8 Oct 2024 11:25:40 +0200 Subject: [PATCH] Fehlerbehebung --- Verbraucher_1_Stufig/module.php | 34 +++++++++++++++++++++++++-------- library.json | 2 +- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Verbraucher_1_Stufig/module.php b/Verbraucher_1_Stufig/module.php index 6cf6036..088b5a1 100644 --- a/Verbraucher_1_Stufig/module.php +++ b/Verbraucher_1_Stufig/module.php @@ -18,6 +18,10 @@ class Verbraucher_1_Stufig extends IPSModule { $this->RegisterVariableFloat("UsedEnergy", "UsedEnergy", "", 0); $this->RegisterVariableString("PowerSteps", "PowerSteps"); // PowerSteps-Variable registrieren + // Neue Variable für den Timer-Status + $this->RegisterVariableBoolean("IsTimerActive", "IsTimerActive", "", 0); + $this->SetValue("IsTimerActive", false); + // Trägheit $this->RegisterPropertyInteger("IdleCounterMax", 4); $this->RegisterVariableInteger("IdleCounter", "IdleCounter", "", 0); @@ -85,6 +89,9 @@ class Verbraucher_1_Stufig extends IPSModule { // Timer setzen, der nach "Zeit_Zwischen_Zustandswechseln" abläuft $zeitZwischenZustandswechseln = $this->ReadPropertyInteger("Zeit_Zwischen_Zustandswechseln"); $this->SetTimerInterval("ZustandswechselTimer", $zeitZwischenZustandswechseln * 1000); // Timer in Millisekunden + + // Timer-Status auf true setzen + $this->SetValue("IsTimerActive", true); } // Methode zum Zurücksetzen von PowerSteps nach Ablauf des Timers @@ -94,6 +101,9 @@ class Verbraucher_1_Stufig extends IPSModule { // Timer stoppen $this->SetTimerInterval("ZustandswechselTimer", 0); + + // Timer-Status auf false setzen + $this->SetValue("IsTimerActive", false); } // Methode zum Abrufen der aktuellen Daten @@ -101,7 +111,7 @@ class Verbraucher_1_Stufig extends IPSModule { $IstNacht = $this->GetValue("IstNacht"); $NeuesIstNacht = $this->ist_nachts(); - if($IstNacht==true && $NeuesIstNacht==false){ + if($IstNacht == true && $NeuesIstNacht == false){ $this->SetValue("DailyOnTime", 0); } @@ -110,17 +120,24 @@ class Verbraucher_1_Stufig extends IPSModule { $DailyOnTime = $this->GetValue("DailyOnTime"); $Mindestlaufzeit = $this->ReadPropertyInteger("Mindesttlaufzeit") * 60 * 12; - if($NeuesIstNacht && ($DailyOnTime < $Mindestlaufzeit)){ - if($Peak){ + // Überprüfen, ob der Timer aktiv ist + if($this->GetValue("IsTimerActive")) { + // Timer ist aktiv, PowerSteps setzen + $this->SetValue("PowerSteps", json_encode([$this->GetValue("CurrentPower")])); + } + // Wenn Nacht und Mindestlaufzeit nicht erreicht ist + else if($NeuesIstNacht && ($DailyOnTime < $Mindestlaufzeit)) { + if($Peak) { $this->SetValue("PowerSteps", json_encode([0, $this->ReadPropertyInteger("BoilerLeistung")])); - }else{ + } else { $this->SetValue("PowerSteps", json_encode([$this->ReadPropertyInteger("BoilerLeistung")])); } - } - else{ - if($Peak){ + } + // Andernfalls + else { + if($Peak) { $this->SetValue("PowerSteps", json_encode([0])); - }else{ + } else { $this->SetValue("PowerSteps", json_encode([0, $this->ReadPropertyInteger("BoilerLeistung")])); } } @@ -156,5 +173,6 @@ class Verbraucher_1_Stufig extends IPSModule { } } } + ?> diff --git a/library.json b/library.json index 661428f..e8178f7 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "0.10", + "version": "0.11", "build": 0, "date": 0 } \ No newline at end of file