Skip to content

Commit

Permalink
Revert "Use car distance units & remove solar type from model"
Browse files Browse the repository at this point in the history
  • Loading branch information
alandtse authored Oct 22, 2022
1 parent 6f0a4ae commit 97539ea
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 20 deletions.
2 changes: 1 addition & 1 deletion custom_components/tesla_custom/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ def sw_version(self) -> bool:
@property
def device_info(self) -> DeviceInfo:
"""Return device info."""
model = f"{self._energysite.resource_type.title()}"
model = f"{self._energysite.resource_type.title()} {self._energysite.solar_type.replace('_', ' ')}"
return DeviceInfo(
identifiers={(DOMAIN, self._energysite.energysite_id)},
manufacturer="Tesla",
Expand Down
1 change: 0 additions & 1 deletion custom_components/tesla_custom/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,5 @@
ATTR_POLLING_POLICY_ALWAYS = "always"
ATTR_VIN = "vin"
DEFAULT_POLLING_POLICY = ATTR_POLLING_POLICY_NORMAL
DISTANCE_UNITS_KM_HR = "km/hr"
SERVICE_API = "api"
SERVICE_SCAN_INTERVAL = "polling_interval"
17 changes: 9 additions & 8 deletions custom_components/tesla_custom/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
SensorStateClass,
)
from homeassistant.const import (
CONF_UNIT_SYSTEM_METRIC,
ENERGY_KILO_WATT_HOUR,
ENERGY_WATT_HOUR,
LENGTH_KILOMETERS,
Expand All @@ -26,7 +27,7 @@

from . import TeslaDataUpdateCoordinator
from .base import TeslaCarEntity, TeslaEnergyEntity
from .const import DISTANCE_UNITS_KM_HR, DOMAIN
from .const import DOMAIN

SOLAR_SITE_SENSORS = ["solar power", "grid power", "load power"]
BATTERY_SITE_SENSORS = SOLAR_SITE_SENSORS + ["battery power"]
Expand Down Expand Up @@ -149,7 +150,7 @@ def extra_state_attributes(self):
else:
added_range = 0

if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self._unit_system == CONF_UNIT_SYSTEM_METRIC:
added_range = DistanceConverter.convert(
added_range, LENGTH_MILES, LENGTH_KILOMETERS
)
Expand Down Expand Up @@ -214,7 +215,7 @@ def native_value(self) -> float:
if charge_rate is None:
return charge_rate

if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self._unit_system == CONF_UNIT_SYSTEM_METRIC:
charge_rate = DistanceConverter.convert(
charge_rate, LENGTH_MILES, LENGTH_KILOMETERS
)
Expand All @@ -224,7 +225,7 @@ def native_value(self) -> float:
@property
def native_unit_of_measurement(self) -> str:
"""Return distance units."""
if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self._unit_system == CONF_UNIT_SYSTEM_METRIC:
return SPEED_KILOMETERS_PER_HOUR

return SPEED_MILES_PER_HOUR
Expand Down Expand Up @@ -261,7 +262,7 @@ def native_value(self) -> float:
if odometer_value is None:
return None

if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self.native_unit_of_measurement == LENGTH_KILOMETERS:
odometer_value = DistanceConverter.convert(
odometer_value, LENGTH_MILES, LENGTH_KILOMETERS
)
Expand All @@ -271,7 +272,7 @@ def native_value(self) -> float:
@property
def native_unit_of_measurement(self) -> str:
"""Return distance units."""
if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self._unit_system == CONF_UNIT_SYSTEM_METRIC:
return LENGTH_KILOMETERS

return LENGTH_MILES
Expand Down Expand Up @@ -304,7 +305,7 @@ def native_value(self) -> float:
if range_value is None:
return None

if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self._unit_system == CONF_UNIT_SYSTEM_METRIC:
range_value = DistanceConverter.convert(
range_value, LENGTH_MILES, LENGTH_KILOMETERS
)
Expand All @@ -314,7 +315,7 @@ def native_value(self) -> float:
@property
def native_unit_of_measurement(self) -> str:
"""Return distance units."""
if self._car.gui_distance_units == DISTANCE_UNITS_KM_HR:
if self._unit_system == CONF_UNIT_SYSTEM_METRIC:
return LENGTH_KILOMETERS

return LENGTH_MILES
Expand Down
22 changes: 12 additions & 10 deletions tests/test_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
ATTR_UNIT_OF_MEASUREMENT,
ENERGY_KILO_WATT_HOUR,
ENERGY_WATT_HOUR,
LENGTH_MILES,
LENGTH_KILOMETERS,
PERCENTAGE,
POWER_WATT,
TEMP_CELSIUS,
Expand Down Expand Up @@ -188,7 +188,9 @@ async def test_charger_rate_value(hass: HomeAssistant) -> None:
await setup_platform(hass, SENSOR_DOMAIN)

state = hass.states.get("sensor.my_model_s_charging_rate")
assert state.state == str(car_mock_data.VEHICLE_DATA["charge_state"]["charge_rate"])
# Test state against km/hr
# Tesla API returns in miles so manually set charge rate to km/hr
assert state.state == "37.34"

assert state.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.MEASUREMENT

Expand Down Expand Up @@ -241,12 +243,12 @@ async def test_odometer_value(hass: HomeAssistant) -> None:
await setup_platform(hass, SENSOR_DOMAIN)

state = hass.states.get("sensor.my_model_s_odometer")
assert state.state == str(
round(car_mock_data.VEHICLE_DATA["vehicle_state"]["odometer"], 1)
)
# Test state against odometer in kilometers
# Tesla API returns in miles so manually set range in kilometers
assert state.state == "114127.59"

assert state.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.TOTAL_INCREASING
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == LENGTH_MILES
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == LENGTH_KILOMETERS


async def test_outside_temp_value(hass: HomeAssistant) -> None:
Expand All @@ -268,12 +270,12 @@ async def test_range_value(hass: HomeAssistant) -> None:
await setup_platform(hass, SENSOR_DOMAIN)

state = hass.states.get("sensor.my_model_s_range")
assert state.state == str(
car_mock_data.VEHICLE_DATA["charge_state"]["battery_range"]
)
# Test state against range in kilometers
# Tesla API returns in miles so manually set range in kilometers
assert state.state == "272.11"

assert state.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == LENGTH_MILES
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == LENGTH_KILOMETERS


async def test_solar_power_value(hass: HomeAssistant) -> None:
Expand Down

0 comments on commit 97539ea

Please sign in to comment.