flespi: kein sleep_mode-Schreiben ohne bekannten Modus
Am laufenden System ausgeloest: nach einem "Jetzt lesen" - das leert flespis Zwischenspeicher - kannte der Schreibweg das mode-Objekt nicht mehr und schickte einen timeout ohne type. flespi lehnt das mit 400 ab (the following properties are missing: type). Der else-Zweig ist ersatzlos weg. Ist das mode-Objekt samt type unbekannt, wird gar nicht geschrieben und der Grund gemeldet. Der zweite Grund wiegt schwerer als der 400er: type IST der Schlafmodus (2 = Deep Sleep, 4 = Ultra Deep Sleep). Ihn zu erraten hiesse, den Schlafmodus des Dongles zu verstellen - das darf ohne ausdrueckliche Freigabe nie passieren. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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": [
|
||||
|
||||
Reference in New Issue
Block a user