mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 09:17:10 +00:00
Address Starlink code quality and add update sensor (#86066)
* Use dt.now * Bring back update binary sensor * Don't patch coordinator * Add silver quality scale
This commit is contained in:
parent
4aba3fdad6
commit
ec1b4d5651
@ -58,6 +58,12 @@ class StarlinkBinarySensorEntity(StarlinkEntity, BinarySensorEntity):
|
|||||||
|
|
||||||
|
|
||||||
BINARY_SENSORS = [
|
BINARY_SENSORS = [
|
||||||
|
StarlinkBinarySensorEntityDescription(
|
||||||
|
key="update",
|
||||||
|
name="Update available",
|
||||||
|
device_class=BinarySensorDeviceClass.UPDATE,
|
||||||
|
value_fn=lambda data: data.alert["alert_install_pending"],
|
||||||
|
),
|
||||||
StarlinkBinarySensorEntityDescription(
|
StarlinkBinarySensorEntityDescription(
|
||||||
key="roaming",
|
key="roaming",
|
||||||
name="Roaming mode",
|
name="Roaming mode",
|
||||||
|
@ -5,5 +5,6 @@
|
|||||||
"documentation": "https://www.home-assistant.io/integrations/starlink",
|
"documentation": "https://www.home-assistant.io/integrations/starlink",
|
||||||
"requirements": ["starlink-grpc-core==1.1.1"],
|
"requirements": ["starlink-grpc-core==1.1.1"],
|
||||||
"codeowners": ["@boswelja"],
|
"codeowners": ["@boswelja"],
|
||||||
"iot_class": "local_polling"
|
"iot_class": "local_polling",
|
||||||
|
"quality_scale": "silver"
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.helpers.entity import EntityCategory
|
from homeassistant.helpers.entity import EntityCategory
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
|
from homeassistant.util.dt import now
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import StarlinkData
|
from .coordinator import StarlinkData
|
||||||
@ -108,7 +109,6 @@ SENSORS: tuple[StarlinkSensorEntityDescription, ...] = (
|
|||||||
icon="mdi:clock",
|
icon="mdi:clock",
|
||||||
device_class=SensorDeviceClass.TIMESTAMP,
|
device_class=SensorDeviceClass.TIMESTAMP,
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
value_fn=lambda data: datetime.now().astimezone()
|
value_fn=lambda data: now() - timedelta(seconds=data.status["uptime"]),
|
||||||
- timedelta(seconds=data.status["uptime"]),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -3,23 +3,17 @@ from unittest.mock import patch
|
|||||||
|
|
||||||
from starlink_grpc import StatusDict
|
from starlink_grpc import StatusDict
|
||||||
|
|
||||||
from homeassistant.components.starlink.coordinator import (
|
|
||||||
StarlinkData,
|
|
||||||
StarlinkUpdateCoordinator,
|
|
||||||
)
|
|
||||||
|
|
||||||
SETUP_ENTRY_PATCHER = patch(
|
SETUP_ENTRY_PATCHER = patch(
|
||||||
"homeassistant.components.starlink.async_setup_entry", return_value=True
|
"homeassistant.components.starlink.async_setup_entry", return_value=True
|
||||||
)
|
)
|
||||||
|
|
||||||
COORDINATOR_SUCCESS_PATCHER = patch.object(
|
COORDINATOR_SUCCESS_PATCHER = patch(
|
||||||
StarlinkUpdateCoordinator,
|
"homeassistant.components.starlink.coordinator.status_data",
|
||||||
"_async_update_data",
|
return_value=[
|
||||||
return_value=StarlinkData(
|
|
||||||
StatusDict(id="1", software_version="1", hardware_version="1"),
|
StatusDict(id="1", software_version="1", hardware_version="1"),
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
),
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
DEVICE_FOUND_PATCHER = patch(
|
DEVICE_FOUND_PATCHER = patch(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user