Kia Connect & Home Assistant
Mein Auto ist mit Kia Connect ausgestattet, d.h. es telefoniert nach Hause, in die Herstellercloud. Kia bietet eine Handy-App an, mit der man auf die Daten zugreifen kann, und auch steuernd auf das Auto einwirken kann, um es beispielsweise aus der Ferne zu verriegeln. Ich nutze die Kia App selten.
Viel wichtiger für mich ist die Möglichkeit, Home Assistant nutzen zu können, und dann mit einer Integration auf die Kia-API zuzugreifen.
Die Integration für Home Assistant findet man unter: https://github.com/Hyundai-Kia-Connect/kia_uvo
Die Installation erfolgt über HACS oder wahlweise manuell, wie im o.g. Github-Repository beschrieben. Die Integration lief bei mir eine ganze Weile nicht. Nach einer Änderung der API musste man mit einem extra Script ein Token für den Zugriff generieren. Das hat bei mir nicht funktioniert. Mit der Version 3.4.0 der Integration funktioniert der Zugriff wieder einwandfrei, und man kann sich einfach mit seinen Zugangsdaten einloggen. Im Moment verwende ich die Version 3.15.0 zusammen mit Home Assistant in der Version 2026.9.1.
Die Einrichtung erfolgt über einen Wizard, der entsprechende Einstellungen abfragt. Das will ich hier aber nicht im Detail geschreiben. Es gibt genug Seiten zum Thema.
Kia Connect Entitäten
Bei meinem Fahrzeug stellt die Integration 72 Entitäten zur Verfügung, von denen einige nicht mit Daten befüllt werden. Eigentlich ist die Integration für E-Autos ausgelegt, und für einen Verbrenner werden nur anteilig Daten zur Verfügung gestellt. Die für mich wichtigen Entitäten sind aber mit Daten befüllt.
Wie man im Bild oben sieht, habe ich ein Problem mit den beiden vorderen Reifen. Das Problem liegt irgendwo in den Sensoren, die Reifen haben jedenfalls den richtigen Druck. Das Cockpit im Auto leuchtet derzeit wie ein Weihnachtsbaum. Die Werkstatt wird es richten…
Berechnungen für Wartungen
Um meine 7-Jahres-Garantie nicht zu verlieren, bin ich gezwungen die Inspektionstermine strickt einzuhalten. Da unser Wagen viel gefahren wird, muss ich eher auf den Kilometerstand als auf den zeitlichen Rahmen achten.
Eingangsgrößen für Berechnungen sind also der aktuelle Kilometerstand und die beiden Kilometerstände für Ölwechsel und Inspektion. Die Odometer-Entität sensor_kia.odometer liefert den Kilometerstand. Dazu gibt es drei Helfer-Entitäten:
- Kilometerstand für Ölwechsel:
input_number.kfz_oil - Kilometerstand für Inspektion:
input_number.kfz_inspektion - gefahrene Tageskilometer:
input_number.kfz_km_tag
1{% set kmstand = states('sensor.kia_odometer')|int %}
2{% set tageskm = states('input_number.kfz_km_tag')|int %}
3{% set checkoil = states('input_number.kfz_oil')|int %}
4{% set inspektion = states('input_number.kfz_inspektion')|int %}
5{% set zeitstempel = as_timestamp(now()) | int %}
6{% set oilkm = (checkoil - kmstand)|int %}
7{% set tageoil = (oilkm / tageskm) | int %}
8{% set tageoilunix = (tageoil * 86400) | int %}
9{% set datum_oil = zeitstempel + tageoilunix %}
10{% set inspkm = (inspektion - kmstand)|int %}
11{% set tageinsp = (inspkm / tageskm)|int %}
12{% set tageinspunix = (tageinsp * 86400) | int %} {% set datum_insp = zeitstempel + tageinspunix %}
13
14
15Kilometerstand: {{ kmstand }} km
16
17### Ölwechsel
18Nächster Ölwechsel bei {{checkoil}} km in **{{oilkm}}** km
19Bei {{tageskm}} km am Tag ist der Kilometerstand in **{{tageoil}}** Tagen erreicht.
20Der vorausberechnete Termin für den Ölwechsel ist: **{{ datum_oil | timestamp_custom("%d.%m.%Y",false) }}**
21
22### Inspektion
23Nächste Inspektion bei {{inspektion}} km in **{{inspkm}}** km
24Bei {{tageskm}} km am Tag ist der Kilometerstand in **{{tageinsp}}** Tagen erreicht.
25Der vorausberechnete Termin für die Inspektion ist: **{{ datum_insp | timestamp_custom("%d.%m.%Y",false) }}**In den ersten vier Zeilen lage ich nur die Werte in die entsprechenden Variablen. Die Variable zeitstempel enthält den Unix-Timestamp mit dem weiter gerechnet wird. In oilkm werden die Kilometer hinterlegt, die bis zum Ölwechsel gefahren werden können. Diese werden dann durch die Tageskilometer tageskm geteilt und heraus kommen die Tage tageoil die noch bis zum Ölwechsel verbleiben. Das Ergebnis wird dann mit tageoilunix = (tageoil * 86400) in Sekunden umgerechnet, um es dann mit datum_oil = zeitstempel + tageoilunix zum aktuellen Zeitstempel hinzuzuaddieren. Der Wert in datum_oil ist dann der Tag, an dem der Ölwechsel fällig wird.
Mit datum_insp | timestamp_custom("%d.%m.%Y",false) wird der Zeitstempel wieder in ein Datum umformatiert. Identisch funktioniert das Ganze mit dem Inspektionstermin.
Man kann alles wahrscheinlich schöner und kompakter zusammenbauen, aber für mich ist die Übersichtlichkeit so besser.
Standortbestimmung
Die Integration liefert zwei Entitäten, die auch Ortsangaben enthalten. Die Entität sensor.kia_data enthält alle Daten die zur Verfügung stehen, darunter auch die vehicleLocation mit Koordinaten in lat und lon. Diese könnte man entsprechend weiterverwenden. Ich nutze allerdings die Entität Geocoded Location die den Längen- und Breitengrad in eine Adresse in Form von
1address:
2 house_number: 1234
3 road: Teststrasse
4 suburb: Osterholz
5 city_district: Bremen-Ost
6 city: Bremen
7 state: Bremen
8 ISO3166-2-lvl4: DE-HB
9 postcode: '28307'
10 country: Deutschland
11 country_code: de
12icon: mdi:map
13friendly_name: Geocoded Locationdarstellt. Ich lege das Auto als Person in Home Assistant an, und wähle dann die Entität Geocoded Location für den Device Tracker aus. Damit trackt Home Assistant dann das Auto. Über die Einstellungen » Zonen habe ich entsprechende Zonen angelegt, der Device Tracker dann verwendet. Dadurch wird dann z.B. bei der Entität Location, ganz oben im ersten Bild, ‘Zuhause’ angezeigt. Damit triggere ich verschiedene Automationen. Damit sind wir auch bei dem Teil angekommen, der nicht so gut funktioniert.
Die Update-Raten der Kia-API sind eher langsam, um das Auto kontinuierlich zu tracken. Bei der Einrichtung der Integration kann man Einstellungen für Refresh-Intervalle vornehmen, und man könnte auch über die Force Refresh-Funktion ein Update vom Auto erzwingen, aber wahrscheinlich finde Kia das eher unschön. Strapaziert man die API zu sehr, wird man wahrscheinlich gesperrt. Daher bin ich zufrieden mit dem, was die Integration hergibt.
Die blauen Punkte auf den Kartenausschnitt sind übrigens Tankstellen die ich via Tankerkönig Abfrage. Doch dazu später mehr…