diff --git a/WP_Steuerung/module.php b/WP_Steuerung/module.php index bc3d143..4efb03a 100644 --- a/WP_Steuerung/module.php +++ b/WP_Steuerung/module.php @@ -67,6 +67,7 @@ class WP_Steurung extends IPSModule { public function SetCurrentPower(float $power) { $sperrzei_abs = 60*60*(GetValue($this->ReadPropertyInteger("Aussentemperatur"))+10)/25*60; + if($sperrzei_abs>6*60*60){ $sperrzei_abs = 6*60*60; @@ -88,118 +89,88 @@ class WP_Steurung extends IPSModule { $this->CheckIdle($power); if($this->GetValue("CurrentPower")!=$power){ - $this->SetValue("WP_Laufzeit_Zahler", 0); + $this->SetValue("WP_Laufzeit_Zahler", 0); - $LastPeak = $this->GetValue("LetzterPeakwert"); + $LastPeak = $this->GetValue("LetzterPeakwert"); - $state = $this->GetValue("Zustand_WP"); - - if($state == 0){ + $state = $this->GetValue("Zustand_WP"); + + if($state == 0){ - $this->SetValue("Zustand_WP", 1); - SetValue($this->ReadPropertyInteger("Sperrkontakt"), false); - SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), false); + $this->SetValue("Zustand_WP", 1); + SetValue($this->ReadPropertyInteger("Sperrkontakt"), false); + SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), false); - }elseif($state == 1) // Normalbetrieb - { - if($LastPeak && $power == $this->GetValue("WP_Leistung")) { - $this->SetValue("Zustand_WP", 1); - if($its_lock_time){ - $this->SetValue("Zustand_WP", 2); - } - } elseif($LastPeak && $power == 0){ - $this->SetValue("Zustand_WP", 2); - - } - elseif($LastPeak == false && $power == $this->GetValue("WP_Leistung")){ - $this->SetValue("Zustand_WP", 3); - - } - elseif($LastPeak == false && $power == 0){ - $this->SetValue("Zustand_WP", 1); - if($its_lock_time){ - $this->SetValue("Zustand_WP", 2); - } - - } - - }elseif($state == 2) // Sperre - { - if($LastPeak && $power == $this->GetValue("WP_Leistung")) { - $this->SetValue("Zustand_WP", 1); - if($its_lock_time){ - $this->SetValue("Zustand_WP", 2); - } - } elseif($LastPeak && $power == 0){ - $this->SetValue("Zustand_WP", 2); - - } - elseif($LastPeak == false && $power == $this->GetValue("WP_Leistung")){ - $this->SetValue("Zustand_WP", 3); - - } - elseif($LastPeak == false && $power == 0){ + }elseif($state == 1) // Normalbetrieb + { + if($LastPeak && $power == $this->GetValue("WP_Leistung")) { $this->SetValue("Zustand_WP", 1); if($its_lock_time){ $this->SetValue("Zustand_WP", 2); } - - } + } elseif($LastPeak && $power == 0){ + $this->SetValue("Zustand_WP", 2); - }elseif($state == 3) // Erhöht + } + elseif($LastPeak == false && $power == $this->GetValue("WP_Leistung")){ + $this->SetValue("Zustand_WP", 3); + + } + elseif($LastPeak == false && $power == 0){ + $this->SetValue("Zustand_WP", 1); + if($its_lock_time){ + $this->SetValue("Zustand_WP", 2); + } + + } + + }elseif($state == 2) // Sperre { if($LastPeak && $power == $this->GetValue("WP_Leistung")) { - $this->SetValue("Zustand_WP", 1); - } elseif($LastPeak && $power == 0){ + $this->SetValue("Zustand_WP", 1); + if($its_lock_time){ + $this->SetValue("Zustand_WP", 2); + } + } elseif($LastPeak && $power == 0){ $this->SetValue("Zustand_WP", 2); - } - elseif($LastPeak == false && $power == $this->GetValue("WP_Leistung")){ + } + elseif($LastPeak == false && $power == $this->GetValue("WP_Leistung")){ $this->SetValue("Zustand_WP", 3); - } - elseif($LastPeak == false && $power == 0){ - $this->SetValue("Zustand_WP", 1); + } + elseif($LastPeak == false && $power == 0){ + $this->SetValue("Zustand_WP", 1); + if($its_lock_time){ + $this->SetValue("Zustand_WP", 2); + } - } - + } + + }elseif($state == 3) // Erhöht + { + if($LastPeak && $power == $this->GetValue("WP_Leistung")) { + $this->SetValue("Zustand_WP", 1); + } elseif($LastPeak && $power == 0){ + $this->SetValue("Zustand_WP", 2); + + } + elseif($LastPeak == false && $power == $this->GetValue("WP_Leistung")){ + $this->SetValue("Zustand_WP", 3); + + } + elseif($LastPeak == false && $power == 0){ + $this->SetValue("Zustand_WP", 1); + + } + + } + else{ + $this->SetValue("Zustand_WP", 1); } - else{ - $this->SetValue("Zustand_WP", 1); - $this->SetValue("PowerSteps", json_encode([0])); - } - - $newState = $this->GetValue("Zustand_WP"); - - if($newState == 0){ - - SetValue($this->ReadPropertyInteger("Sperrkontakt"), false); - SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), false); - - }elseif($newState == 1){ - - SetValue($this->ReadPropertyInteger("Sperrkontakt"), false); - SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), false); - - }elseif($newState == 2){ - - SetValue($this->ReadPropertyInteger("Sperrkontakt"), true); - SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), false); - - }elseif($newState == 3){ - - SetValue($this->ReadPropertyInteger("Sperrkontakt"), false); - SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), true); - - }else{ - - SetValue($this->ReadPropertyInteger("Sperrkontakt"), false); - SetValue($this->ReadPropertyInteger("Kontakt_Erhoeung"), false); - - } }else{ - break; + $newCount = $this->GetValue("WP_Laufzeit_Zahler"); $this->SetValue("WP_Laufzeit_Zahler", ($newCount +1)); } diff --git a/library.json b/library.json index 552668a..6387bb5 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "0.103", + "version": "0.104", "build": 0, "date": 0 } \ No newline at end of file