Skip to content

Commit 76cc5c7

Browse files
authored
feat: Add MQTT sync from Teslamate for battery_range (#715)
Re-use cast-method from odometer since they both are reported in km from Teslamate and need to be converted to miles for teslajsonpy to be happy.
1 parent e58e933 commit 76cc5c7

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

custom_components/tesla_custom/teslamate.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,18 @@
2929
logger = logging.getLogger(__name__)
3030

3131

32-
def cast_odometer(odometer: float) -> float:
32+
def cast_km_to_miles(km_to_convert: float) -> float:
3333
"""Convert KM to Miles.
3434
35-
The Tesla API natively returns the Odometer in Miles.
36-
TeslaMate returns the Odometer in KMs.
37-
We need to convert to Miles so the Odometer sensor calculates
35+
The Tesla API natively returns properties in Miles.
36+
TeslaMate returns some properties in KMs.
37+
We need to convert to Miles so the home assistant sensor calculates
3838
properly.
3939
"""
40-
odometer_km = float(odometer)
41-
odometer_miles = DistanceConverter.convert(
42-
odometer_km, UnitOfLength.KILOMETERS, UnitOfLength.MILES
43-
)
40+
km = float(km_to_convert)
41+
miles = DistanceConverter.convert(km, UnitOfLength.KILOMETERS, UnitOfLength.MILES)
4442

45-
return odometer_miles
43+
return miles
4644

4745

4846
def cast_plugged_in(val: str) -> str:
@@ -98,14 +96,15 @@ def cast_speed(speed: int) -> int:
9896
"tpms_pressure_rr": ("tpms_pressure_rr", float),
9997
"locked": ("locked", cast_bool),
10098
"sentry_mode": ("sentry_mode", cast_bool),
101-
"odometer": ("odometer", cast_odometer),
99+
"odometer": ("odometer", cast_km_to_miles),
102100
"trunk_open": ("rt", cast_trunk_open),
103101
"frunk_open": ("ft", cast_trunk_open),
104102
"is_user_present": ("is_user_present", cast_bool),
105103
}
106104

107105
MAP_CHARGE_STATE = {
108106
"battery_level": ("battery_level", float),
107+
"est_battery_range_km": ("battery_range", cast_km_to_miles),
109108
"usable_battery_level": ("usable_battery_level", float),
110109
"charge_energy_added": ("charge_energy_added", float),
111110
"charger_actual_current": ("charger_actual_current", int),

0 commit comments

Comments
 (0)