Batteriespannungs-Messwertliste, Wisch-Löschen, Reifensatz-Archiv, CI-Icons
Fünf vom Nutzer angeforderte Erweiterungen in einer Runde:
- Batteriespannungs-Kachel bekommt eine Messwertliste (Datum, Uhrzeit,
Spannung, optional Außentemperatur über den neuen AUSSENTEMP_SENSOR),
erreichbar über ein neues list-s-Symbol in der Diagramm-Kachel. Werte
über AGM_RUHE_MAX_V (12,8 V) sind keine Ruhespannung, sondern
Lichtmaschinenspannung - die Zeile markiert das jetzt mit
"Generatorspannung" statt es unkommentiert als Messwert auszugeben.
- Jede Zeile der neuen Liste wischbar zum Löschen (neuer Dienst
batterieverlauf_loeschen), über dieselbe Wisch-Mechanik wie Fahrten/
Tankvorgänge in beiden Oberflächen.
- Batteriespannungs-Diagramm im Panel war auf großen Bildschirmen (≥860px,
Spaltenlayout) stark in die Breite gezogen (preserveAspectRatio="none"
bei fester Höhe) - gedeckelt wie die dort bereits vorhandenen Popups.
- Statistik-Tab-Symbol in beiden Oberflächen durch das Audi-CI-Symbol
polls-s ersetzt.
- Neue Möglichkeit, einen Reifensatz zu archivieren ("Neue Räder
anlegen"): der aktuelle Stand (km, Marke, Modell, DOT, Maße, Solldruck,
Kommentar) wandert in ein Archiv, der laufende Satz beginnt bei 0 km neu.
Archiv als aufklappbare Übersicht mit voller Bearbeitungsmöglichkeit,
über drei neue, bewusst nicht über profilSchreiben laufende Dienste
(reifen_archivieren/-aktualisieren/-loeschen) - aus demselben Grund wie
reifen_wechseln: kein im Browser gehaltener Stand darf einen
zwischenzeitlich fortgeschriebenen km-Wert überschreiben.
Live im Testcontainer geprüft (erstmals über :18123 statt :8123 erreichbar)
und dabei zwei echte Layout-Fehler gefunden, die kein Compile-/Testlauf
sehen konnte: die Archiv-Eingabefelder waren durch ein fälschlich
verwendetes .mitEinheit (feste 96px-Breite, eigentlich für Zahl+Einheit
gedacht) abgeschnitten ("Continenta" statt "Continental"), und die
Kilometerzahl in der eingeklappten Archiv-Zeile war klein an das Datum
gequetscht statt wie der Satzname lesbar. Beides behoben, live erneut
bestätigt.
Backend: py_compile clean, services.yaml ergänzt. Panel: node --check
clean. companion-app: tsc/Testsuite (146/146)/Build/OTA-Bündel alle grün.
Manifest 2026.8.25.2 → .8, jeder Neustart im Testcontainer sauber.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -28,6 +28,7 @@ from homeassistant.helpers import config_validation as cv
|
||||
|
||||
from . import (
|
||||
aktualisierung,
|
||||
batterie,
|
||||
belege,
|
||||
bilder,
|
||||
fahrterkennung,
|
||||
@@ -41,6 +42,7 @@ from .const import (
|
||||
CONF_GITEA_TOKEN,
|
||||
D_BACKUP_JETZT,
|
||||
D_BACKUP_WIEDERHERSTELLEN,
|
||||
D_BATTERIEVERLAUF_LOESCHEN,
|
||||
D_BELEG_HOCHLADEN,
|
||||
D_BILD_HOCHLADEN,
|
||||
D_BILD_LOESCHEN,
|
||||
@@ -51,6 +53,9 @@ from .const import (
|
||||
D_HISTORIE_IMPORTIEREN,
|
||||
D_JETZT_AKTUALISIEREN,
|
||||
D_PROFIL_SCHREIBEN,
|
||||
D_REIFEN_ARCHIV_AKTUALISIEREN,
|
||||
D_REIFEN_ARCHIV_LOESCHEN,
|
||||
D_REIFEN_ARCHIVIEREN,
|
||||
D_REIFEN_KM_SETZEN,
|
||||
D_REIFEN_WECHSELN,
|
||||
D_SCREENING_JETZT,
|
||||
@@ -94,6 +99,18 @@ _TANK_FELDER = {
|
||||
vol.Optional("receipt_file"): _TEXT,
|
||||
}
|
||||
|
||||
_REIFEN_ARCHIV_FELDER = {
|
||||
vol.Optional("ersetzt_am"): _TEXT,
|
||||
vol.Optional("km"): _ZAHL,
|
||||
vol.Optional("marke"): _TEXT,
|
||||
vol.Optional("modell"): _TEXT,
|
||||
vol.Optional("dot"): _TEXT,
|
||||
vol.Optional("mass"): _TEXT,
|
||||
vol.Optional("druck_vorne"): _TEXT,
|
||||
vol.Optional("druck_hinten"): _TEXT,
|
||||
vol.Optional("kommentar"): _TEXT,
|
||||
}
|
||||
|
||||
SCHEMATA: dict[str, vol.Schema] = {
|
||||
D_JETZT_AKTUALISIEREN: vol.Schema({}),
|
||||
D_SCREENING_JETZT: vol.Schema({}),
|
||||
@@ -132,6 +149,12 @@ SCHEMATA: dict[str, vol.Schema] = {
|
||||
vol.Required("satz"): vol.In(reifen.SAETZE),
|
||||
vol.Required("km"): vol.Coerce(float),
|
||||
}),
|
||||
D_REIFEN_ARCHIVIEREN: vol.Schema({vol.Required("satz"): vol.In(reifen.SAETZE)}),
|
||||
D_REIFEN_ARCHIV_AKTUALISIEREN: vol.Schema({
|
||||
vol.Required("id"): cv.string, **_REIFEN_ARCHIV_FELDER
|
||||
}),
|
||||
D_REIFEN_ARCHIV_LOESCHEN: vol.Schema({vol.Required("id"): cv.string}),
|
||||
D_BATTERIEVERLAUF_LOESCHEN: vol.Schema({vol.Required("datum"): cv.string}),
|
||||
D_BACKUP_WIEDERHERSTELLEN: vol.Schema({
|
||||
vol.Optional("profil_json"): _JSON,
|
||||
vol.Optional("fahrten_json"): _JSON,
|
||||
@@ -320,6 +343,16 @@ def registrieren(hass: HomeAssistant, k: Koordinator) -> None:
|
||||
D_REIFEN_KM_SETZEN: _als_dienst(
|
||||
lambda a: reifen.km_setzen(k, a.data["satz"], a.data["km"])
|
||||
),
|
||||
D_REIFEN_ARCHIVIEREN: _als_dienst(lambda a: reifen.archivieren(k, a.data["satz"])),
|
||||
D_REIFEN_ARCHIV_AKTUALISIEREN: _als_dienst(
|
||||
lambda a: reifen.archiv_aktualisieren(k, a.data["id"], dict(a.data))
|
||||
),
|
||||
D_REIFEN_ARCHIV_LOESCHEN: _als_dienst(
|
||||
lambda a: reifen.archiv_loeschen(k, a.data["id"])
|
||||
),
|
||||
D_BATTERIEVERLAUF_LOESCHEN: _als_dienst(
|
||||
lambda a: batterie.eintrag_loeschen(k, a.data["datum"])
|
||||
),
|
||||
D_BACKUP_JETZT: _als_dienst(lambda _a: sicherung.jetzt(k)),
|
||||
D_BACKUP_WIEDERHERSTELLEN: _als_dienst(
|
||||
lambda a: sicherung.wiederherstellen(k, dict(a.data))
|
||||
|
||||
Reference in New Issue
Block a user