Kia e-Niro in Home Assistant: de Kia Connect-koppeling en het loginprobleem

·

Illustratie van een laptop die via een sleutel en een thuisserver verbinding maakt met de cloud, met een slot met vinkje naar een elektrische auto aan de laadpaal

Onze Kia e-Niro hangt via Kia Connect in Home Assistant. Daarmee zie ik de accustand, het bereik en of de stekker erin zit, en kan ik de auto op afstand wekken. Maar op een dag kon de integratie niet meer inloggen. Kia heeft een reCAPTCHA aan de Europese login toegevoegd, en die kan Home Assistant niet oplossen. De oplossing: eenmalig zelf inloggen in een browser en een refresh token gebruiken in plaats van je wachtwoord.

De koppeling: kia_uvo

Ik gebruik de community-integratie Kia Uvo / Hyundai Bluelink. Die praat met dezelfde servers als de Kia Connect-app, via de Python-bibliotheek hyundai_kia_connect_api. Installeren gaat via HACS:

  1. Open HACS en zoek op Kia Uvo.
  2. Download de integratie en herstart Home Assistant.
  3. Ga naar Instellingen → Apparaten en diensten → Integratie toevoegen en kies Kia Uvo.
  4. Kies regio Europe en merk Kia.

Daarna krijg je een apparaat met tientallen entiteiten. De belangrijkste voor mij:

  • EV Battery Level: de accustand van de tractiebatterij.
  • EV Range: het geschatte bereik.
  • EV Battery Plug en EV Battery Charge: zit de stekker erin, en laadt hij?
  • AC/DC Charging Limit: het laaddoel in de auto, als schuifregelaar.
  • Car Battery Level: de 12V-accu. Handig om in de gaten te houden.
  • Last Updated At: hoe oud de gegevens zijn.
Home Assistant-dashboard met de entiteiten van de Kia e-Niro uit de kia_uvo-integratie, zoals laadlimieten, deurslot, accustand, bereik en bandenspanning
De e-Niro in Home Assistant: laadlimieten en deurslot links, alle sensoren in het midden.

Daarnaast zijn er acties, zoals kia_uvo.start_charge. Die gebruik ik om de auto te wekken als hij na een pauze niet meer laadt.

Let op met verversen

De integratie haalt standaard elke 30 minuten de gegevens op die op de Kia-servers staan. Dat zijn de laatst bekende waarden, niet live. In mijn dashboard stond “Last Updated At” op 17 uur geleden; dat is normaal als de auto stilstaat. Een force refresh vraagt de auto zelf om nieuwe data. Dat gebeurt standaard elke 4 uur, behalve ’s nachts. Zet dat niet te vaak: elke keer wordt de auto wakker, dat kost 12V-accu, en Kia heeft een daglimiet op commando’s.

Het loginprobleem

Kia vraagt bij het inloggen in Europa nu om een Google reCAPTCHA. Een mens klikt die weg; een Python-integratie kan dat niet. Inloggen met e-mailadres en wachtwoord in Home Assistant mislukt dus. De integratie geeft een authenticatiefout en de entiteiten worden onbeschikbaar.

De makers van de bibliotheek beschrijven de oplossing in de wiki: Kia Europe Login Flow. Je logt één keer zelf in, in een echte browser. Dat levert een refresh token op. Dat token vul je in Home Assistant in op de plek van je wachtwoord.

De oplossing: een refresh token ophalen

Op Windows gaat het met een Selenium-script uit de wiki. Je hebt Google Chrome nodig en Python 3.10 of nieuwer. Open PowerShell:

mkdir $env:TEMP\kia
cd $env:TEMP\kia
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install selenium requests webdriver-manager

# Download KiaFetchApiTokensSelenium.py via de link in de wiki, daarna:
py .\KiaFetchApiTokensSelenium.py

Het script opent een Chrome-venster dat zich voordoet als de Kia-app. Log daar in met je Kia-account en los de reCAPTCHA op. Laat het venster open tot het klaar is. Daarna print het script een Refresh Token en een Access Token. Je hebt alleen de refresh token nodig.

Voor Mac en Linux staat in dezelfde wiki een variant. Op een server zonder scherm, zoals een Raspberry Pi, gaat het handmatig: je opent de URL’s uit het script zelf in je browser en plakt de laatste redirect-URL terug.

Invullen in Home Assistant

Voeg de integratie opnieuw toe, of kies bij de bestaande integratie Opnieuw configureren:

  • Regio: Europe
  • Merk: Kia
  • Gebruikersnaam: het e-mailadres van je Kia-account
  • Wachtwoord: de refresh token, niet je Kia-wachtwoord
  • PIN: alleen als de integratie erom vraagt

Daarna komen de entiteiten weer binnen. Bij mij werkten de sensoren en het wekcommando direct weer.

Behandel het token als een wachtwoord

Met de refresh token heeft iemand volledige toegang tot je Kia-account en dus tot je auto: deuren, klimaat, laden en locatie. Bewaar hem in een wachtwoordmanager en plak hem nergens openbaar, ook niet in een issue of forum. Denk je dat hij gelekt is? Log in de Kia-app alle sessies uit en haal een nieuw token op.

De les

Een koppeling met een cloud van een fabrikant is geen vaste grond. Kia kan de login op elk moment veranderen, en dan valt je automatisering stil. Houd daarom in de gaten hoe oud de gegevens zijn, en zorg dat je sturing niet stukgaat als de auto even onbekend is. Zo doe ik dat ook in de rest van mijn bewaking.


Dit werkt in mijn situatie: een Kia e-Niro in Europa, Home Assistant met de kia_uvo-integratie uit HACS, en een token opgehaald op Windows. Kia kan de loginflow opnieuw aanpassen. Controleer het tegen je eigen documentatie en de actuele wiki.


Lees ook


Reacties

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *