From ed8fe9963e2345b9f40414dbf1e6a739da083d76 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Sat, 23 Apr 2022 07:57:39 +0200 Subject: [PATCH] Improve entity and device naming in Synology DSM (#69754) --- .../components/synology_dsm/__init__.py | 31 +++++++------------ .../components/synology_dsm/switch.py | 6 +++- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/homeassistant/components/synology_dsm/__init__.py b/homeassistant/components/synology_dsm/__init__.py index 8eed02118c0..8e42a2c02ae 100644 --- a/homeassistant/components/synology_dsm/__init__.py +++ b/homeassistant/components/synology_dsm/__init__.py @@ -249,13 +249,9 @@ class SynologyDSMBaseEntity( self._attr_unique_id: str = ( f"{api.information.serial}_{description.api_key}:{description.key}" ) - - @property - def device_info(self) -> DeviceInfo: - """Return the device information.""" - return DeviceInfo( + self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, self._api.information.serial)}, - name="Synology NAS", + name=self._api.network.hostname, manufacturer="Synology", model=self._api.information.model, sw_version=self._api.information.version_string, @@ -309,25 +305,22 @@ class SynologyDSMDeviceEntity(SynologyDSMBaseEntity): self._device_model = disk["model"].strip() self._device_firmware = disk["firm"] self._device_type = disk["diskType"] - self._name = ( - f"{self._api.network.hostname} {self._device_name} {description.name}" + + self._attr_name = ( + f"{self._api.network.hostname} ({self._device_name}) {description.name}" ) self._attr_unique_id += f"_{self._device_id}" - - @property - def available(self) -> bool: - """Return True if entity is available.""" - return self._api.storage # type: ignore [no-any-return] - - @property - def device_info(self) -> DeviceInfo: - """Return the device information.""" - return DeviceInfo( + self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, f"{self._api.information.serial}_{self._device_id}")}, - name=f"Synology NAS ({self._device_name} - {self._device_type})", + name=f"{self._api.network.hostname} ({self._device_name})", manufacturer=self._device_manufacturer, model=self._device_model, sw_version=self._device_firmware, via_device=(DOMAIN, self._api.information.serial), configuration_url=self._api.config_url, ) + + @property + def available(self) -> bool: + """Return True if entity is available.""" + return self._api.storage # type: ignore [no-any-return] diff --git a/homeassistant/components/synology_dsm/switch.py b/homeassistant/components/synology_dsm/switch.py index fc3e6c04dcf..bef88da166c 100644 --- a/homeassistant/components/synology_dsm/switch.py +++ b/homeassistant/components/synology_dsm/switch.py @@ -83,6 +83,10 @@ class SynoDSMSurveillanceHomeModeToggle(SynologyDSMBaseEntity, SwitchEntity): super().__init__(api, coordinator, description) self._version = version + self._attr_name = ( + f"{self._api.network.hostname} Surveillance Station {description.name}" + ) + @property def is_on(self) -> bool: """Return the state.""" @@ -125,7 +129,7 @@ class SynoDSMSurveillanceHomeModeToggle(SynologyDSMBaseEntity, SwitchEntity): f"{self._api.information.serial}_{SynoSurveillanceStation.INFO_API_KEY}", ) }, - name="Surveillance Station", + name=f"{self._api.network.hostname} Surveillance Station", manufacturer="Synology", model=self._api.information.model, sw_version=self._version,