Aller au contenu
View in the app

A better way to browse. Learn more.

Forum Automobile Propre

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ioniq5 et homeassistant

Featured Replies

Posté(é)

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 ....

Posté(é)
  • Auteur
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 :)

 

 

Posté(é)
  • Auteur

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 :(

Posté(é)

cool faut que j’essaye aussi pas eu le temps hier soir , le nouveau né d’un mois prend la priorité sur HA🤣

Posté(é)

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

Posté(é)
  • Auteur
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 :)

  • 2 semaines plus tard...
Posté(é)

Je l’ai fait cette nuit et ça a fonctionné sans soucis, j’ai de nouveau mon Dashboard ! 😁

  • 2 semaines plus tard...
Posté(é)

Hello,
J'ai ajouté l'intégration ce matin, j'ai eu pas mal de difficultés et le script mentionné au dessus ne fonctionne pas (j'arrive sur une page Hyundai en polonais). 
J'ai utilisé les liens de cette issue github : https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/issues/925 (pour que ça fonctionne:) )

Modifié par jlm35

Posté(é)
Le 10/11/2025 à 16:19, jlm35 a dit :

J'ai ajouté l'intégration ce matin, j'ai eu pas mal de difficultés et le script mentionné plutôt ne fonctionne pas (j'arrive sur une page Hyundai en polonais). 
J'ai utilisé les liens de cette issue github : https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/issues/925

C'est le script donné par Zek qui ne fonctionne pas ?

Ou c'est le package téléchargeable chez GitHub (une archive avec plusieurs fichiers) qui ne fonctionne pas ?

Modifié par Klug

Posté(é)
Le 10/11/2025 à 16:42, Klug a dit :

C'est le script donné par Zek qui ne fonctionne pas ?

Ou c'est le package téléchargeable chez GitHub (une archive avec plusieurs fichiers) qui ne fonctionne pas ?

Yes c'est bien celui de Zek que j'ai testé en premier sans succès. 

Posté(é)

Petite question supplémentaire, l'abonnement bluelink est il un prérequis au fonctionnement de l'intégration ? Si oui savez vous quel abonnement faut-il le pro ou le plus ?

Posté(é)

J'ai l'abonnement de base (Bluelink PLUS) et ça fonctionne.

Posté(é)
Le 10/11/2025 à 16:44, jlm35 a dit :

Yes c'est bien celui de Zek que j'ai testé en premier sans succès. 

On en parlait un peu plus haut avec le script de l’issue #925 sur github qui permet de récupérer le token ID (à refaire tous les 3 mois il est valide 3 mois)

 

Posté(é)

Bonjour à tous, 

J’ai peut être rater l’info ou le contrôle dans home assistant mais je ne vois pas la possibilité de lancer une charge via HA, possible ?

j’ai pour projet de créer des automatisations analysant la sortie de PV afin de lancer une charge s’il y a de l’excédent. L’automatisation vérifierait si la voiture est chargée et lancerait la charge si l’excédent est supérieur à  X watts, ça m’épargnerait l’achat de batterie surtout quand on en a une grosse sur roues qui attend dans le garage.

Posté(é)
Le 14/11/2025 à 23:55, jlm35 a dit :

Bonjour à tous, 

J’ai peut être rater l’info ou le contrôle dans home assistant mais je ne vois pas la possibilité de lancer une charge via HA, possible ?

j’ai pour projet de créer des automatisations analysant la sortie de PV afin de lancer une charge s’il y a de l’excédent. L’automatisation vérifierait si la voiture est chargée et lancerait la charge si l’excédent est supérieur à  X watts, ça m’épargnerait l’achat de batterie surtout quand on en a une grosse sur roues qui attend dans le garage.

Hello,

C'est exactement ce que j'ai fait donc c'est tout à fait possible ;-) 

MAIS il te faut une borne qui puisse être pilotable par API, pour pouvoir écrire une automatisation dans HA qui lui envoye des ordres marche/arrêt et aussi des ordres pour changer la puissance de recharge (kW ou A) en fonction du surplus solaire disponible. Demon coté, j'ai une Trydan de chez V2C (https://v2charge.com/fr/trydan/) mais toutes ne le permettent pas. A voir avec ton équipement.

Modifié par jumpingjackfly

Posté(é)
Le 15/11/2025 à 09:40, jumpingjackfly a dit :

Hello,

C'est exactement ce que j'ai fait donc c'est tout à fait possible ;-) 

MAIS il te faut une borne qui puisse être pilotable par API, pour pouvoir écrire une automatisation dans HA qui lui envoye des ordres marche/arrêt et aussi des ordres pour changer la puissance de recharge (kW ou A) en fonction du surplus solaire disponible. Demon coté, j'ai une Trydan de chez V2C (https://v2charge.com/fr/trydan/) mais toutes ne le permettent pas. A voir avec ton équipement.

Je pensais utiliser la fonction de changement de limite en mettant la limite de charge à 10% pour éviter la charge et en la passant via une automatisation à 90%. Je pense que ça devrait démarrer la charge si la voiture est branchée (à défaut d’avoir le bouton de forçage de charge).

pour la puissance de charge je suis sur une prise renforcé avec un CRO. Donc l’idée était de mettre le cro a 8A (je n’ai pas une grosse installation 2kwc)

Posté(é)

Ma borne à la maison (powerdale) n’est accessible que via Bluetooth.
du coup pour pouvoir la piloter avec homeassistant et l’intégrer à mon dashboard j’ai pris un petit ESP32 avec un bout de code custom avé ESPHome qui fait le lien avec la borne. 
Plus besoin d’utiliser la charge programmée pour déclencher à 22h00, juste brancher la voiture et je vais mettre quelques règles en place genre si charge <65% alors démarrer la charge a partir de 22h

IMG_7362.jpeg

Modifié par bi_weiss

  • 4 semaines plus tard...
Posté(é)

Hello,

Voici le code de l'automatisation HA pour le démarrage de charge sans borne connecté (de mon côté j'ai juste une GreenUp). Les options kia_uvo.start_charge et stop_charge sont un peu planqué donc si ça peut aider quelqu'un ici.

A vous ensuite de régler la valeur de déclenchement de la charge avec le surplus solaire pour que ça soit intéressant par rapport à des heures creuses.
 

alias: Démarrage Charge VE si Surplus
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.shellypro3em_ac15187beee8_energy_meter_0_power
    below: -450
    for:
      hours: 0
      minutes: 2
      seconds: 0
conditions:
  - condition: state
    entity_id: binary_sensor.ioniq_5_ev_battery_plug
    state:
      - "on"
  - condition: state
    entity_id: binary_sensor.ioniq_5_ev_battery_charge
    state:
      - "off"
actions:
  - action: kia_uvo.start_charge
    metadata: {}
    data:
      device_id: b68eedef60516a83d0e733f86a1eebf1
  - action: notify.persistent_notification
    metadata: {}
    data:
      message: Charge Ve démarre
      title: "Ve "
  - delay:
      hours: 1
      minutes: 0
      seconds: 0
      milliseconds: 0
  - action: kia_uvo.stop_charge
    metadata: {}
    data:
      device_id: b68eedef60516a83d0e733f86a1eebf1
  - action: notify.persistent_notification
    metadata: {}
    data:
      title: "Ve "
      message: Arrêt de la charge
  - delay:
      hours: 0
      minutes: 2
      seconds: 0
      milliseconds: 0
mode: single

 

Posté(é)
  • Auteur

merci , ca me servira peut etre un jour ....

mais pas de suite, j ai que 800W de solaire 😛 ( 2 panneaux) mais je prevois d en rajouter 14 sur la prochaine maison.

 

en regardant ton script , tu lance la charge quand tu exporte 450W  plus de 2 min ? mais tu branche comment la voiture, ? par defaut en 10A , elle vas consommer 2300W ....  donc prendre sur le réseau ?

 

 

Posté(é)
Le 15/12/2025 à 10:52, Zek a dit :

merci , ca me servira peut etre un jour ....

mais pas de suite, j ai que 800W de solaire 😛 ( 2 panneaux) mais je prevois d en rajouter 14 sur la prochaine maison.

 

en regardant ton script , tu lance la charge quand tu exporte 450W  plus de 2 min ? mais tu branche comment la voiture, ? par defaut en 10A , elle vas consommer 2300W ....  donc prendre sur le réseau ?

 

 

Sur les charges en journée je règle pour le moment à 6A soit environ 1,2kw, comme toi j’ai pas une grosse installation solaire. En calculant j’ai noté que ça ne valait pas le coût de lancer la charge si il n’y avait pas un minimum de 450w (par rapport aux heures creuses)

A chacun d’ajuster le seuil en fonction de son niveau de charge et de sa production solaire 

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.