@@ -272,6 +272,7 @@ def __init__(self, data, user_id):
272272 ChargingSpeed .FAST : None ,
273273 ChargingSpeed .NORMAL : None ,
274274 ChargingSpeed .SLOW : None ,
275+ ChargingSpeed .ADAPTIVE : None
275276 }
276277 self .range_hvac_off = None
277278 self .range_hvac_on = None
@@ -640,10 +641,9 @@ def refresh_battery_status(self):
640641 return body
641642
642643 def fetch_battery_status (self ):
644+ self .fetch_battery_status_leaf ()
643645 if self .model_name == "Ariya" :
644- return self .fetch_battery_status_ariya ()
645-
646- return self .fetch_battery_status_leaf ()
646+ self .fetch_battery_status_ariya ()
647647
648648 def fetch_battery_status_leaf (self ):
649649 """The battery-status endpoint isn't just for EV's. ICE Nissans publish the range under this!
@@ -671,6 +671,7 @@ def fetch_battery_status_leaf(self):
671671 ChargingSpeed .FAST : battery_data .get ('timeRequiredToFullFast' ),
672672 ChargingSpeed .NORMAL : battery_data .get ('timeRequiredToFullNormal' ),
673673 ChargingSpeed .SLOW : battery_data .get ('timeRequiredToFullSlow' ),
674+ ChargingSpeed .ADAPTIVE : None
674675 }
675676 self .range_hvac_off = battery_data .get ('rangeHvacOff' )
676677 self .range_hvac_on = battery_data .get ('rangeHvacOn' )
@@ -703,30 +704,19 @@ def fetch_battery_status_ariya(self):
703704
704705 battery_data = body ['data' ]['attributes' ]
705706
706- self .battery_capacity = battery_data .get ('batteryCapacity' ) # kWh
707- self .battery_level = battery_data .get ('batteryLevel' ) # %
708- self .battery_temperature = battery_data .get ('batteryTemperature' ) # Fahrenheit?
709- # same meaning as battery level, different scale. 240 = 100%
710- self .battery_bar_level = battery_data .get ('batteryBarLevel' )
711- self .instantaneous_power = battery_data .get ('instantaneousPower' ) # kW
707+ self .range_hvac_off = None
708+ self .range_hvac_on = battery_data .get ('batteryAutonomy' ) or self .range_hvac_on
709+
712710 self .charging_speed = ChargingSpeed (None )
713711 self .charge_time_required_to_full = {
714- ChargingSpeed .FAST : battery_data .get ('chargingRemainingTime' ),
715- ChargingSpeed .NORMAL : battery_data .get ('chargingRemainingTime' ),
716- ChargingSpeed .SLOW : battery_data .get ('chargingRemainingTime' ),
712+ ChargingSpeed .FAST : None ,
713+ ChargingSpeed .NORMAL : None ,
714+ ChargingSpeed .SLOW : None ,
715+ ChargingSpeed .ADAPTIVE : battery_data .get ('chargingRemainingTime' ) or self .charge_time_required_to_full [ChargingSpeed .NORMAL ]
717716 }
718- self .range_hvac_off = battery_data .get ('batteryAutonomy' )
719- self .range_hvac_on = battery_data .get ('batteryAutonomy' )
720-
721- # For ICE vehicles, we should get the range at least. If not, dont bother again
722- if self .range_hvac_on is None and Feature .BATTERY_STATUS not in self .features :
723- self .battery_supported = False
724- return
725717
726718 self .plugged_in = PluggedStatus (battery_data .get ('plugStatus' , 0 ))
727- if self .plugged_in == PluggedStatus (1 ):
728- self .charging = ChargingStatus (battery_data .get ('chargeStatus' , 0 ))
729-
719+
730720 if 'vehiclePlugTimestamp' in battery_data :
731721 self .plugged_in_time = datetime .datetime .fromisoformat (battery_data ['vehiclePlugTimestamp' ].replace ('Z' ,'+00:00' ))
732722 if 'vehicleUnplugTimestamp' in battery_data :
0 commit comments