|
7 | 7 | from typing import Optional |
8 | 8 | from datetime import timedelta, timezone |
9 | 9 |
|
10 | | - |
11 | 10 | from time import sleep |
12 | 11 |
|
13 | | - |
14 | 12 | from .ApiImpl import ( |
15 | 13 | ApiImpl, |
16 | 14 | ScheduleChargingClimateRequestOptions, |
@@ -264,6 +262,13 @@ def _update_vehicle_properties_ccs2(self, vehicle: Vehicle, state: dict) -> None |
264 | 262 | if air_temp != "OFF": |
265 | 263 | vehicle.air_temperature = (air_temp, TEMPERATURE_UNITS[1]) |
266 | 264 |
|
| 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 | + |
267 | 272 | defrost_is_on = get_child_value(state, "Body.Windshield.Front.Defog.State") |
268 | 273 | if defrost_is_on in [0, 2]: |
269 | 274 | vehicle.defrost_is_on = False |
@@ -379,6 +384,36 @@ def _update_vehicle_properties_ccs2(self, vehicle: Vehicle, state: dict) -> None |
379 | 384 | vehicle.ev_battery_percentage = get_child_value( |
380 | 385 | state, "Green.BatteryManagement.BatteryRemain.Ratio" |
381 | 386 | ) |
| 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 | + |
382 | 417 | if get_child_value(state, "Green.Electric.SmartGrid.RealTimePower") is not None: |
383 | 418 | vehicle.ev_charging_power = get_child_value( |
384 | 419 | state, "Green.Electric.SmartGrid.RealTimePower" |
@@ -491,6 +526,17 @@ def _update_vehicle_properties_ccs2(self, vehicle: Vehicle, state: dict) -> None |
491 | 526 | get_child_value(state, "Green.Reservation.Departure.Schedule2.Enable") |
492 | 527 | ) |
493 | 528 |
|
| 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 | + |
494 | 540 | # TODO: vehicle.ev_first_departure_days --> Green.Reservation.Departure.Schedule1.(Mon,Tue,Wed,Thu,Fri,Sat,Sun) # noqa |
495 | 541 | # TODO: vehicle.ev_second_departure_days --> Green.Reservation.Departure.Schedule2.(Mon,Tue,Wed,Thu,Fri,Sat,Sun) # noqa |
496 | 542 | # TODO: vehicle.ev_first_departure_time --> Green.Reservation.Departure.Schedule1.(Min,Hour) # noqa |
|
0 commit comments