diff --git a/homeassistant/components/nextcloud/binary_sensor.py b/homeassistant/components/nextcloud/binary_sensor.py index 0d960bea8ef077e81889d4e79e41b1e71a70232e..3cf3cc3ae2a7920334b98e2c314764bb471bb9db 100644 --- a/homeassistant/components/nextcloud/binary_sensor.py +++ b/homeassistant/components/nextcloud/binary_sensor.py @@ -25,7 +25,7 @@ async def async_setup_entry( coordinator: NextcloudDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] async_add_entities( [ - NextcloudBinarySensor(coordinator, name) + NextcloudBinarySensor(coordinator, name, entry) for name in coordinator.data if name in BINARY_SENSORS ] diff --git a/homeassistant/components/nextcloud/entity.py b/homeassistant/components/nextcloud/entity.py index 54976351dd288ec2d0e863282b49f5f5a6778e94..ed5882cfe74908b08bb136e98670fcbc477374e1 100644 --- a/homeassistant/components/nextcloud/entity.py +++ b/homeassistant/components/nextcloud/entity.py @@ -1,23 +1,31 @@ """Base entity for the Nextcloud integration.""" +from homeassistant.config_entries import ConfigEntry +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.update_coordinator import CoordinatorEntity +from .const import DOMAIN from .coordinator import NextcloudDataUpdateCoordinator class NextcloudEntity(CoordinatorEntity[NextcloudDataUpdateCoordinator]): """Base Nextcloud entity.""" + _attr_has_entity_name = True _attr_icon = "mdi:cloud" - def __init__(self, coordinator: NextcloudDataUpdateCoordinator, item: str) -> None: + def __init__( + self, coordinator: NextcloudDataUpdateCoordinator, item: str, entry: ConfigEntry + ) -> None: """Initialize the Nextcloud sensor.""" super().__init__(coordinator) self.item = item self._attr_name = item - - @property - def unique_id(self) -> str: - """Return the unique ID for this sensor.""" - return f"{self.coordinator.url}#{self.item}" + self._attr_unique_id = f"{coordinator.url}#{item}" + self._attr_device_info = DeviceInfo( + name="Nextcloud", + identifiers={(DOMAIN, entry.entry_id)}, + sw_version=coordinator.data.get("nextcloud_system_version"), + configuration_url=coordinator.url, + ) diff --git a/homeassistant/components/nextcloud/sensor.py b/homeassistant/components/nextcloud/sensor.py index eb6043e4bc6d5892a3052b11e4cf87ec0f4b14b6..a5df872e0843f92377c3cdccdcee47d94185149a 100644 --- a/homeassistant/components/nextcloud/sensor.py +++ b/homeassistant/components/nextcloud/sensor.py @@ -65,7 +65,7 @@ async def async_setup_entry( coordinator: NextcloudDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] async_add_entities( [ - NextcloudSensor(coordinator, name) + NextcloudSensor(coordinator, name, entry) for name in coordinator.data if name in SENSORS ]