Skip to content

Commit c4e3afa

Browse files
feat(EU): New EV Values (#1040)
I've grabbed a few extra fields from KIA EU API --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent f42f430 commit c4e3afa

3 files changed

Lines changed: 161 additions & 2 deletions

File tree

hyundai_kia_connect_api/ApiImplType1.py

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77
from typing import Optional
88
from datetime import timedelta, timezone
99

10-
1110
from time import sleep
1211

13-
1412
from .ApiImpl import (
1513
ApiImpl,
1614
ScheduleChargingClimateRequestOptions,
@@ -264,6 +262,13 @@ def _update_vehicle_properties_ccs2(self, vehicle: Vehicle, state: dict) -> None
264262
if air_temp != "OFF":
265263
vehicle.air_temperature = (air_temp, TEMPERATURE_UNITS[1])
266264

265+
outside_temp = get_child_value(state, "Cabin.HVAC.OutsideTemperature.Value")
266+
outside_temp_unit = get_child_value(state, "Cabin.HVAC.OutsideTemperature.Unit")
267+
vehicle.outside_temperature = (
268+
outside_temp,
269+
TEMPERATURE_UNITS[outside_temp_unit],
270+
)
271+
267272
defrost_is_on = get_child_value(state, "Body.Windshield.Front.Defog.State")
268273
if defrost_is_on in [0, 2]:
269274
vehicle.defrost_is_on = False
@@ -379,6 +384,36 @@ def _update_vehicle_properties_ccs2(self, vehicle: Vehicle, state: dict) -> None
379384
vehicle.ev_battery_percentage = get_child_value(
380385
state, "Green.BatteryManagement.BatteryRemain.Ratio"
381386
)
387+
388+
vehicle.ev_battery_pack_voltage = get_child_value(
389+
state, "Green.BatteryManagement.BatteryPackVoltage"
390+
)
391+
vehicle.ev_battery_chiller_rpm = get_child_value(
392+
state, "Green.BatteryManagement.ChillerRPM"
393+
)
394+
395+
battery_heating_state = get_child_value(
396+
state, "Green.BatteryManagement.HeatingState"
397+
)
398+
if battery_heating_state is not None:
399+
vehicle.ev_battery_heating_state = bool(battery_heating_state)
400+
401+
vehicle.ev_battery_water_temperature = get_child_value(
402+
state, "Green.BatteryManagement.Temperature.CoolingWaterInlet"
403+
)
404+
vehicle.ev_battery_temperature_min = get_child_value(
405+
state, "Green.BatteryManagement.Temperature.Min.Raw"
406+
)
407+
vehicle.ev_battery_temperature_max = get_child_value(
408+
state, "Green.BatteryManagement.Temperature.Max.Raw"
409+
)
410+
411+
battery_winter_mode = get_child_value(
412+
state, "Green.BatteryManagement.WinterModeOperation"
413+
)
414+
if battery_winter_mode is not None:
415+
vehicle.ev_battery_winter_mode = bool(battery_winter_mode)
416+
382417
if get_child_value(state, "Green.Electric.SmartGrid.RealTimePower") is not None:
383418
vehicle.ev_charging_power = get_child_value(
384419
state, "Green.Electric.SmartGrid.RealTimePower"
@@ -491,6 +526,17 @@ def _update_vehicle_properties_ccs2(self, vehicle: Vehicle, state: dict) -> None
491526
get_child_value(state, "Green.Reservation.Departure.Schedule2.Enable")
492527
)
493528

529+
vehicle.ev_power_consumption_battery_cooling = get_child_value(
530+
state, "Green.PowerConsumption.Moment.BatteryCooling"
531+
)
532+
533+
vehicle.ev_power_consumption_battery_heater = get_child_value(
534+
state, "Green.PowerConsumption.Moment.BatteryHeater"
535+
)
536+
vehicle.ev_power_consumption_air_conditioning = get_child_value(
537+
state, "Green.PowerConsumption.Moment.ClimateAirConditioning"
538+
)
539+
494540
# TODO: vehicle.ev_first_departure_days --> Green.Reservation.Departure.Schedule1.(Mon,Tue,Wed,Thu,Fri,Sat,Sun) # noqa
495541
# TODO: vehicle.ev_second_departure_days --> Green.Reservation.Departure.Schedule2.(Mon,Tue,Wed,Thu,Fri,Sat,Sun) # noqa
496542
# TODO: vehicle.ev_first_departure_time --> Green.Reservation.Departure.Schedule1.(Min,Hour) # noqa

hyundai_kia_connect_api/Vehicle.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ class Vehicle:
106106
washer_fluid_warning_is_on: bool = None
107107
brake_fluid_warning_is_on: bool = None
108108

109+
_outside_temperature: float = None
110+
_outside_temperature_value: float = None
111+
_outside_temperature_unit: str = None
112+
109113
# Climate
110114
_air_temperature: float = None
111115
_air_temperature_value: float = None
@@ -257,6 +261,13 @@ def day_trip_info(self, value):
257261
self._day_trip_info = result
258262

259263
ev_battery_percentage: int = None
264+
ev_battery_pack_voltage: int = None
265+
ev_battery_chiller_rpm: int = None
266+
ev_battery_heating_state: bool = None
267+
ev_battery_water_temperature: int = None
268+
ev_battery_temperature_min: int = None
269+
ev_battery_temperature_max: int = None
270+
ev_battery_winter_mode: bool = None
260271
ev_battery_soh_percentage: int = None
261272
ev_battery_remain: int = None
262273
ev_battery_capacity: int = None
@@ -293,6 +304,10 @@ def day_trip_info(self, value):
293304
_ev_target_range_charge_DC_value: typing.Union[float, None] = None
294305
_ev_target_range_charge_DC_unit: typing.Union[str, None] = None
295306

307+
ev_power_consumption_battery_cooling: typing.Union[float, None] = None
308+
ev_power_consumption_battery_heater: typing.Union[float, None] = None
309+
ev_power_consumption_air_conditioning: typing.Union[float, None] = None
310+
296311
ev_first_departure_enabled: typing.Union[bool, None] = None
297312
ev_second_departure_enabled: typing.Union[bool, None] = None
298313

@@ -445,6 +460,16 @@ def odometer(self, value):
445460
self._odometer_unit = value[1]
446461
self._odometer = float_value
447462

463+
@property
464+
def outside_temperature(self):
465+
return self._outside_temperature
466+
467+
@outside_temperature.setter
468+
def outside_temperature(self, value):
469+
self._outside_temperature_value = value[0]
470+
self._outside_temperature_unit = value[1]
471+
self._outside_temperature = value[0]
472+
448473
@property
449474
def air_temperature(self):
450475
return self._air_temperature

0 commit comments

Comments
 (0)