Files
audi-app/custom_components/audi_dashboard/services.yaml
T
tobias 17149937a6 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 <noreply@anthropic.com>
2026-08-27 11:44:24 +02:00

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: