NEWS
Adapter Hyundai (Bluelink) oder KIA (UVO)
-
@joo ne es sind zu viele und zu unterschiedliche pro Fahrzeug, wo ist das problem ?
@fichte_112 es gibt viele möglichkeiten ich bevorzuge die wo man sich nicht unbedingt anmelden muss
@arteck sagte in Adapter Hyundai (Bluelink) oder KIA (UVO):
wo ist das problem ?
Habe hier die Objekte aufgelistet, die mir noch ein Rätsel aufgeben
Objekte stammen von einem Hyundai Kona Bj. 2021
driveHistory.cumulated01 - monatliche Zusammenfassung?
driveHistory.cumulated02 - ? wöchentlich?
driveHistory.cumulated01.period - ?
driveHistory.cumulated01.regen - tippe auf rekuperierte Energie
monthlyReport.driving.durations.drive - Fahrzeit in ....Minuten?
monthlyReport.driving.durations.idle - Fahrzeug an, aber im Stand befindlich?
monthlyReport.driving.startCount - Wie oft das Fahrzeug eingeschaltet wurde?
vehicleStatusRaw.climate.steeringwheelHeat - zeigt öfters "true" obwohl Lenkradheizung nicht in Benutzung.
vehicleStatusRaw.engine.accessory - ?
vehicleStatusRaw.engine.batteryCharge12v - Value=75 - Scheint nicht der SOC zu sein, sondern?
vehicleStatusRaw.engine.batteryChargeHV - Value=50 - Ebenso hier. Soc ist aktuell auf 85%. Was sagt dieser Parameter?
vehicleStatusRaw.vehicleStatus.battery.sjbDeliveryMode - ?
vehicleStatusRaw.vehicleStatus.evStatus.reservChargeInfos.offpeakPowerInfo.offPeakPowerTime1.endtime.time - Value=1200 - ?
vehicleStatusRaw.vehicleStatus.evStatus.reservChargeInfos.offpeakPowerInfo.offPeakPowerTime1.starttime.time - Value=1200 - ?
vehicleStatusRaw.vehicleStatus.evStatus.reservChargeInfos.offpeakPowerInfo.offPeakPowerFlag - ?
vehicleStatusRaw.vehicleStatus.lampWireStatus.headLamp - Parameter scheinen nicht Licht an/aus zu repräsentieren, sondern einen Lampendefekt?
vehicleStatusRaw.vehicleStatus.acc - ?
vehicleStatusRaw.vehicleStatus.hazardStatus - ?
vehicleStatusRaw.vehicleStatus.ign3 - Fahrzeug ist aus, Parameter steht aber auf "true" ?
vehicleStatusRaw.vehicleStatus.systemCutOffAlert - ?
vehicleStatusRaw.vehicleStatus.transCond - ? -
Hallo zusammen,
irgendwie aktualisieren sich die Datenpunkte unterhalb der Tagestouren bei mir nicht. Unterhalb des Datenpunktes "today" stehen immer noch die Kilometerwerte von gestern drin.
Ein Aktualisieren vom Server und auch vom Auto gab ("refresh_from_server" und "refresh_from_car") auch keine neuen Werte aus. Ich bin aber heute (10.04.) schon mit dem Wagen gefahren. Ich habe einen KIA e-Niro.
-

ist dein freundansonsten werden die Werte einmal am Tag um kurz vor mitternacht automatisch abgerufen.
achte drauf sonst läufst du in die account sperre rein. wenn du zu viel abfragst und/oder du lutscht dir die 12V batterie leer -
H Homoran verschob dieses Thema von Tester am
-
H Homoran verschob dieses Thema von ...nicht in offiziellem Repo am
-
Hallo zusammen,
habt ihr aktuell auch Probleme mit dem Login? Version 3.1.26, hat die ganze Zeit funktioniert. Seit heute morgen erhalte ich permanent den Fehler "Server is not available or login credentials are wrong". Hat Hyundai da wieder was gebastelt oder ist es ein Problem mit meinem Token?
Beste Grüße
-
Bei mir keine Probleme. Mach halt mal nen neuen Token, frisst ja kein Gras.
-
Anleitung zur Erstellung eines Tokens für Hyundai oder KIA mit Windows
Python Releases for Windows installieren.
Google Chrome installierenIn der Konsole folgenden Befehl ausführen. (oder den Adapter Bluelink löschen)
rm -r /opt/iobroker/node_modules/bluelinky/Im Iobroker den Reiter Adapter anklicken. Dan den Expertenmodus aktivieren und die Katze anklicken.


Den Reiter Benutzerdefiniert auswählen und folgendes eintragen und installieren.
https://github.com/Newan/ioBroker.bluelink.gitJetzt Windows PowerShell mit administrativen Rechten starten.
Jetzt folgende Befehle nacheinander ausführen.
Set-ExecutionPolicy UnrestrictedA eingeben und mit Enter bestätigen.
mkdir $env:TEMP\token 2>$null; cd $env:TEMP\token$code = @" # Original authors: # Kia: fuatakgun (https://gist.githubusercontent.com/fuatakgun/fa4ef1e1d48b8dca2d22133d4d028dc9#gistfile1.txt) # Hyundai: Maaxion (https://gist.github.com/Maaxion/22a38ba8fb06937da18482ddf35171ac#file-gistfile1-txt) # import argparse import re from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException import requests import time def main(): """ Determine brand to get the refresh token for """ parser = argparse.ArgumentParser() parser.add_argument("--brand", help="Brand of vehicle (Hyundai/Kia)", type=str.lower, required=True, choices=['hyundai','kia']) args = parser.parse_args() """ Populate global variables """ BASE_URL = f"https://idpconnect-eu.{args.brand}.com/auth/api/v2/user/oauth2/" TOKEN_URL = f"{BASE_URL}token" if args.brand == 'kia': # Kia specific variables here CLIENT_ID = "fdc85c00-0a2f-4c64-bcb4-2cfb1500730a" CLIENT_SECRET = "secret" REDIRECT_URL_FINAL = "https://prd.eu-ccapi.kia.com:8080/api/v1/user/oauth2/redirect" SUCCESS_ELEMENT_SELECTOR = "a[class='logout user']" LOGIN_URL = f"{BASE_URL}authorize?ui_locales=de&scope=openid%20profile%20email%20phone&response_type=code&client_id=peukiaidm-online-sales&redirect_uri=https://www.kia.com/api/bin/oneid/login&state=aHR0cHM6Ly93d3cua2lhLmNvbTo0NDMvZGUvP21zb2NraWQ9MjM1NDU0ODBmNmUyNjg5NDIwMmU0MDBjZjc2OTY5NWQmX3RtPTE3NTYzMTg3MjY1OTImX3RtPTE3NTYzMjQyMTcxMjY=_default" elif args.brand == 'hyundai': # Hyundai specific variables CLIENT_ID = "6d477c38-3ca4-4cf3-9557-2a1929a94654" CLIENT_SECRET = "KUy49XxPzLpLuoK0xhBC77W6VXhmtQR9iQhmIFjjoY4IpxsV" REDIRECT_URL_FINAL = "https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/token" SUCCESS_ELEMENT_SELECTOR = "button.mail_check" LOGIN_URL = f"{BASE_URL}authorize?client_id=peuhyundaiidm-ctb&redirect_uri=https%3A%2F%2Fctbapi.hyundai-europe.com%2Fapi%2Fauth&nonce=&state=NL_&scope=openid+profile+email+phone&response_type=code&connector_client_id=peuhyundaiidm-ctb&connector_scope=&connector_session_key=&country=&captcha=1&ui_locales=en-US" REDIRECT_URL = f"{BASE_URL}authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URL_FINAL}&lang=de&state=ccsp" """ Main function to run the Selenium automation. """ # Initialize the Chrome WebDriver # Make sure you have chromedriver installed and in your PATH, # or specify the path to it. options = webdriver.ChromeOptions() options.add_argument("user-agent=Mozilla/5.0 (Linux; Android 4.1.1; Galaxy Nexus Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19_CCS_APP_AOS") options.add_argument("--auto-open-devtools-for-tabs") driver = webdriver.Chrome(options=options) driver.maximize_window() # 1. Open the login page print(f"Opening login page: {LOGIN_URL}") driver.get(LOGIN_URL) print("\n" + "="*50) print("Please log in manually in the browser window.") print("The script will wait for you to complete the login...") print("="*50 + "\n") try: wait = WebDriverWait(driver, 300) # 300-second timeout if args.brand == "kia": wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, SUCCESS_ELEMENT_SELECTOR))) else: wait.until(EC.any_of( EC.presence_of_element_located((By.CSS_SELECTOR, SUCCESS_ELEMENT_SELECTOR)), EC.presence_of_element_located((By.CSS_SELECTOR, "button.ctb_button")) ) ) print("✅ Login successful! Element found.") print(f"Redirecting to: {REDIRECT_URL}") driver.get(REDIRECT_URL) wait = WebDriverWait(driver, 15) # 15-second timeout current_url = "" tries_left = 10 redir_found = False while (tries_left > 0): current_url = driver.current_url print(f" - [{11 - tries_left}] Waiting for redirect URLwith code") if args.brand == "kia": if re.match(r'^https://.*:8080/api/v1/user/oauth2/redirect', current_url): redir_found = True break elif args.brand == "hyundai": if re.match(r'^https://.*:8080/api/v1/user/oauth2/token', current_url): redir_found = True break tries_left -= 1 time.sleep(1) if redir_found == False: print(f"\n❌ Failed to get redirected to correct URL, got {current_url} instead") code = re.search( r'code=([0-9a-fA-F-]{36}\.[0-9a-fA-F-]{36}\.[0-9a-fA-F-]{36})', current_url ).group(1) data = { "grant_type": "authorization_code", "code": code, "redirect_uri": REDIRECT_URL_FINAL, "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, } session = requests.Session() response = session.post(TOKEN_URL, data=data) if response.status_code == 200: tokens = response.json() if tokens is not None: refresh_token = tokens["refresh_token"] access_token = tokens["access_token"] print(f"\n✅ Your tokens are:\n\n- Refresh Token: {refresh_token}\n- Access Token: {access_token}") else: print(f"\n❌ Error getting tokens from der API!\n{response.text}") except TimeoutException: print("❌ Timed out after 5 minutes. Login was not completed or the success element was not found.") except Exception as e: print(f"An unexpected error occurred: {e}") time.sleep(3600) finally: print("Cleaning up and closing the browser.") driver.quit() if __name__ == "__main__": main() "@ $code | Out-File -FilePath "$env:TEMP\token\ApiToken.py" -Encoding UTF8py -m venv .venv.\.venv\Scripts\Activate.ps1pip install --upgrade pippip install selenium requests webdriver-managerpy -m pip install --upgrade pip selenium requestsAchtung jetzt nur den Befehl für Hyundai oder KIA verwenden!!!
für Hyundai
clspy .\ApiToken.py --brand hyundaifür KIA
clspy .\ApiToken.py --brand kiaHier geht es für beide weiter.
Jetzt sollte sich Chrome öffnen. Dort mit den Benutzerdaten einloggen.
Nun sollte im Fenster von PowerShell ein Refresh Token und ein Access Token erscheinen.
Diese mit der Maus markieren und mit Strg-C kopieren und in eine leere Textdatei mit Strg-V einfügen.
Der Refresh Token ist das Passwort für den Bluelink AdapterAls letztes kann nun noch die Ausführungsrichtlinien (Unrestricted) für PowerShell-Scripts entfernt und der temporäre Ordner gelöscht werden. Dazu in der Powershell die folgenden Befehle eingeben.
Set-ExecutionPolicy UndefinedA eingeben und mit Enter bestätigen.
cd..Remove-item $env:TEMP\tokenA eingeben und mit Enter bestätigen.
Viel Spass
@fichte_112 danke für die Anleitung, nachdem ich gestern auch 'rausgeflogen' bin, hat das gerade so wunderbar geklappt.
Leider habe ich es auch nicht mehr (siehe ggf. oben) nach meiner eigenen Anleitung hinbekommen. Ich hatte das damals am Mac gemacht, was nun aber nicht mehr funktioniert hat
Habe dann meinen alten WinPC 45 Minuten Updates ziehen lassen und dann das Ganze daran durchexerziert. Das ging dann gut.Frage dazu, da ich mir nun nicht ohne Not die Python-Umgebung auf den Mac ziehen wollte. Würde das Ganze da genauso funktionieren? - natürlich mit den richtigen Python-Paketen für MacOS.
-
Ich habe keinen Mac. Daher kann ich es nicht testen. Probiere es einfach mal aus und teile dein Ergebnis.
-
Püh jetzt geht mir das aber gerade auf die Nerven mit den KIA-Animositäten.
Der Adapter hat mir heute das Log vollgeschrieben mit:
bluelink.0 2026-04-20 16:34:46.257 info Update for KNACTxxxxxxxxxxxx successfull bluelink.0 2026-04-20 16:34:45.654 info Read new update for KNACTxxxxxxxxxxx from the serverDa das alles Infos waren, habe ich ihn dann auf Warnings umgestellt, was natürlich einen Adapterneustart erzeugt. Das Resultat davon war dann nun aber:
bluelink.0 2026-04-20 19:20:34.387 error next auto login attempt in 1 hour or restart adapter manual bluelink.0 2026-04-20 19:20:34.387 error Server is not available or login credentials are wrong bluelink.0 2026-04-20 19:20:34.386 error ManagedBluelinkyError: @EuropeController.login: [400] Bad Request on [POST] https://prd.eu-ccapi.kia.com:8080/api/v1/spa/notifications/register - {"retCode":"F","resCode":"4002","resMsg":"Invalid request body - service problem, because of anything problem","msgId":"xxxxxxxxxxxxxxx"}Habe den Adapter 3x neu gestartet aber es bleibt dabei

Sehe ich das nun richtig, dass ich mir nun schon wieder ein neues Token generieren muss?Edit:
Ich habe die Instanz nun gerade nochmal gestartet (mit dem bestehenden Token), siehe da es funktioniert wieder.
Was auch immer das gestern war ... !?
Zur Info, falls es auch anderen so geht

-
hallo.
hab heute im log folgendes gesehen:bluelink.0 2026-04-21 11:39:18.123 error next auto login attempt in 1 hour or restart adapter manual bluelink.0 2026-04-21 11:39:18.123 error Server is not available or login credentials are wrong bluelink.0 2026-04-21 11:39:18.123 error Error: @EuropeController.login: Could not manage to get tokenWenn ich die Registrierung neu durchführe, dann kommt immer das:
PS Z:\> python .\bluelinktoken.py --brand hyundai Opening login page: https://idpconnect-eu.hyundai.com/auth/api/v2/user/oauth2/authorize?client_id=peuhyundaiidm-ctb&redirect_uri=https%3A%2F%2Fctbapi.hyundai-europe.com%2Fapi%2Fauth&nonce=&state=NL_&scope=openid+profile+email+phone&response_type=code&connector_client_id=peuhyundaiidm-ctb&connector_scope=&connector_session_key=&country=&captcha=1&ui_locales=en-US ================================================== Please log in manually in the browser window. The script will wait for you to complete the login... ================================================== ✅ Login successful! Element found. Redirecting to: https://idpconnect-eu.hyundai.com/auth/api/v2/user/oauth2/authorize?response_type=code&client_id=6d477c38-3ca4-4cf3-9557-xxxxxxxxx&redirect_uri=https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/token&lang=de&state=ccsp - [1] Waiting for redirect URLwith code - [2] Waiting for redirect URLwith code - [3] Waiting for redirect URLwith code - [4] Waiting for redirect URLwith code - [5] Waiting for redirect URLwith code - [6] Waiting for redirect URLwith code - [7] Waiting for redirect URLwith code - [8] Waiting for redirect URLwith code - [9] Waiting for redirect URLwith code - [10] Waiting for redirect URLwith code ❌ Failed to get redirected to correct URL, got https://idpconnect-eu.hyundai.com/error?status=400&error=Bad+Request&error_description=Bad+Request.+It+was+classified+as+an+abusing+request+and+blocked.+client_id+%3A+6d477c38-3ca4-4cf3-9557-xxxxxxxxxx&loginUrl=&ui_locales=en-US instead An unexpected error occurred: 'NoneType' object has no attribute 'group' -
hallo.
hab heute im log folgendes gesehen:bluelink.0 2026-04-21 11:39:18.123 error next auto login attempt in 1 hour or restart adapter manual bluelink.0 2026-04-21 11:39:18.123 error Server is not available or login credentials are wrong bluelink.0 2026-04-21 11:39:18.123 error Error: @EuropeController.login: Could not manage to get tokenWenn ich die Registrierung neu durchführe, dann kommt immer das:
PS Z:\> python .\bluelinktoken.py --brand hyundai Opening login page: https://idpconnect-eu.hyundai.com/auth/api/v2/user/oauth2/authorize?client_id=peuhyundaiidm-ctb&redirect_uri=https%3A%2F%2Fctbapi.hyundai-europe.com%2Fapi%2Fauth&nonce=&state=NL_&scope=openid+profile+email+phone&response_type=code&connector_client_id=peuhyundaiidm-ctb&connector_scope=&connector_session_key=&country=&captcha=1&ui_locales=en-US ================================================== Please log in manually in the browser window. The script will wait for you to complete the login... ================================================== ✅ Login successful! Element found. Redirecting to: https://idpconnect-eu.hyundai.com/auth/api/v2/user/oauth2/authorize?response_type=code&client_id=6d477c38-3ca4-4cf3-9557-xxxxxxxxx&redirect_uri=https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/token&lang=de&state=ccsp - [1] Waiting for redirect URLwith code - [2] Waiting for redirect URLwith code - [3] Waiting for redirect URLwith code - [4] Waiting for redirect URLwith code - [5] Waiting for redirect URLwith code - [6] Waiting for redirect URLwith code - [7] Waiting for redirect URLwith code - [8] Waiting for redirect URLwith code - [9] Waiting for redirect URLwith code - [10] Waiting for redirect URLwith code ❌ Failed to get redirected to correct URL, got https://idpconnect-eu.hyundai.com/error?status=400&error=Bad+Request&error_description=Bad+Request.+It+was+classified+as+an+abusing+request+and+blocked.+client_id+%3A+6d477c38-3ca4-4cf3-9557-xxxxxxxxxx&loginUrl=&ui_locales=en-US instead An unexpected error occurred: 'NoneType' object has no attribute 'group'@ManfredHi hatte ja das gleiche Fehlerbild und hatte bisher nicht versucht ein neues Token zu generieren.
Heute lief der Adapter dann plötzlich wieder
-
um den 20.ten jeden Monats macht Hyundai/Kia immer mal Server Updates, da haengt die API gern mal.. das geht schon seit Jahren so (bin jetzt im 5.ten Jahr dabei) und wird sich wohl kaum aendern.. daher recht entspannt, wenn es um den 20.ten an den Servern haengt.. wenns dann laengere Zeit nicht geht.. gabs ne Aenderung - dann wirds doof.. :)
-
um den 20.ten jeden Monats macht Hyundai/Kia immer mal Server Updates, da haengt die API gern mal.. das geht schon seit Jahren so (bin jetzt im 5.ten Jahr dabei) und wird sich wohl kaum aendern.. daher recht entspannt, wenn es um den 20.ten an den Servern haengt.. wenns dann laengere Zeit nicht geht.. gabs ne Aenderung - dann wirds doof.. :)
um den 20.ten jeden Monats macht Hyundai/Kia immer mal Server Updates, da haengt die API gern mal.. das geht schon seit Jahren so (bin jetzt im 5.ten Jahr dabei) und wird sich wohl kaum aendern.. daher recht entspannt, wenn es um den 20.ten an den Servern haengt.. wenns dann laengere Zeit nicht geht.. gabs ne Aenderung - dann wirds doof.. :)
glaub ich nicht, weil es bereits seit 16.4. nicht mehr funktioniert.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden