From 316ad90ce9cca78f5d7be6f0ce77432446639aef Mon Sep 17 00:00:00 2001 From: InTheDaylight14 <67400055+InTheDaylight14@users.noreply.github.com> Date: Thu, 9 Feb 2023 02:26:54 -0500 Subject: [PATCH] feat: add min_to_full_charge attribute (#505) --- custom_components/tesla_custom/sensor.py | 12 ++++++++++++ tests/test_sensor.py | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/custom_components/tesla_custom/sensor.py b/custom_components/tesla_custom/sensor.py index f347744d..74c8d479 100644 --- a/custom_components/tesla_custom/sensor.py +++ b/custom_components/tesla_custom/sensor.py @@ -549,6 +549,18 @@ def native_value(self) -> Optional[datetime]: return self._value return None + @property + def extra_state_attributes(self): + """Return device state attributes.""" + # pylint: disable=protected-access + minutes_to_full_charge = self._car._vehicle_data.get("charge_state", {}).get( + "minutes_to_full_charge" + ) + + return { + "minutes_to_full_charge": minutes_to_full_charge, + } + class TeslaCarTpmsPressureSensor(TeslaCarEntity, SensorEntity): """Representation of the Tesla car TPMS Pressure sensor.""" diff --git a/tests/test_sensor.py b/tests/test_sensor.py index 83af4176..e089b6a3 100644 --- a/tests/test_sensor.py +++ b/tests/test_sensor.py @@ -31,8 +31,11 @@ PressureConverter, SpeedConverter, ) +import pytest from pytest import MonkeyPatch +pytestmark = pytest.mark.asyncio + from .common import setup_platform from .mock_data import car as car_mock_data, energysite as energysite_mock_data @@ -267,6 +270,11 @@ async def test_time_charge_complete_charging( ) charge_complete_str = datetime.strftime(charge_complete, "%Y-%m-%dT%H:%M:%S+00:00") + minutes_to_full_charge = car_mock_data.VEHICLE_DATA["charge_state"][ + "minutes_to_full_charge" + ] + assert state.attributes.get("minutes_to_full_charge") == minutes_to_full_charge + async def test_time_charge_completed(hass: HomeAssistant) -> None: """Tests time charge complete is the correct value."""