From ed3ea5e5f402f5ca545da64f80cb2f2aedba0169 Mon Sep 17 00:00:00 2001 From: Cyrill Raccaud Date: Wed, 27 Dec 2023 15:08:58 +0100 Subject: [PATCH] Add device to swiss public transport (#106475) add to device registry --- .../swiss_public_transport/sensor.py | 23 +++++++++++++++---- .../swiss_public_transport/strings.json | 7 ++++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/swiss_public_transport/sensor.py b/homeassistant/components/swiss_public_transport/sensor.py index 63b5891e48d..47954229a1f 100644 --- a/homeassistant/components/swiss_public_transport/sensor.py +++ b/homeassistant/components/swiss_public_transport/sensor.py @@ -3,6 +3,7 @@ from __future__ import annotations from datetime import timedelta import logging +from typing import TYPE_CHECKING import voluptuous as vol @@ -13,6 +14,7 @@ from homeassistant.const import CONF_NAME from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant, callback from homeassistant.data_entry_flow import FlowResultType import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType @@ -42,10 +44,13 @@ async def async_setup_entry( """Set up the sensor from a config entry created in the integrations UI.""" coordinator = hass.data[DOMAIN][config_entry.entry_id] - name = config_entry.title + unique_id = config_entry.unique_id + + if TYPE_CHECKING: + assert unique_id async_add_entities( - [SwissPublicTransportSensor(coordinator, name)], + [SwissPublicTransportSensor(coordinator, unique_id)], True, ) @@ -101,14 +106,22 @@ class SwissPublicTransportSensor( _attr_attribution = "Data provided by transport.opendata.ch" _attr_icon = "mdi:bus" + _attr_has_entity_name = True + _attr_translation_key = "departure" def __init__( - self, coordinator: SwissPublicTransportDataUpdateCoordinator, name: str + self, + coordinator: SwissPublicTransportDataUpdateCoordinator, + unique_id: str, ) -> None: """Initialize the sensor.""" super().__init__(coordinator) - self._coordinator = coordinator - self._attr_name = name + self._attr_unique_id = f"{unique_id}_departure" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, unique_id)}, + manufacturer="Opendata.ch", + entry_type=DeviceEntryType.SERVICE, + ) @callback def _handle_coordinator_update(self) -> None: diff --git a/homeassistant/components/swiss_public_transport/strings.json b/homeassistant/components/swiss_public_transport/strings.json index 01736beba78..6d0eb53ad11 100644 --- a/homeassistant/components/swiss_public_transport/strings.json +++ b/homeassistant/components/swiss_public_transport/strings.json @@ -22,6 +22,13 @@ } } }, + "entity": { + "sensor": { + "departure": { + "name": "Departure" + } + } + }, "issues": { "deprecated_yaml_import_issue_cannot_connect": { "title": "The swiss public transport YAML configuration import cannot connect to server",