Remove battery_level property from Tractive device tracker (#172756)

This commit is contained in:
Maciej Bieniek
2026-06-01 21:57:42 +02:00
committed by GitHub
parent 6a836bd1d9
commit a19f3045e7
3 changed files with 2 additions and 48 deletions
@@ -8,11 +8,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import Trackables, TractiveClient, TractiveConfigEntry
from .const import (
SERVER_UNAVAILABLE,
TRACKER_HARDWARE_STATUS_UPDATED,
TRACKER_POSITION_UPDATED,
)
from .const import SERVER_UNAVAILABLE, TRACKER_POSITION_UPDATED
from .entity import TractiveEntity
@@ -42,10 +38,9 @@ class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
client,
item.trackable,
item.tracker_details,
f"{TRACKER_HARDWARE_STATUS_UPDATED}-{item.tracker_details['_id']}",
f"{TRACKER_POSITION_UPDATED}-{item.tracker_details['_id']}",
)
self._battery_level: int | None = item.hw_info.get("battery_level")
self._attr_latitude = item.pos_report["latlong"][0]
self._attr_longitude = item.pos_report["latlong"][1]
self._attr_location_accuracy: float = item.pos_report["pos_uncertainty"]
@@ -59,17 +54,6 @@ class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
return SourceType.BLUETOOTH
return SourceType.GPS
@property
def battery_level(self) -> int | None:
"""Return the battery level of the device."""
return self._battery_level
@callback
def _handle_hardware_status_update(self, event: dict[str, Any]) -> None:
self._battery_level = event["battery_level"]
self._attr_available = True
self.async_write_ha_state()
@callback
def _handle_position_update(self, event: dict[str, Any]) -> None:
self._attr_latitude = event["latitude"]
@@ -85,14 +69,6 @@ class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
if not self._client.subscribed:
self._client.subscribe()
self.async_on_remove(
async_dispatcher_connect(
self.hass,
self._dispatcher_signal,
self._handle_hardware_status_update,
)
)
self.async_on_remove(
async_dispatcher_connect(
self.hass,
@@ -39,7 +39,6 @@
# name: test_device_tracker[device_tracker.tracker_device_id_123-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'battery_level': 88,
'friendly_name': 'Tracker device_id_123',
'gps_accuracy': 99,
'in_zones': list([
@@ -94,27 +94,6 @@ async def test_source_type_gps(
)
async def test_device_tracker_with_empty_hw_info(
hass: HomeAssistant,
mock_tractive_client: AsyncMock,
mock_config_entry: MockConfigEntry,
) -> None:
"""Test that the device tracker sets up correctly when hw_info is empty."""
mock_tractive_client.tracker.return_value.hw_info = AsyncMock(return_value={})
with patch(
"homeassistant.components.tractive.PLATFORMS", [Platform.DEVICE_TRACKER]
):
await init_integration(hass, mock_config_entry)
mock_tractive_client.send_position_event(mock_config_entry)
await hass.async_block_till_done()
state = hass.states.get("device_tracker.tracker_device_id_123")
assert state is not None
assert state.attributes.get("battery_level") is None
async def test_device_tracker_device_assignment(
hass: HomeAssistant,
entity_registry: er.EntityRegistry,