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

Cooled Seats Setting #977

Closed
chrismcneil opened this issue May 29, 2024 · 9 comments
Closed

Cooled Seats Setting #977

chrismcneil opened this issue May 29, 2024 · 9 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@chrismcneil
Copy link

Is your feature request related to a problem? Please describe.
I only see options to turn on seat heating, it would be great if you could also turn on seat cooling.

Describe the solution you'd like
The dropdown menus for seat heating could also include seat cooling options.

Describe alternatives you've considered
I looked for seat cooling functionality outside of the seat heating options but could not find any.

Additional context
image

@chrismcneil chrismcneil added the enhancement New feature or request label May 29, 2024
@alandtse alandtse added help wanted Extra attention is needed good first issue Good for newcomers labels May 29, 2024
@dandelionclock
Copy link
Contributor

I'd like to attempt to add this, but I'll need help from OP or whoever because I don't have a Tesla with ventilated seats.

For starters, I'm trying to map out the API response values when seat coolers are on. Tesla API documentations are showing very helpful values of 0's across all seat climate states.

Can someone with ventilated seats set driver to low cool, front passenger to medium cool, rear left to high cool, rear center to auto, and rear right to high heat (for reference), then run the following service call in home assisant -> developer tools -> services -> yaml mode? Please replace <Put your VIN here, all CAPS> with your actual VIN, all in capital letters.

I'd like to see the response of climate_state, which for me are lines 73-112. I suspect the ventilated seats states are lumped with heated seats states under "seat_heater_left" "seat_heater_rear_center" "seat_heater_rear_left" "seat_heater_rear_right" and "seat_heater_right", just with different values (heated states are 0-4, so maybe cooled seats are 5-7?)

service: tesla_custom.api
data:
  command: VEHICLE_DATA
  parameters:
    path_vars:
      vehicle_id: <Put your VIN here, all CAPS>

@chrismcneil
Copy link
Author

Sorry the rear seats don't have cooling and the centre rear seat doesn't have anything in this 2024 m3, so I've done a couple combos below for you to reference.

Drivers Seat Cooling level 3
Passenger Seat Cooling level 1
Left Rear Seat Heating level 3
Right Rear Seat Heating level 1

climate_state:
    allow_cabin_overheat_protection: true
    auto_seat_climate_left: false
    auto_seat_climate_right: false
    auto_steering_wheel_heat: true
    battery_heater: false
    battery_heater_no_power: null
    cabin_overheat_protection: "On"
    cabin_overheat_protection_actively_cooling: false
    climate_keeper_mode: "off"
    cop_activation_temperature: High
    defrost_mode: 0
    driver_temp_setting: 21
    fan_status: 2
    hvac_auto_request: "On"
    inside_temp: 23.2
    is_auto_conditioning_on: true
    is_climate_on: true
    is_front_defroster_on: false
    is_preconditioning: false
    is_rear_defroster_on: false
    left_temp_direction: -160
    max_avail_temp: 28
    min_avail_temp: 15
    outside_temp: 25.5
    passenger_temp_setting: 21
    remote_heater_control_enabled: true
    right_temp_direction: -160
    seat_fan_front_left: 3
    seat_fan_front_right: 1
    seat_heater_left: 0
    seat_heater_rear_left: 3
    seat_heater_rear_right: 1
    seat_heater_right: 0
    side_mirror_heaters: false
    steering_wheel_heat_level: 0
    steering_wheel_heater: false
    supports_fan_only_cabin_overheat_protection: true
    timestamp: 1717290919689
    wiper_blade_heater: false

Drivers Seat Cooling level 2
Passenger Seat Cooling level Auto (none)
Left Rear Seat Heating level 2
Right Rear Seat Heating level off

climate_state:
    allow_cabin_overheat_protection: true
    auto_seat_climate_left: false
    auto_seat_climate_right: true
    auto_steering_wheel_heat: true
    battery_heater: false
    battery_heater_no_power: null
    cabin_overheat_protection: "On"
    cabin_overheat_protection_actively_cooling: false
    climate_keeper_mode: "off"
    cop_activation_temperature: High
    defrost_mode: 0
    driver_temp_setting: 21
    fan_status: 2
    hvac_auto_request: "On"
    inside_temp: 21
    is_auto_conditioning_on: true
    is_climate_on: true
    is_front_defroster_on: false
    is_preconditioning: false
    is_rear_defroster_on: false
    left_temp_direction: -94
    max_avail_temp: 28
    min_avail_temp: 15
    outside_temp: 25.5
    passenger_temp_setting: 21
    remote_heater_control_enabled: true
    right_temp_direction: -94
    seat_fan_front_left: 2
    seat_fan_front_right: 0
    seat_heater_left: 0
    seat_heater_rear_left: 2
    seat_heater_rear_right: 0
    seat_heater_right: 0
    side_mirror_heaters: false
    steering_wheel_heat_level: 0
    steering_wheel_heater: false
    supports_fan_only_cabin_overheat_protection: true
    timestamp: 1717291282365
    wiper_blade_heater: false

@dandelionclock
Copy link
Contributor

Thanks @chrismcneil. I think the API call for seat climate may be broken. See issue 957. I was playing with my seat heaters yesterday and it's been erroring out. Do you want to try to run this command in the same tab and see if it errors out or if it turns your driver seat cooler on?

service: tesla_custom.api
data:
  command: REMOTE_SEAT_COOLING_REQUEST
  parameters:
    path_vars:
      vehicle_id: _<Put your VIN here, all CAPS>_
    seat_position: 0
    seat_cooler_level: 3

@chrismcneil
Copy link
Author

The api is erroring out with an unknown error. Even though the integration setting the seat heat on fails. The tesla app is working to control the seats though....

@dandelionclock
Copy link
Contributor

@chrismcneil I poked around more.

Could you turn on climate with your app, then try the above api call again but with seat_position 1 (driver) and 2 (passenger)? Also please try different values for seat_cooler_level. I think 1 is low and 3 is high. You would normally think 0 would turn it off, but when I tested on my model Y it came back Incorrect Hvac Seat Cooler Level. Maybe you can do the following heater off API call to turn it off? Please notice with heater, 0 is driver and 1 is passenger.

service: tesla_custom.api
data:
  command: REMOTE_SEAT_HEATER_REQUEST
  parameters:
    path_vars:
      vehicle_id: <YOUR VIN>
    seat_position: 0          #Tesla seems to have changed this parameter from "heater" to "seat_position" without documenting it
    level: 0

Lastly, can you test this API call after turning climate on with your app? It seems like Tesla has changed the API call for auto seat climate. It requires both seat_position and auto_seat_position, and it's saying my car doesn't support it. Maybe auto seat climate can only be set now with cars that has both heated and ventilated seats like the one you have? I think 1 is driver seat and 2 is passenger seat here.

service: tesla_custom.api
data:
  command: REMOTE_AUTO_SEAT_CLIMATE_REQUEST
  parameters:
    path_vars:
      vehicle_id: <YOUR VIN>
    seat_position: 1
    auto_seat_position: 1
    auto_climate_on: True

Appreciate your help.

@chrismcneil
Copy link
Author

This is working!

service: tesla_custom.api
data:
  command: REMOTE_SEAT_COOLING_REQUEST
  parameters:
    path_vars:
      vehicle_id: <MY_VIN>
    seat_position: 1
    seat_cooler_level: 2

seat_cooler_level: 1 <- This means off
seat_cooler_level: 2 <- This means level 1
seat_cooler_level: 3 <- This means level 2
seat_cooler_level: 4 <- This means level 3

seat_position: 1 <- Driver
seat_position: 2 <- Passanger

Now for testing the second call

service: tesla_custom.api
data:
  command: REMOTE_AUTO_SEAT_CLIMATE_REQUEST
  parameters:
    path_vars:
      vehicle_id: <MY_VIN>
    seat_position: 1
    auto_seat_position: 1
    auto_climate_on: True

When I already had cooling on it seemed to just turn off the cooling. (Note that when I manually set it to auto the car puts on cooling level1)

When I have heat on nothing seems to happen with this call.

When I have Auto on this seems to turn off auto.

@dandelionclock
Copy link
Contributor

Thank you. That's very helpful.

Now when you have cooling seats turned on in the app, would calling REMOTE_SEAT_HEATER_REQUEST to 0 turn it off? Or do you have to call REMOTE_SEAT_COOLING_REQUEST to 1 to turn it off? Please remember though with heat, seat_position 0 is driver, but with cooling seat_position 1 is driver.

I don't really understand what the auto seat climate is doing. Maybe I'll leave it for now.

@chrismcneil
Copy link
Author

With Auto on and cooling

service: tesla_custom.api
data:
  command: REMOTE_SEAT_HEATER_REQUEST
  parameters:
    path_vars:
      vehicle_id: <MY_VIN>
    seat_position: 0
    level: 0

Causes Auto to get turned off but Cooling stays on. Calling it again does nothing Cooling just stays on.

service: tesla_custom.api
data:
  command: REMOTE_SEAT_HEATER_REQUEST
  parameters:
    path_vars:
      vehicle_id: <MY_VIN>
    seat_position: 0
    level: 1

Causes it to flip from cool to level 1 heat. If it was in Auto mode it disables Auto Mode.

@dandelionclock
Copy link
Contributor

@chrismcneil Thank you for your help. I forked this repo and the underlying teslajsonpy library and added the cooled seats feature. I tested it the best I can, but without a car that has vented seats I can't really test it thoroughly.

Would you or anyone else interested be willing to test my fork of Tesla Custom Integration and teslajsonpy? If you notice any problems, please turn on debug mode in the tesla custom integration in HA, repeat the buggy actions, disable debug mode then send me the log with the pertinent lines I would greatly appreciate it.

Please let me know if you need any help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants