Meldung verschwindet durch das Neuladen, zu dem sie auffordert

Vorgabe des Eigentuemers: klarer Zustand statt einer Meldung, die auch nach
dem Neuladen stehenbleibt.

Panel: nach einem Update ohne Neustart wird der Sidebar-Eintrag mit der neuen
Versionsnummer neu angemeldet (koordinator.panel_neu_anmelden) - ohne das
traegt die Modul-URL weiter die alte Nummer. Das Panel vergleicht jetzt die
Version aus seiner Modul-URL mit der von der Platte gelesenen: sind sie
gleich, laeuft es bereits auf der installierten Fassung und die Meldung
entfaellt. Sie verschwindet damit genau durch das Neuladen, zu dem sie
auffordert.

App: fuer ein Update ohne Neustart erscheint gar nichts mehr. Geaendert wurden
Dateien des Panels; die App hat hier nichts zu tun. Damit gilt durchgehend:
keine Meldung = alles in Ordnung, Neustart-Knopf = handeln.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 15:26:19 +02:00
parent 0e6e7fa9ba
commit 462970251e
7 changed files with 58 additions and 12 deletions
@@ -83,7 +83,12 @@ from .const import (
E_REIFEN_WINTER,
E_TANKVORGAENGE,
E_ZUORDNUNG,
PANEL_ICON,
PANEL_KOMPONENTE,
PANEL_TITEL,
PANEL_URL,
SIGNAL_AKTUALISIERT,
STATIK_URL,
)
from .veroeffentlichung import (
fahrzeugstatus,
@@ -695,6 +700,34 @@ class Koordinator:
_LOGGER.info("Version nach Update: %s -> %s", self.version, neu)
self.version = neu
async def panel_neu_anmelden(self) -> None:
"""Meldet den Sidebar-Eintrag mit der aktuellen Versionsnummer neu an.
Noetig nach einem Update OHNE Neustart: die Modul-URL traegt die Version
als Cache-Brecher (`?v=`), und die stammt vom Anmelden beim Einrichten.
Ohne diesen Schritt bliebe dort die alte Nummer stehen - und das Panel
koennte nicht erkennen, ob es bereits die neuen Dateien ausfuehrt.
Genau darauf beruht die Meldung "Seite neu laden", die nach dem Neuladen
verschwinden soll (Vorgabe des Eigentuemers, 05.09.2026).
Die statische Route bleibt unberuehrt - sie zeigt auf einen Ordner,
dessen Inhalt sich geaendert hat, nicht auf einzelne Dateien."""
from homeassistant.components import frontend, panel_custom
frontend.async_remove_panel(self.hass, PANEL_URL)
await panel_custom.async_register_panel(
self.hass,
frontend_url_path=PANEL_URL,
webcomponent_name=PANEL_KOMPONENTE,
sidebar_title=PANEL_TITEL,
sidebar_icon=PANEL_ICON,
module_url=f"{STATIK_URL}/audi-dashboard-panel.js?v={self.version}",
embed_iframe=False,
require_admin=False,
config={"version": self.version, "statik": STATIK_URL},
)
_LOGGER.info("Panel mit Version %s neu angemeldet", self.version)
async def app_version_veroeffentlichen(self) -> None:
buendel = await self.hass.async_add_executor_job(self._buendel_lesen)
bildstaende = await bilder.staende(