Kia Uvo Integration

kia_uvo.start_climate is not an entity.

As I said it used to be a service - now called action.

Go to "developer tools* click on “action” - you will see it is there in the dropdown list.

Alternatively write yourself a script and where it says “add action” type KIA and select “Start climate” - then run the script.

Excellent, I really appreciate that! Entering Kia as an action in a script brings up the climate dialogue screen with options.

1 Like

Hi, I’ve got an EV6 (EU) and I’m new to the whole Home Assistant automation world. I’ve got some automation that is successfully triggering the climate control - can set the aircon, rear defrost, heated steering wheel, etc, but:

I can’t seem to get the front heated seats to work? I’ve tried the different options (on, low, medium & high heat) - none seem to make a difference.

Is this just not supported on EU EV6 or am I doing something wrong? Here’s what I’m sending:

  • action: kia_uvo.start_climate
    data:
    duration: 10
    climate: true
    temperature: 20
    defrost: true
    heating: “4”
    frseat: “7”

Thanks for any help!

Stop trying - it doesn’t work :slight_smile:

It is probably a safety feature by KIA - maybe you need to have weight on the seat for it to work (edit: nope - just tried that out and still doesn’t work) - or it will only work when the car is actually running.

1 Like

Has anyone had any luck using the new scheduled charging feature? I just get “Unknown error” whenever I try to use that action.

Hi all,

Thanks @fuatakgun (and @wcomartin) ! This is great to be able to fetch data from uvo/bluelink

I’m using this integration and managed to push bluelink data to ABRP :slight_smile:
(inspiration came from here)

First create a rest_command in configuration.yaml:

  update_abrp:
    method: POST
    headers:
      content_type: "charset=utf-8; application/x-www-form-urlencoded"
    url: >
      {% set tlm = {
        "utc": as_timestamp(strptime(states('sensor.kona_last_updated_at'), "%Y-%m-%dT%H:%M:%S%z")),
        "soc": states('sensor.kona_ev_battery_level'),
        "soh": states('sensor.kona_ev_state_of_health_battery'),
        "est_battery_range": float(states('sensor.kona_ev_range')),
        "is_charging": states('sensor.kona_is_charging'),
        "lat": state_attr('device_tracker.kona_location', 'latitude'),
        "lon": state_attr('device_tracker.kona_location', 'longitude'),
        "odometer": states('sensor.kona_odometer')
      } -%}
      https://api.iternio.com/1/tlm/send?api_key=your_api_key_from_iternio&token=your_token_from_abrp_app&tlm={{tlm|to_json|urlencode}}
# https://documenter.getpostman.com/view/7396339/SWTK5a8w#api-endpoints

then this automation will push the telemetry each time an update is received by the integration:

  alias: Télémétrie KONA vers ABRP
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.kona_last_updated_at
  conditions: []
  actions:
  - action: rest_command.update_abrp
    data: {}
    response_variable: status
  mode: single

Now I have to figure out what are the best value for scan without beeing locked until the rest of the day (got “to many request” error in bluelink app while playing with ABRP)

1 Like

I have it set up with a Kia E-Niro in Sweden. Update interval 30 min according to GUI. But entities have not updated in 3 hours. Any ideas why?

The update interval of 30 min will only get the latest status from the KIA server.
If the car has not uploaded anything new in the last 30min, than you will see no change.
If you want the current status, do a forced update - but be aware, that this will wake-up the car every time you do this.

Weird since Ive been using the car and the app shows different values?
Can I force an auto update entering home zone?

You could make an automation that does a forced update with the
Trigger: “Entering Home Zone”.
Action: kia_uvo.force_update

Is it possible to get a data of how many Kw has been charged per day or month?
Would be nice to know the charging costs

There is a “monthly_energy_consumption” sensor - but in my case the numbers are completely bogus.

I just use the km driven and multiply with the “average consumption sensor”.

Hi guys,

I don’t know if this is the right place, but I did a password reset, and I don’t know how to change the password in the intergration.

 Unexpected error fetching kia_uvo data

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 379, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/kia_uvo/coordinator.py", line 107, in _async_update_data
    await self.async_check_and_refresh_token()
  File "/config/custom_components/kia_uvo/coordinator.py", line 169, in async_check_and_refresh_token
    await self.hass.async_add_executor_job(
        self.vehicle_manager.check_and_refresh_token
    )
  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 136, in check_and_refresh_token
    self.initialize()
    ~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 75, in initialize
    self.token: Token = self.api.login(self.username, self.password)
                        ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/hyundai_kia_connect_api/HyundaiBlueLinkApiUSA.py", line 136, in login
    access_token = response["access_token"]
                   ~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'access_token'

I suspect it was an error in the password, which makes sense.

Have you tried to go to the integration and click on “Add Hub”?

This will probably make a second Hub with the new credentials - thereafter you can delete the old one!

Have you tried to go to the integration and click on “Add Hub”?

This will probably make a second Hub with the new credentials - thereafter you can delete the old one!

I’d delete the old one first, otherwise you will get double entities with “_2”

1 Like

thanks, with that i made a sensor for daily consumption and a sensor for the month consumption, now i cant find a way to convert kw/h in €, the electricity cost is always the same

Make a template sensor where you mulitply the ammount of kWh used (in the example it is called sensor.stromverbrauch_der letzten_24h) with the USD price per kWh (in the example I used 25 Cents, you obviously have to use your price - or if that price is variable the state of that price sensor)

Something like this:

thanks, it worked :+1:

1 Like

I have a lovelace button set up to call the climate start service which works fine. I wanted to automate the process so I created a service call in Node-RED. It worked fine first time but now throws up an error

“HomeAssistantError: Unavailable remote control - Service Temporary Unavailable”

The lovelace button still works to call the service but for some reason it cannot be called from Node-RED. Does anyone have any ideas?

Bluelink updated its password policy and I suspect they’ve changed some sensors on their side, as many are missing and broken. Minimally missing:

  • ev_battery_level
  • ev_battery_plug
  • ev_battery_charge
  • estimated_fast_charge_duration
  • estimated_station_charge_duration
  • estimated_portable_charge_duration

… and probably some services as well, did not test.