@@ -26,8 +26,8 @@ Vorgeschlagene Bündelung:
2626| Version | Inhalt | Art | Stand |
2727| --- | --- | --- | --- |
2828| 3.8.1 | Maßnahme 1 + K1 (Zugangswege, kein Protokoll-/Topic-Einfluss) | Fix | ** erledigt 2026-08-18** — umgesetzt, am Gerät abgenommen, auf beiden Stufen ausgerollt |
29- | 3.8.2 | Maßnahme 2 (retained ` Online ` ) + K3 (Publish-Wiederholung) | Fix | ** erledigt 2026-08-19** — gebaut und getestet, Abnahme am Gerät steht aus |
30- | 3.9.0 | Maßnahme 3 (Weg B + ` nullptr ` -Abschluss) + Testausbau | Umbau | ** erledigt 2026-08-19** — gebaut und getestet, Abnahme am Gerät steht aus |
29+ | 3.8.2 | Maßnahme 2 (retained ` Online ` ) + K3 (Publish-Wiederholung) | Fix | ** erledigt 2026-08-19** — in 3.9.0 enthalten, nicht einzeln ausgerollt |
30+ | 3.9.0 | Maßnahme 3 (Weg B + ` nullptr ` -Abschluss) + Testausbau | Umbau | ** erledigt 2026-08-19** — am Gerät abgenommen, auf beiden Stufen ausgerollt |
3131| — | K2 (Beobachtungsauftrag), K4 (bekannte Grenze) | Entscheid | ** entschieden 2026-08-19** — keine Codeänderung |
3232| — | CI-Trigger nur noch ` main ` | Aufräumen | ** erledigt 2026-08-19** |
3333
@@ -311,6 +311,45 @@ Repository sind Actions-Minuten frei; der Gewinn ist weniger Lauf-Rauschen.
311311
312312---
313313
314+ ## Rollout 3.9.0 — erledigt (2026-08-19)
315+
316+ ** Direkt auf 3.9.0, ohne 3.8.2 als Zwischenschritt.** Ein eigener 3.8.2-Rollout
317+ hätte keinen zusätzlichen Nachweis gebracht: Das Retain-Verhalten zeigt der
318+ ioBroker-Adapter nicht, und die Publish-Wiederholung wird erst bei einer
319+ MQTT-Unterbrechung sichtbar. Die ` /tablerefresh ` -Abnahme deckt genau das ab,
320+ was 3.9.0 an der Anzeige ändert. 3.8.2 ist trotzdem als Binärstand abgelegt,
321+ damit ein Rückfall um eine Stufe möglich bleibt.
322+
323+ | Stufe | Gerät | OTA | Ergebnis |
324+ | --- | --- | --- | --- |
325+ | 1 | 192.168.2.120 | 09:28 | 90 Zeilen ** identisch** , keine einzige Abweichung |
326+ | 2 | 192.168.2.122 | 09:29 | 90 Zeilen, ** eine** Abweichung: ` Eva_Outlet_Temp ` 21 → 22 °C (laufender Messwert) |
327+
328+ Beide Geräte meldeten sich rund sieben Sekunden nach dem Upload mit 3.9.0
329+ zurück, ` info/LWT ` stand unmittelbar danach wieder auf ` Online ` , die
330+ State-Topics liefen im 5-Sekunden-Takt weiter. Stufe 2 lief während des OTA im
331+ Warmwasserbetrieb (` Heatpump_State ` On, ` Operating_Mode_State ` DHW) und lief
332+ danach unverändert weiter.
333+
334+ Die 22 von Maßnahme 3 betroffenen Zeilen wurden zusätzlich einzeln angesehen —
335+ alle zeigen ihren erwarteten Klartext (` Off ` , ` Disabled ` , ` Blocked ` , ` Direct ` ,
336+ ` DHW ` …), keine leere Zelle und kein ` unknown ` . Letzteres ist der Normalfall:
337+ ` unknown ` erscheint nur bei einem Rohwert, den die Wärmepumpe bisher nie
338+ geliefert hat — genau dem Wert, der vorher zum Absturz geführt hätte.
339+
340+ Stabilitätskontrolle rund vier Minuten nach dem Flash: beide Geräte weiter auf
341+ 3.9.0, ` info/LWT ` unverändert seit dem Neustart (kein zwischenzeitlicher
342+ Reconnect, also kein Watchdog-Zyklus), und das 5-Minuten-Vollupdate hat auf
343+ Stufe 1 um 09:33:20 alle State-Topics erneut geschrieben. Dass die
344+ Zeitstempel dazwischen stehen bleiben, ist kein Befund, sondern das erwartete
345+ Verhalten: Publiziert wird nur bei Wertänderung oder mit dem Vollupdate.
346+
347+ Für die Abnahme entstand [ ` test/tablesnap.py ` ] ( test/tablesnap.py ) (holt
348+ ` /tablerefresh ` und gibt ` TOP<n>|Name|Wert|Klartext ` aus), damit der Vergleich
349+ ein ` diff ` ist statt Zeilenvergleich per Auge.
350+
351+ ---
352+
314353## Ausdrücklich geprüft und in Ordnung
315354
316355Damit die nächste Durchsicht nicht von vorn anfängt — diese Punkte wurden
0 commit comments