Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EU (>2023) controls - how to help get working? #995

Open
badnbusy opened this issue Dec 25, 2024 · 5 comments
Open

EU (>2023) controls - how to help get working? #995

badnbusy opened this issue Dec 25, 2024 · 5 comments

Comments

@badnbusy
Copy link

badnbusy commented Dec 25, 2024

I work in IT and am a systems engineer/developer.

How can I help in getting the newer cars EU (>2023) controls working like Climate, Seat Controls, Charge Start/Stop, Open/Close Windows etc?

According to the docs, these controls are possible on pre 2023 models so what has changed?

How can I help in figuring out the API calls/endpoints used so I can contribute back to the codebase?

I have a Hyundai Kona EV 2024 (UK).

Thanks

@cdnninja
Copy link
Collaborator

cdnninja commented Dec 25, 2024

Have you tested and they don't work? My understanding is they do work.

@badnbusy
Copy link
Author

badnbusy commented Dec 25, 2024

They don't seem to do anything and checking in Bluelink they haven't turned on the AC or whatever set on the options...

HA log when performing the Climate enable option:

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/kia_uvo/coordinator.py:175
integration: Kia Uvo / Hyundai Bluelink (documentation, issues)
First occurred: 00:30:36 (2 occurrences)
Last logged: 00:32:10

Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/config/custom_components/kia_uvo/coordinator.py", line 175, in async_await_action_and_refresh
    await self.hass.async_add_executor_job(
    ...<5 lines>...
    )
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 215, in check_action_status
    return self.api.check_action_status(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.token, self.get_vehicle(vehicle_id), action_id, synchronous, timeout
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/hyundai_kia_connect_api/KiaUvoApiEU.py", line 1727, in check_action_status
    state = self.check_action_status(
        token, vehicle, action_id, synchronous=False
    )
  File "/usr/local/lib/python3.13/site-packages/hyundai_kia_connect_api/KiaUvoApiEU.py", line 1767, in check_action_status
    raise APIError(f"No action found with ID {action_id}")
hyundai_kia_connect_api.exceptions.APIError: No action found with ID 74eee010-c257-11ef-b454-a2ddc41f8b0e

@cdnninja
Copy link
Collaborator

The action thing seems to be an ongoing item but shouldn't impact the first call. Climate start is very dependent on the options sent.

If you sniff the traffic from the native app you can compare the payload to see what it didn't work.

@badnbusy
Copy link
Author

badnbusy commented Dec 25, 2024

Ok, will do.

It will all be HTTPS so assuming some MITM proxy required here and a 3rd party CA cert on Android etc.

Tried Charles Proxy but the app refuses to connect with that even when SSL proxying is enabled.

Will go down the Android emulator route, with root access to install System CA certs and the app.

@cdnninja
Copy link
Collaborator

That's the right path. Certificate pinning is implemented as well which makes it harder. I have heard Android 6 helps getting around this. The blue linky discord has talked about this too. I don't live in eu so personally haven't needed to do this much. Canada is easier to sniff.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants