Leistungsangebot nach Lastwechsel sperren
Tests / test (push) Failing after 47s

This commit is contained in:
dh
2026-09-17 09:16:52 +00:00
parent 355e7163fb
commit 92e8ec59df
+9 -3
View File
@@ -271,7 +271,11 @@ class VerbraucherWarmwassererwaermer extends IPSModule implements VerbraucherSch
} }
} }
$this->schalteLeistung($ziel, $jetzt); $lastwechselErfolgt = $this->schalteLeistung($ziel, $jetzt);
if ($lastwechselErfolgt) {
$this->WriteAttributeString('Leistungsangebot', json_encode([$ziel], JSON_THROW_ON_ERROR));
$this->setzeZustand('AenderungMoeglich', false);
}
$this->setzeZustand('Sollleistung', $ziel); $this->setzeZustand('Sollleistung', $ziel);
$this->aktualisiereStoerungen($temperaturGueltig); $this->aktualisiereStoerungen($temperaturGueltig);
if ($meldungPlanen) { if ($meldungPlanen) {
@@ -420,14 +424,14 @@ class VerbraucherWarmwassererwaermer extends IPSModule implements VerbraucherSch
$this->setzeZustand('LegionellenbetriebAktiv', $fruehestensFaellig); $this->setzeZustand('LegionellenbetriebAktiv', $fruehestensFaellig);
} }
private function schalteLeistung(int $zielLeistung, int $jetzt): void private function schalteLeistung(int $zielLeistung, int $jetzt): bool
{ {
$stufen = WarmwasserRegler::dekodiereLeistungsstufen($this->ReadPropertyString('LeistungsStufen')); $stufen = WarmwasserRegler::dekodiereLeistungsstufen($this->ReadPropertyString('LeistungsStufen'));
$zielStufe = WarmwasserRegler::stufeFuerLeistung($stufen, $zielLeistung); $zielStufe = WarmwasserRegler::stufeFuerLeistung($stufen, $zielLeistung);
$bisherigeLeistung = (int) round((float) $this->leseZustand('Istleistung')); $bisherigeLeistung = (int) round((float) $this->leseZustand('Istleistung'));
if ($zielLeistung === $bisherigeLeistung && $this->kontakteEntsprechenZiel($stufen, $zielLeistung)) { if ($zielLeistung === $bisherigeLeistung && $this->kontakteEntsprechenZiel($stufen, $zielLeistung)) {
$this->WriteAttributeString('Schaltfehler', ''); $this->WriteAttributeString('Schaltfehler', '');
return; return false;
} }
try { try {
@@ -464,6 +468,8 @@ class VerbraucherWarmwassererwaermer extends IPSModule implements VerbraucherSch
$this->WriteAttributeInteger('LetzterLastwechsel', $jetzt); $this->WriteAttributeInteger('LetzterLastwechsel', $jetzt);
$this->aktualisiereLastwechselstatus($jetzt); $this->aktualisiereLastwechselstatus($jetzt);
$this->protokolliere('Leistungsstufe', ['Leistung_W' => $zielLeistung, 'Stufe' => $zielStufe]); $this->protokolliere('Leistungsstufe', ['Leistung_W' => $zielLeistung, 'Stufe' => $zielStufe]);
return true;
} }
/** /**