Closed chasebolt closed 7 months ago
Does that option exist in the native app?
Does that option exist in the native app?
Attached to the original post is a screenshot of what I have available in the app. My interpretation from what I see in the app - yes. But they are individual toggles.
To confirm seats work fine? If you send a 1 does it turn the items on you want?
We just changed this per: https://github.com/Hyundai-Kia-Connect/kia_uvo/pull/747
Maybe Canada and USA are different which makes this a pain to map.
sending 1 turns on Steering Wheel, Side and Back Defroster.
frseat and flseat setting does not respond on my vehicle. i sent it values 0-12 and the ventilated/heated seats never activated.
might need a new property for region to know how to handle these mappings.
is there debug documentation i can follow to help provide more info?
Looks like USA doesn't support this in our code for seats. https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/blob/00724b5ab2c4acf315b7752fe18ba32ff06fc2f4/hyundai_kia_connect_api/KiaUvoAPIUSA.py#L633-L650
Someone needs to sniff the traffic and adjust that section to include the seat commands. Unfortunately no one in the USA maintains this code today.
I tried sniffing the iOS traffic for the Kia Access app, which is what I use, but unfortunately I believe they are using SSL pinning and I am unable to make it work.
I will bust out an android device and see if I can make that work.
EDIT: ended up using the kia connect website, it sends the same API payload but to a different endpoint.
Awesome thanks for giving it a go. That's exactly the work that's needed to improve the USA Kia integration.
saving here the api data for any future searches
{
"action": "ACTION_EXEC_REMOTE_CLIMATE_ON",
"remoteClimate": {
"airTemp": {
"value": "80",
"unit": 1
},
"airCtrl": true,
"defrost": true,
"ventilationWarning": false,
"ignitionOnDuration": {
"value": 10,
"unit": 4
},
"heatingAccessory": {
"steeringWheel": 1,
"steeringWheelStep": null,
"sideMirror": 1,
"rearWindow": 1
},
"heatVentSeat": {
"driverSeat": {
"heatVentType": 1,
"heatVentLevel": 4,
"heatVentStep": 1
},
"passengerSeat": {
"heatVentType": 2,
"heatVentLevel": 4,
"heatVentStep": 1
},
"rearLeftSeat": {
"heatVentType": 0,
"heatVentLevel": 1,
"heatVentStep": 0
},
"rearRightSeat": {
"heatVentType": 0,
"heatVentLevel": 1,
"heatVentStep": 0
}
}
}
}
Is this something you could play with further to understand how options map for the seats for heat vs cool and the levels?
Would be very open for you to drop a pull request for the above code link to get this working.
how do we get a new release with the recent merge in the API?
Title wasn't correct so ci didn't release. From my phone card to tell if CI is happy or not. I often just fudge something to force it. I'll do that now.
If interested the USA api could add a lot of data and services to catch up to what this integration is capable of.
Done. Release is out of API.
thanks. how should i be titling PRs to make sure they get released?
The CI follows semantic release titles. It is how it picks the release number and generates release notes. I'm not sure why that last one didn't.
If you google semantic release it shows the rules of it. I'm no pro with this. When by a computer I'll tinker to try make sure the checks tell us in advance before I merge it.
@cdnninja when you get a chance can you cut a new release of the API?
also, forgive me I don't develop in python, how do I manually pass options to start_climate()
? trying to test locally as described in the readme.
I thought it released yesterday? If you look at the home page of the api repo it shows the current bug fix release number. Put that into manifest to test.
As for running this with python I'll get you example shortly when I'm at a computer.
Example code that I use to test. This is so I can reference a local copy of the code:
from pathlib import Path
import logging
import sys
import os
path_root = r"path to local github directory with edit"
sys.path.append(str(path_root))
from hyundai_kia_connect_api import *
from hyundai_kia_connect_api.exceptions import *
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format='%(asctime)s %(name)s %(levelname)s:%(message)s')
logger = logging.getLogger(__name__)
vm = VehicleManager(region=1, brand=3, username="test@gmail.com", password="test", pin="", geocode_api_enable = True)
print(vm.check_and_refresh_token())
vm.update_all_vehicles_with_cached_state()
print(vm.vehicles)
Now in here where the print is called you could add other items to run: start climate would be something like. It would also need seats added if you like following the names here: https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/blob/b705f143aa87f82c8e45d383254636281ecb96f0/hyundai_kia_connect_api/ApiImpl.py#L19-L28
climateOptions = ClimateRequestOptions(set_temp = 70, duration = 10, defrost = True, climate = True, heating = 1)
vm.start_climate(vm.vehicles[0].id, climateOptions)
great, thanks for all the help! heated/ventilated seats are complete for USA now. going to close this out 😄
not sure if there are any other missing features, ill poke around but if you know of any feel free to let me know and ill see what I can do to add them!
Great thanks!! The two things that come to mind are:
Region and Brand of car US 2024 Kia Sportage X-Pro Prestige
Version of the integration v2.16.3
Describe the bug Trying to start the car with
heating: 4
, it fails with the errorIncorrect request payload format
. Screenshot below shows I do have all of these features available in the app.Debug logs if an error occurred
To Reproduce
Expected behavior Start the car with heated steering wheel, heated mirrors, and rear defrost.
Screenshots![IMG_B65D260C000D-1](https://github.com/Hyundai-Kia-Connect/kia_uvo/assets/1222984/bd10f10b-0f3c-45d1-b7f5-a809b9911a6f)
Additional Info I tested different values for
heating
and these are available to me:0
,1