diff --git a/homeassistant/components/pi_hole/binary_sensor.py b/homeassistant/components/pi_hole/binary_sensor.py index 4aa391b567f..3a90e6fc78b 100644 --- a/homeassistant/components/pi_hole/binary_sensor.py +++ b/homeassistant/components/pi_hole/binary_sensor.py @@ -77,7 +77,7 @@ BINARY_SENSOR_TYPES: tuple[PiHoleBinarySensorEntityDescription, ...] = ( ), PiHoleBinarySensorEntityDescription( key="status", - name="Status", + translation_key="status", icon="mdi:pi-hole", state_value=lambda api: bool(api.data.get("status") == "enabled"), ), @@ -109,6 +109,7 @@ class PiHoleBinarySensor(PiHoleEntity, BinarySensorEntity): """Representation of a Pi-hole binary sensor.""" entity_description: PiHoleBinarySensorEntityDescription + _attr_has_entity_name = True def __init__( self, @@ -123,10 +124,9 @@ class PiHoleBinarySensor(PiHoleEntity, BinarySensorEntity): self.entity_description = description if description.key == "status": + self._attr_has_entity_name = False self._attr_name = f"{name}" - else: - self._attr_name = f"{name} {description.name}" - self._attr_unique_id = f"{self._server_unique_id}/{description.name}" + self._attr_unique_id = f"{self._server_unique_id}/{description.key}" @property def is_on(self) -> bool: diff --git a/homeassistant/components/pi_hole/sensor.py b/homeassistant/components/pi_hole/sensor.py index 5d36ba67e83..c6a8d5da83d 100644 --- a/homeassistant/components/pi_hole/sensor.py +++ b/homeassistant/components/pi_hole/sensor.py @@ -17,55 +17,55 @@ from .const import DATA_KEY_API, DATA_KEY_COORDINATOR, DOMAIN as PIHOLE_DOMAIN SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( SensorEntityDescription( key="ads_blocked_today", - name="Ads Blocked Today", + translation_key="ads_blocked_today", native_unit_of_measurement="ads", icon="mdi:close-octagon-outline", ), SensorEntityDescription( key="ads_percentage_today", - name="Ads Percentage Blocked Today", + translation_key="ads_percentage_today", native_unit_of_measurement=PERCENTAGE, icon="mdi:close-octagon-outline", ), SensorEntityDescription( key="clients_ever_seen", - name="Seen Clients", + translation_key="clients_ever_seen", native_unit_of_measurement="clients", icon="mdi:account-outline", ), SensorEntityDescription( key="dns_queries_today", - name="DNS Queries Today", + translation_key="dns_queries_today", native_unit_of_measurement="queries", icon="mdi:comment-question-outline", ), SensorEntityDescription( key="domains_being_blocked", - name="Domains Blocked", + translation_key="domains_being_blocked", native_unit_of_measurement="domains", icon="mdi:block-helper", ), SensorEntityDescription( key="queries_cached", - name="DNS Queries Cached", + translation_key="queries_cached", native_unit_of_measurement="queries", icon="mdi:comment-question-outline", ), SensorEntityDescription( key="queries_forwarded", - name="DNS Queries Forwarded", + translation_key="queries_forwarded", native_unit_of_measurement="queries", icon="mdi:comment-question-outline", ), SensorEntityDescription( key="unique_clients", - name="DNS Unique Clients", + translation_key="unique_clients", native_unit_of_measurement="clients", icon="mdi:account-outline", ), SensorEntityDescription( key="unique_domains", - name="DNS Unique Domains", + translation_key="unique_domains", native_unit_of_measurement="domains", icon="mdi:domain", ), @@ -95,6 +95,7 @@ class PiHoleSensor(PiHoleEntity, SensorEntity): """Representation of a Pi-hole sensor.""" entity_description: SensorEntityDescription + _attr_has_entity_name = True def __init__( self, @@ -108,8 +109,7 @@ class PiHoleSensor(PiHoleEntity, SensorEntity): super().__init__(api, coordinator, name, server_unique_id) self.entity_description = description - self._attr_name = f"{name} {description.name}" - self._attr_unique_id = f"{self._server_unique_id}/{description.name}" + self._attr_unique_id = f"{self._server_unique_id}/{description.key}" @property def native_value(self) -> StateType: diff --git a/homeassistant/components/pi_hole/strings.json b/homeassistant/components/pi_hole/strings.json index 2f04b8fe47e..a997060eb58 100644 --- a/homeassistant/components/pi_hole/strings.json +++ b/homeassistant/components/pi_hole/strings.json @@ -32,5 +32,26 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } + }, + "entity": { + "binary_sensor": { + "status": { "name": "Status" } + }, + "sensor": { + "ads_blocked_today": { "name": "Ads blocked today" }, + "ads_percentage_today": { "name": "Ads percentage blocked today" }, + "clients_ever_seen": { "name": "Seen clients" }, + "dns_queries_today": { "name": "DNS queries today" }, + "domains_being_blocked": { "name": "Domains blocked" }, + "queries_cached": { "name": "DNS queries cached" }, + "queries_forwarded": { "name": "DNS queries forwarded" }, + "unique_clients": { "name": "DNS unique clients" }, + "unique_domains": { "name": "DNS unique domains" } + }, + "update": { + "core_update_available": { "name": "Core update available" }, + "ftl_update_available": { "name": "FTL update available" }, + "web_update_available": { "name": "Web update available" } + } } } diff --git a/homeassistant/components/pi_hole/update.py b/homeassistant/components/pi_hole/update.py index d92d78dbb52..b9d8bf828d4 100644 --- a/homeassistant/components/pi_hole/update.py +++ b/homeassistant/components/pi_hole/update.py @@ -30,7 +30,7 @@ class PiHoleUpdateEntityDescription(UpdateEntityDescription): UPDATE_ENTITY_TYPES: tuple[PiHoleUpdateEntityDescription, ...] = ( PiHoleUpdateEntityDescription( key="core_update_available", - name="Core Update Available", + translation_key="core_update_available", title="Pi-hole Core", entity_category=EntityCategory.DIAGNOSTIC, installed_version=lambda versions: versions.get("core_current"), @@ -39,7 +39,7 @@ UPDATE_ENTITY_TYPES: tuple[PiHoleUpdateEntityDescription, ...] = ( ), PiHoleUpdateEntityDescription( key="web_update_available", - name="Web Update Available", + translation_key="web_update_available", title="Pi-hole Web interface", entity_category=EntityCategory.DIAGNOSTIC, installed_version=lambda versions: versions.get("web_current"), @@ -48,7 +48,7 @@ UPDATE_ENTITY_TYPES: tuple[PiHoleUpdateEntityDescription, ...] = ( ), PiHoleUpdateEntityDescription( key="ftl_update_available", - name="FTL Update Available", + translation_key="ftl_update_available", title="Pi-hole FTL DNS", entity_category=EntityCategory.DIAGNOSTIC, installed_version=lambda versions: versions.get("FTL_current"), @@ -81,6 +81,7 @@ class PiHoleUpdateEntity(PiHoleEntity, UpdateEntity): """Representation of a Pi-hole update entity.""" entity_description: PiHoleUpdateEntityDescription + _attr_has_entity_name = True def __init__( self, @@ -94,8 +95,7 @@ class PiHoleUpdateEntity(PiHoleEntity, UpdateEntity): super().__init__(api, coordinator, name, server_unique_id) self.entity_description = description - self._attr_name = f"{name} {description.name}" - self._attr_unique_id = f"{self._server_unique_id}/{description.name}" + self._attr_unique_id = f"{self._server_unique_id}/{description.key}" self._attr_title = description.title @property diff --git a/tests/components/pi_hole/test_init.py b/tests/components/pi_hole/test_init.py index 492aeebf2e4..29402a06f75 100644 --- a/tests/components/pi_hole/test_init.py +++ b/tests/components/pi_hole/test_init.py @@ -36,39 +36,39 @@ async def test_setup_with_defaults(hass: HomeAssistant) -> None: assert await hass.config_entries.async_setup(entry.entry_id) state = hass.states.get("sensor.pi_hole_ads_blocked_today") - assert state.name == "Pi-Hole Ads Blocked Today" + assert state.name == "Pi-Hole Ads blocked today" assert state.state == "0" state = hass.states.get("sensor.pi_hole_ads_percentage_blocked_today") - assert state.name == "Pi-Hole Ads Percentage Blocked Today" + assert state.name == "Pi-Hole Ads percentage blocked today" assert state.state == "0" state = hass.states.get("sensor.pi_hole_dns_queries_cached") - assert state.name == "Pi-Hole DNS Queries Cached" + assert state.name == "Pi-Hole DNS queries cached" assert state.state == "0" state = hass.states.get("sensor.pi_hole_dns_queries_forwarded") - assert state.name == "Pi-Hole DNS Queries Forwarded" + assert state.name == "Pi-Hole DNS queries forwarded" assert state.state == "0" state = hass.states.get("sensor.pi_hole_dns_queries_today") - assert state.name == "Pi-Hole DNS Queries Today" + assert state.name == "Pi-Hole DNS queries today" assert state.state == "0" state = hass.states.get("sensor.pi_hole_dns_unique_clients") - assert state.name == "Pi-Hole DNS Unique Clients" + assert state.name == "Pi-Hole DNS unique clients" assert state.state == "0" state = hass.states.get("sensor.pi_hole_dns_unique_domains") - assert state.name == "Pi-Hole DNS Unique Domains" + assert state.name == "Pi-Hole DNS unique domains" assert state.state == "0" state = hass.states.get("sensor.pi_hole_domains_blocked") - assert state.name == "Pi-Hole Domains Blocked" + assert state.name == "Pi-Hole Domains blocked" assert state.state == "0" state = hass.states.get("sensor.pi_hole_seen_clients") - assert state.name == "Pi-Hole Seen Clients" + assert state.name == "Pi-Hole Seen clients" assert state.state == "0" state = hass.states.get("binary_sensor.pi_hole") @@ -90,7 +90,7 @@ async def test_setup_name_config(hass: HomeAssistant) -> None: assert ( hass.states.get("sensor.custom_ads_blocked_today").name - == "Custom Ads Blocked Today" + == "Custom Ads blocked today" ) diff --git a/tests/components/pi_hole/test_update.py b/tests/components/pi_hole/test_update.py index 18bdf88cf5c..091b553c475 100644 --- a/tests/components/pi_hole/test_update.py +++ b/tests/components/pi_hole/test_update.py @@ -20,7 +20,7 @@ async def test_update(hass: HomeAssistant) -> None: await hass.async_block_till_done() state = hass.states.get("update.pi_hole_core_update_available") - assert state.name == "Pi-Hole Core Update Available" + assert state.name == "Pi-Hole Core update available" assert state.state == STATE_ON assert state.attributes["installed_version"] == "v5.5" assert state.attributes["latest_version"] == "v5.6" @@ -30,7 +30,7 @@ async def test_update(hass: HomeAssistant) -> None: ) state = hass.states.get("update.pi_hole_ftl_update_available") - assert state.name == "Pi-Hole FTL Update Available" + assert state.name == "Pi-Hole FTL update available" assert state.state == STATE_ON assert state.attributes["installed_version"] == "v5.10" assert state.attributes["latest_version"] == "v5.11" @@ -40,7 +40,7 @@ async def test_update(hass: HomeAssistant) -> None: ) state = hass.states.get("update.pi_hole_web_update_available") - assert state.name == "Pi-Hole Web Update Available" + assert state.name == "Pi-Hole Web update available" assert state.state == STATE_ON assert state.attributes["installed_version"] == "v5.7" assert state.attributes["latest_version"] == "v5.8" @@ -61,21 +61,21 @@ async def test_update_no_versions(hass: HomeAssistant) -> None: await hass.async_block_till_done() state = hass.states.get("update.pi_hole_core_update_available") - assert state.name == "Pi-Hole Core Update Available" + assert state.name == "Pi-Hole Core update available" assert state.state == STATE_UNKNOWN assert state.attributes["installed_version"] is None assert state.attributes["latest_version"] is None assert state.attributes["release_url"] is None state = hass.states.get("update.pi_hole_ftl_update_available") - assert state.name == "Pi-Hole FTL Update Available" + assert state.name == "Pi-Hole FTL update available" assert state.state == STATE_UNKNOWN assert state.attributes["installed_version"] is None assert state.attributes["latest_version"] is None assert state.attributes["release_url"] is None state = hass.states.get("update.pi_hole_web_update_available") - assert state.name == "Pi-Hole Web Update Available" + assert state.name == "Pi-Hole Web update available" assert state.state == STATE_UNKNOWN assert state.attributes["installed_version"] is None assert state.attributes["latest_version"] is None