17149937a6
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 <noreply@anthropic.com>
316 lines
6.3 KiB
YAML
316 lines
6.3 KiB
YAML
# Felder und Eingabehilfen für Entwicklerwerkzeuge -> Aktionen.
|
|
# Namen und Beschreibungen stehen in strings.json bzw. translations/, nicht
|
|
# hier - so steht jeder Text genau einmal.
|
|
#
|
|
# Beide Oberflächen rufen diese Dienste über die WebSocket- bzw. REST-API auf
|
|
# und brauchen diese Datei nicht. Sie ist dafür da, dass die Dienste in Home
|
|
# Assistant selbst bedienbar und nachvollziehbar sind - zum Nachschauen, zum
|
|
# Ausprobieren und für eigene Automationen des Nutzers.
|
|
|
|
jetzt_aktualisieren:
|
|
screening_jetzt:
|
|
backup_jetzt:
|
|
update_pruefen:
|
|
update_installieren:
|
|
|
|
profil_schreiben:
|
|
fields:
|
|
profil_json:
|
|
required: true
|
|
selector:
|
|
object:
|
|
|
|
entitaeten_schreiben:
|
|
fields:
|
|
zuordnung_json:
|
|
required: true
|
|
selector:
|
|
object:
|
|
|
|
fahrt_manuell_anlegen:
|
|
fields:
|
|
ts_start:
|
|
required: true
|
|
example: "2026-08-23T07:30:00+02:00"
|
|
selector:
|
|
text:
|
|
ts_end:
|
|
required: true
|
|
example: "2026-08-23T08:05:00+02:00"
|
|
selector:
|
|
text:
|
|
art:
|
|
selector:
|
|
select:
|
|
options: ["privat", "arbeitsweg"]
|
|
start_ort:
|
|
selector:
|
|
text:
|
|
ziel_ort:
|
|
selector:
|
|
text:
|
|
odo_start:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
odo_end:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
distanz:
|
|
selector:
|
|
number: { min: 0, max: 10000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
|
|
fahrt_aktualisieren:
|
|
fields:
|
|
trip_id:
|
|
required: true
|
|
example: t-4f2a91c30b7e
|
|
selector:
|
|
text:
|
|
ts_start:
|
|
selector:
|
|
text:
|
|
ts_end:
|
|
selector:
|
|
text:
|
|
art:
|
|
selector:
|
|
select:
|
|
options: ["privat", "arbeitsweg"]
|
|
start_ort:
|
|
selector:
|
|
text:
|
|
ziel_ort:
|
|
selector:
|
|
text:
|
|
odo_start:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
odo_end:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
distanz:
|
|
selector:
|
|
number: { min: 0, max: 10000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
|
|
fahrt_loeschen:
|
|
fields:
|
|
trip_id:
|
|
required: true
|
|
selector:
|
|
text:
|
|
|
|
beleg_hochladen:
|
|
fields:
|
|
pdf_base64:
|
|
required: true
|
|
selector:
|
|
text:
|
|
multiline: true
|
|
dateiname:
|
|
selector:
|
|
text:
|
|
tank_id:
|
|
selector:
|
|
text:
|
|
|
|
tankvorgang_manuell:
|
|
fields:
|
|
ts:
|
|
selector:
|
|
text:
|
|
liter:
|
|
selector:
|
|
number: { min: 0, max: 200, step: 0.01, mode: box, unit_of_measurement: L }
|
|
kosten:
|
|
selector:
|
|
number: { min: 0, max: 2000, step: 0.01, mode: box, unit_of_measurement: EUR }
|
|
km:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
ersparnis:
|
|
selector:
|
|
number: { min: 0, max: 500, step: 0.01, mode: box, unit_of_measurement: EUR }
|
|
station:
|
|
selector:
|
|
text:
|
|
distanz:
|
|
selector:
|
|
number: { min: 0, max: 10000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
kraftstoff:
|
|
selector:
|
|
text:
|
|
receipt_key:
|
|
selector:
|
|
text:
|
|
receipt_file:
|
|
selector:
|
|
text:
|
|
|
|
tankvorgang_aktualisieren:
|
|
fields:
|
|
tank_id:
|
|
required: true
|
|
selector:
|
|
text:
|
|
ts:
|
|
selector:
|
|
text:
|
|
liter:
|
|
selector:
|
|
number: { min: 0, max: 200, step: 0.01, mode: box, unit_of_measurement: L }
|
|
kosten:
|
|
selector:
|
|
number: { min: 0, max: 2000, step: 0.01, mode: box, unit_of_measurement: EUR }
|
|
km:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
ersparnis:
|
|
selector:
|
|
number: { min: 0, max: 500, step: 0.01, mode: box, unit_of_measurement: EUR }
|
|
station:
|
|
selector:
|
|
text:
|
|
distanz:
|
|
selector:
|
|
number: { min: 0, max: 10000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
kraftstoff:
|
|
selector:
|
|
text:
|
|
receipt_key:
|
|
selector:
|
|
text:
|
|
receipt_file:
|
|
selector:
|
|
text:
|
|
|
|
tankvorgang_loeschen:
|
|
fields:
|
|
tank_id:
|
|
required: true
|
|
selector:
|
|
text:
|
|
|
|
bild_hochladen:
|
|
fields:
|
|
dateiname:
|
|
required: true
|
|
example: seitenansicht.webp
|
|
selector:
|
|
text:
|
|
daten_base64:
|
|
required: true
|
|
selector:
|
|
text:
|
|
multiline: true
|
|
|
|
bild_loeschen:
|
|
fields:
|
|
dateiname:
|
|
required: true
|
|
selector:
|
|
text:
|
|
|
|
reifen_wechseln:
|
|
fields:
|
|
satz:
|
|
required: true
|
|
selector:
|
|
select:
|
|
options: ["sommer", "winter"]
|
|
|
|
reifen_km_setzen:
|
|
fields:
|
|
satz:
|
|
required: true
|
|
selector:
|
|
select:
|
|
options: ["sommer", "winter"]
|
|
km:
|
|
required: true
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
|
|
reifen_archivieren:
|
|
fields:
|
|
satz:
|
|
required: true
|
|
selector:
|
|
select:
|
|
options: ["sommer", "winter"]
|
|
|
|
reifen_archiv_aktualisieren:
|
|
fields:
|
|
id:
|
|
required: true
|
|
selector:
|
|
text:
|
|
ersetzt_am:
|
|
selector:
|
|
text:
|
|
km:
|
|
selector:
|
|
number: { min: 0, max: 2000000, step: 0.1, mode: box, unit_of_measurement: km }
|
|
marke:
|
|
selector:
|
|
text:
|
|
modell:
|
|
selector:
|
|
text:
|
|
dot:
|
|
selector:
|
|
text:
|
|
mass:
|
|
selector:
|
|
text:
|
|
druck_vorne:
|
|
selector:
|
|
text:
|
|
druck_hinten:
|
|
selector:
|
|
text:
|
|
kommentar:
|
|
selector:
|
|
text:
|
|
|
|
reifen_archiv_loeschen:
|
|
fields:
|
|
id:
|
|
required: true
|
|
selector:
|
|
text:
|
|
|
|
batterieverlauf_loeschen:
|
|
fields:
|
|
datum:
|
|
required: true
|
|
selector:
|
|
text:
|
|
|
|
backup_wiederherstellen:
|
|
fields:
|
|
profil_json:
|
|
selector:
|
|
object:
|
|
fahrten_json:
|
|
selector:
|
|
object:
|
|
tankvorgaenge_json:
|
|
selector:
|
|
object:
|
|
entitaeten_json:
|
|
selector:
|
|
object:
|
|
|
|
historie_importieren:
|
|
fields:
|
|
start:
|
|
required: true
|
|
example: "2026-01-01T00:00:00"
|
|
selector:
|
|
text:
|
|
ende:
|
|
required: true
|
|
example: "2026-08-23T00:00:00"
|
|
selector:
|
|
text:
|