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->aktualisiereStoerungen($temperaturGueltig);
if ($meldungPlanen) {
@@ -420,14 +424,14 @@ class VerbraucherWarmwassererwaermer extends IPSModule implements VerbraucherSch
$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'));
$zielStufe = WarmwasserRegler::stufeFuerLeistung($stufen, $zielLeistung);
$bisherigeLeistung = (int) round((float) $this->leseZustand('Istleistung'));
if ($zielLeistung === $bisherigeLeistung && $this->kontakteEntsprechenZiel($stufen, $zielLeistung)) {
$this->WriteAttributeString('Schaltfehler', '');
return;
return false;
}
try {
@@ -464,6 +468,8 @@ class VerbraucherWarmwassererwaermer extends IPSModule implements VerbraucherSch
$this->WriteAttributeInteger('LetzterLastwechsel', $jetzt);
$this->aktualisiereLastwechselstatus($jetzt);
$this->protokolliere('Leistungsstufe', ['Leistung_W' => $zielLeistung, 'Stufe' => $zielStufe]);
return true;
}
/**