diff --git a/custom_components/audi_dashboard/flespi.py b/custom_components/audi_dashboard/flespi.py index c19954e..2da73db 100644 --- a/custom_components/audi_dashboard/flespi.py +++ b/custom_components/audi_dashboard/flespi.py @@ -546,12 +546,26 @@ async def schlaf_timeout_schreiben(k: Koordinator, minuten: int) -> dict: # Das ganze Objekt zurückschreiben, nur mit geändertem Feld: `type` und die # übrigen Felder gehören dazu und dürfen beim Schreiben nicht verlorengehen. + # + # Kennen wir das Objekt nicht, wird NICHT geschrieben. Zwei Gründe, und der + # zweite wiegt schwerer: + # + # 1. flespi lehnt ein `mode` ohne `type` ab (400, "the following properties + # are missing: type"). Bis zum 05.09.2026 schickte der else-Zweig genau + # das - am laufenden System ausgelöst, weil "Jetzt lesen" den + # Zwischenspeicher leert und damit den vorigen Wert entfernt. + # 2. `type` IST der Schlafmodus (2 = Deep Sleep, 4 = Ultra Deep Sleep). Ihn + # zu erraten hiesse, den Schlafmodus des Geräts zu verstellen - das darf + # ohne ausdrückliche Freigabe des Eigentümers nie passieren. Lieber gar + # nicht schreiben und es sagen. alt = (_roh(vorher_roh, SCHLAF_NAME) or {}).get(SCHLAF_OBJEKT) - neu = ( - {**alt, SCHLAF_FELD: minuten} - if isinstance(alt, dict) - else {SCHLAF_FELD: minuten} - ) + if not isinstance(alt, dict) or "type" not in alt: + raise FlespiFehler( + "Der Schlafmodus des Geräts ist gerade unbekannt - ohne ihn würde ein " + "Schreiben den Modus selbst verstellen. Erst \"Jetzt lesen\", sobald sich " + "der Dongle das nächste Mal meldet, dann erneut versuchen." + ) + neu = {**alt, SCHLAF_FELD: minuten} await _anfrage( k.hass, token, diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index 52e851d..2f3bf60 100644 --- a/custom_components/audi_dashboard/manifest.json +++ b/custom_components/audi_dashboard/manifest.json @@ -1,7 +1,7 @@ { "domain": "audi_dashboard", "name": "Audi Dashboard", - "version": "2026.9.5.29", + "version": "2026.9.5.30", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": [