Aller au contenu
Zek

Ioniq5 et homeassistant

Messages recommandés

bonjour,

 

j avais parlé un peu dans ce post , et pour ne pas polluer le post initial, je poste ici .

 

l integration hyundai est en rade depuis quelques jours, un patch semble avoir eté publié, mais je n y arrive pas ( a priori il faut se loguer sur le site  kia.de pour recuperer un token , mais j ai pas un kia , je n existe pas sur leur serveurs )

 

pour les utilisateurs de home assistant, vous avez reussi a  recuperer les infos ?  si oui , comment ?

 

en l abesence de token, j ai un 'unexpeted error' en me loguant ....

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 20/10/2025 à 22:32, bi_weiss a dit :

Je n’ai pas essayé encore mais il semble qu’il y ait un script pour générer un token 

 

https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/wiki/Kia-Europe-Login-Flow

 

mais je ne sais pas si ce script fonctionne pour Hyundai 

c est justement mon soucis, il se logue sur le site kia.de , ou je n ai pas de compte :)

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

c est bon,j ai reussi .

 

j ai utilisé ce script python

 

#!/usr/bin/env python3

import requests
import sys
from urllib.parse import urlparse, parse_qs, quote

user_agent: str = (
    "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"
)

session = requests.Session()
CLIENT_ID = "6d477c38-3ca4-4cf3-9557-2a1929a94654"
CLIENT_SECRET = "KUy49XxPzLpLuoK0xhBC77W6VXhmtQR9iQhmIFjjoY4IpxsV"
BASE_URL = "https://idpconnect-eu.hyundai.com/auth/api/v2/user/oauth2/"
LOGIN_URL = f"{BASE_URL}authorize?client_id=peuhyundaiidm-ctb&redirect_uri=https%3A%2F%2Fctbapi.hyundai-europe.com%2Fapi%2Fauth&nonce=&state=PL_&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" 
SUCCESS_ELEMENT_SELECTOR = "button.mail_check" 
REDIRECT_URL_FINAL = "https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/token"
REDIRECT_URL = f"{BASE_URL}authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URL_FINAL}&lang=de&state=ccsp"
TOKEN_URL = f"{BASE_URL}token"


def _get_authorization_code(url: str) -> str:
#    Retrieve the authorization_code from the url.
    try:
        url_parsed = urlparse(url)
        url_queries = parse_qs(url_parsed.query)
        code: str = url_queries["code"][0]
        return code
    except Exception as e:
        print(f"\n Could not extract authorization code query from the URL {url}. Please try again: {e}")
        sys.exit(1)


def main() -> None:
    print(f"Step 1: Open a NEW window from your browser, ONLY TO BE USED for this procedure \n"
          f"        Chrome: View/Developer/Developer tools\n"
          f"            'network conditions' is likely open at bottom. if not: 3-dot menu at the right\n"
          f"            more tools/network conditions\n"
          f"            uncheck 'Use browser default' next to 'User agent' \n"
          f"            choose 'custom...' and fill in the following user agent:\n"
          f"            {user_agent}\n")
    print(f"        Safari: Safari/Settings/Advanced  > at bottom tick 'show features for web developers'\n"
          f"            menubar of dedicated window: Develop/User Agent/Other...\n"
          f"            fill in the following user agent and press OK\n"
          f"            {user_agent}\n\n\n")
    input(f"press enter if you have set the user agent\n")

    print(f"Step 2: Open this URL in THIS DEDICATED WINDOW:\n")
    print(f"        {LOGIN_URL}\n\n\n")

    print(f"Step 3: Solve the reCAPTCHA and login with your credentials.\n"
          f"        After successful login, you get redirected to Hyundai homepage.\n"
          f"        If you NOT get on Hyundai page you likely did not correctly set the user agent.\n")
    confirm: str = input(
        "        Was the login successful? (y/n): "
    ).strip().lower()
    if confirm != "y":
        print(f" Exiting script. Please try again after successful login.")
        sys.exit(1)

    print(f"\nStep 4: Open the following URL in the SAME browser tab where you're logged in:\n")
    print(f"        {REDIRECT_URL}\n")

    current_url: str = input(
        f"Step 5: A blank page with maybe \"errCode\":\"4010\" will open with the URL from step 4 which starts with\n "
        f"        '{BASE_URL}token?code=...&state=ccsp&login_success=y'\n"
        f"        Copy the full URL from the address bar and paste it here:\n\n"
        f"      > "
    )
   
    code: str = _get_authorization_code(current_url)
    data = {
            "grant_type": "authorization_code",
            "code": code,
            "redirect_uri": REDIRECT_URL_FINAL,
            "client_id": CLIENT_ID,
            "client_secret": CLIENT_SECRET,
    }
    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 the API!\n{response.text}")


if __name__ == "__main__":
    main()

 

puis

 

python3 -m venv .venv

source .venv/bin/activate

pip3 install selenium requests

python3 script.py #<- nom que vous avez donné:p

et suivre lesinstructions du script ( fait sur mac avec safari )

 

j ai recuperé ma voiture sur HA :)

image.png.eebf4a9ed8475a46dae113a00bae986a.png

 

 

je me note tout ici pour rappel, car visiblement il faut regenerer son token tous les 3 mois :(

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas vérifier mais les variables spécifiques au début du code, j'espère que ce ne sont pas les vôtres et juste des codes pour un accès 'général'.

Car sinon vos accès aux informations de votre voiture sont maintenant 'publique'

Modifié par Blade_Bo

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 22/10/2025 à 09:31, Blade_Bo a dit :

Je n'ai pas vérifier mais les variables spécifiques au début du code, j'espère que ce ne sont pas les vôtres et juste des codes pour un accès 'général'.

Car sinon vos accès aux informations de votre voiture sont maintenant 'publique'

oui oui,  cest pas les miens :)

Partager ce message


Lien à poster
Partager sur d’autres sites







×
×
  • Créer...
Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.