no message

This commit is contained in:
belevo\mh
2025-10-02 10:26:37 +02:00
parent 4668989531
commit 48df8b3346

View File

@@ -120,19 +120,32 @@ class Puffer_Speicher extends IPSModule
// Methode zum Setzen des aktuellen Stromverbrauchs
public function SetAktuelle_Leistung(int $power)
{
// Schalte Kontakt Teillast und Vollast entsprechend der Power-Einstellung
if ($power == $this->ReadPropertyInteger("PufferLeistung")) {
SetValue($this->ReadPropertyInteger("Heizkontakt2_Puffer"), true);
SetValue($this->ReadPropertyInteger("Heizkontakt1_Puffer"), false);
} elseif (
$power == $this->ReadPropertyInteger("PufferTeilLeistung")
) {
SetValue($this->ReadPropertyInteger("Heizkontakt2_Puffer"), false);
SetValue($this->ReadPropertyInteger("Heizkontakt1_Puffer"), true);
$json = $this->ReadPropertyString("LeistungsStufen");
$leistungsStufen = json_decode($json, true);
// Power = 0 → alle Kontakte aus
if ($power == 0) {
foreach ($leistungsStufen as $stufe) {
$kontaktID = $stufe['Schaltkontakt_Stufe'] ?? 0;
if ($kontaktID > 0) {
SetValue($kontaktID, false);
}
}
} else {
SetValue($this->ReadPropertyInteger("Heizkontakt2_Puffer"), false);
SetValue($this->ReadPropertyInteger("Heizkontakt1_Puffer"), false);
// Power > 0 → passende Stufe aktivieren, andere bleiben unverändert
foreach ($leistungsStufen as $stufe) {
$leistung = $stufe['Leistung'] ?? 0;
$kontaktID = $stufe['Schaltkontakt_Stufe'] ?? 0;
if ($leistung == $power && $kontaktID > 0) {
SetValue($kontaktID, true);
break; // nur eine Stufe aktiv
}
}
}
// Prüfe auf Änderung der Power im Vergleich zur letzten Einstellung
$lastPower = GetValue($this->GetIDForIdent("Aktuelle_Leistung"));
@@ -224,7 +237,7 @@ class Puffer_Speicher extends IPSModule
$this->SetValue( "PowerSteps", json_encode([0]) );
} else {
if ($boilerTemp < $VT && $hyst== true) {
$this->SetValue("PowerSteps", json_encode([0,$pufferTeilLeistung ,$pufferLeistung]));
$this->SetValue("PowerSteps", json_encode($this->leistungArray));
} elseif ($boilerTemp > $VT - 5 && $hyst== false) {
$this->SetValue("PowerSteps", json_encode([0]));
} else {