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:
@@ -797,16 +797,16 @@ export function Einstellungen({
|
||||
</span>
|
||||
</div>
|
||||
) : integrationUpdate?.installiert && integrationUpdate.neustart_noetig === false ? (
|
||||
/* Kein Knopf. Geändert wurden Dateien unter frontend/, und das sind
|
||||
die des PANELS - die App lädt ihren eigenen Code aus /local/dmapp
|
||||
bzw. aus der nativen Hülle. Ein "App neu laden" stand hier bis zum
|
||||
05.09.2026 und versprach etwas, das es nicht einlösen konnte
|
||||
(vom Eigentümer im Bild bemerkt). Kam ein neues OTA-Bündel mit,
|
||||
erscheint es im Abschnitt "App" darunter als eigenes Update. */
|
||||
<p className="dm-erklaerung">
|
||||
Version {integrationUpdate.version} installiert - nur Oberflächendateien, kein
|
||||
Neustart nötig. Das Panel lädt sie beim nächsten Öffnen.
|
||||
</p>
|
||||
/* Gar keine Meldung. Geändert wurden Dateien unter frontend/, und das
|
||||
sind die des PANELS - die App lädt ihren eigenen Code aus
|
||||
/local/dmapp bzw. aus der nativen Hülle und hat hier nichts zu tun.
|
||||
|
||||
Damit gilt in der App durchgehend: steht hier nichts, ist alles in
|
||||
Ordnung; steht ein Neustart-Knopf da, muss ich handeln (Vorgabe des
|
||||
Eigentümers, 05.09.2026). Ein "App neu laden" stand hier kurzzeitig
|
||||
und versprach etwas, das es nicht einlösen konnte. Kam ein neues
|
||||
OTA-Bündel mit, erscheint es im Abschnitt "App" darunter. */
|
||||
<></>
|
||||
) : integrationUpdate?.installiert ? (
|
||||
<>
|
||||
<p className="dm-erklaerung">
|
||||
|
||||
@@ -373,6 +373,11 @@ def registrieren(hass: HomeAssistant, k: Koordinator) -> None:
|
||||
# Ohne Neustart bleibt Home Assistants zwischengespeichertes
|
||||
# Manifest stehen - die neue Nummer muss von der Platte kommen.
|
||||
await k.version_neu_lesen()
|
||||
# Und die Modul-URL des Panels muss sie tragen, sonst kann das
|
||||
# Panel nach dem Neuladen nicht erkennen, dass es bereits die
|
||||
# neuen Dateien ausfuehrt - und die Meldung "Seite neu laden"
|
||||
# bliebe stehen.
|
||||
await k.panel_neu_anmelden()
|
||||
k.letzte_update_pruefung = {
|
||||
"verfuegbar": False,
|
||||
"version": ergebnis["version"],
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":"2026.9.5.27","sha256":"5836c846fb2101a5bad105169bcd2bbf1c3fbc12a0b3ab9e82283981629f7d61","bytes":324623,"gebaut":"2026-09-05T13:14:44Z"}
|
||||
{"version":"2026.9.5.28","sha256":"435ee2ed681fc0a15957f232f865e52c10794624608b5fc53806c97a8da7e566","bytes":324577,"gebaut":"2026-09-05T13:26:14Z"}
|
||||
Binary file not shown.
@@ -3750,6 +3750,14 @@ function vEinst() {
|
||||
cache_headers=False - der Browser holt sie beim naechsten Laden
|
||||
ohnehin frisch. Nur geaenderter Python-Code braucht wirklich einen
|
||||
Neustart (Abschnitt CZ in AGENTS.md). */
|
||||
/* Laeuft das Panel bereits auf der installierten Fassung, ist nichts
|
||||
mehr zu tun - die Meldung verschwindet damit genau durch das
|
||||
Neuladen, zu dem sie auffordert. CSS_VERSION ist die Version aus der
|
||||
Modul-URL (beim Anmelden gesetzt, nach einem Update ohne Neustart neu
|
||||
angemeldet), APP_VERSION die von der Platte gelesene. */
|
||||
if (u.neustart_noetig === false && String(CSS_VERSION) === String(APP_VERSION)) {
|
||||
return "";
|
||||
}
|
||||
if (u.neustart_noetig === false) {
|
||||
return `<span style="display:block;margin-top:8px;color:var(--fg2);font-size:13px;line-height:1.6">
|
||||
Version ${esc(u.version)} installiert - nur Oberflächendateien, kein Neustart nötig.</span>
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"domain": "audi_dashboard",
|
||||
"name": "Audi Dashboard",
|
||||
"version": "2026.9.5.27",
|
||||
"version": "2026.9.5.28",
|
||||
"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