From c39ff763c2b6b4ba5354874c8fc4e7ca895ff3e9 Mon Sep 17 00:00:00 2001 From: Michael Benz Date: Mon, 17 Apr 2023 10:00:23 +0000 Subject: [PATCH 1/3] Add Shift State Sensor --- custom_components/tesla_custom/sensor.py | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/custom_components/tesla_custom/sensor.py b/custom_components/tesla_custom/sensor.py index 8e27fc82..e45799ec 100644 --- a/custom_components/tesla_custom/sensor.py +++ b/custom_components/tesla_custom/sensor.py @@ -66,6 +66,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry, async_add_entitie entities.append(TeslaCarChargerEnergy(hass, car, coordinator)) entities.append(TeslaCarChargerPower(hass, car, coordinator)) entities.append(TeslaCarOdometer(hass, car, coordinator)) + entities.append(TeslaCarShiftState(hass, car, coordinator)) entities.append(TeslaCarRange(hass, car, coordinator)) entities.append(TeslaCarTemp(hass, car, coordinator)) entities.append(TeslaCarTemp(hass, car, coordinator, inside=True)) @@ -291,6 +292,48 @@ def native_value(self) -> float: return round(odometer_value, 2) +class TeslaCarShiftState(TeslaCarEntity, SensorEntity): + """Representation of the Tesla car Shift State sensor.""" + + def __init__( + self, + hass: HomeAssistant, + car: TeslaCar, + coordinator: TeslaDataUpdateCoordinator, + ) -> None: + """Initialize odometer entity.""" + super().__init__(hass, car, coordinator) + self.type = "shift state" + self._attr_device_class = SensorDeviceClass.ENUM + self._attr_icon = "mdi:car-shift-pattern" + + @property + def native_value(self) -> float: + """Return the shift state.""" + value = self._car.shift_state + + # When car is parked and off, Tesla API reports shift_state None + if value is None or value == "": + return "P" + + return value + + @property + def options(self) -> float: + """Return the values for the ENUM.""" + values = ["P", "D", "R", "N"] + + return values + + @property + def extra_state_attributes(self): + """Return device state attributes.""" + + return { + "raw_state": self._car.shift_state, + } + + class TeslaCarRange(TeslaCarEntity, SensorEntity): """Representation of the Tesla car range sensor.""" From fa7101ecb4889145f04fd8cd69136f497c430115 Mon Sep 17 00:00:00 2001 From: Michael Benz Date: Fri, 21 Apr 2023 00:32:03 +0000 Subject: [PATCH 2/3] fix: Bumped Home Assistant Min version --- hacs.json | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hacs.json b/hacs.json index ba51d516..7cb4c567 100644 --- a/hacs.json +++ b/hacs.json @@ -1,7 +1,7 @@ { "name": "Tesla", "hacs": "1.6.0", - "homeassistant": "2022.11.0", + "homeassistant": "2023.2.0", "zip_release": true, "filename": "tesla_custom.zip" } diff --git a/pyproject.toml b/pyproject.toml index 2180752b..12438c0f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ teslajsonpy = "^3.8.0" [tool.poetry.group.dev.dependencies] -homeassistant = ">=2022.11.0" +homeassistant = ">=2023.2.0" pytest-homeassistant-custom-component = ">=0.13.1" bandit = ">=1.7.0" black = {version = ">=21.12b0", allow-prereleases = true} From d8fd7d21a9a66bd2131d8abf4d9ca3edea620387 Mon Sep 17 00:00:00 2001 From: Michael Benz Date: Fri, 21 Apr 2023 07:29:01 +0000 Subject: [PATCH 3/3] fix: bump to correct version --- hacs.json | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hacs.json b/hacs.json index 7cb4c567..71d3476e 100644 --- a/hacs.json +++ b/hacs.json @@ -1,7 +1,7 @@ { "name": "Tesla", "hacs": "1.6.0", - "homeassistant": "2023.2.0", + "homeassistant": "2023.1.0", "zip_release": true, "filename": "tesla_custom.zip" } diff --git a/pyproject.toml b/pyproject.toml index 12438c0f..90be382b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ teslajsonpy = "^3.8.0" [tool.poetry.group.dev.dependencies] -homeassistant = ">=2023.2.0" +homeassistant = ">=2023.1.0" pytest-homeassistant-custom-component = ">=0.13.1" bandit = ">=1.7.0" black = {version = ">=21.12b0", allow-prereleases = true}