From 27bdbc66000d39a691fdcc17cf229c5e0a86e38d Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Fri, 29 Dec 2023 05:07:56 -0500 Subject: [PATCH] Add entity name and translations to Netgear LTE (#106599) --- .../components/netgear_lte/binary_sensor.py | 3 ++ .../components/netgear_lte/entity.py | 2 +- .../components/netgear_lte/sensor.py | 28 +++++++--- .../components/netgear_lte/strings.json | 54 +++++++++++++++++++ .../netgear_lte/test_binary_sensor.py | 6 +-- tests/components/netgear_lte/test_sensor.py | 26 ++++----- 6 files changed, 95 insertions(+), 24 deletions(-) diff --git a/homeassistant/components/netgear_lte/binary_sensor.py b/homeassistant/components/netgear_lte/binary_sensor.py index ce179c9e980..ccabcc3b3ea 100644 --- a/homeassistant/components/netgear_lte/binary_sensor.py +++ b/homeassistant/components/netgear_lte/binary_sensor.py @@ -16,13 +16,16 @@ from .entity import LTEEntity BINARY_SENSORS: tuple[BinarySensorEntityDescription, ...] = ( BinarySensorEntityDescription( key="roaming", + translation_key="roaming", ), BinarySensorEntityDescription( key="wire_connected", + translation_key="wire_connected", device_class=BinarySensorDeviceClass.CONNECTIVITY, ), BinarySensorEntityDescription( key="mobile_connected", + translation_key="mobile_connected", device_class=BinarySensorDeviceClass.CONNECTIVITY, ), ) diff --git a/homeassistant/components/netgear_lte/entity.py b/homeassistant/components/netgear_lte/entity.py index 02827e7df3f..0ec16ceff9d 100644 --- a/homeassistant/components/netgear_lte/entity.py +++ b/homeassistant/components/netgear_lte/entity.py @@ -13,6 +13,7 @@ from .const import DISPATCHER_NETGEAR_LTE, DOMAIN, MANUFACTURER class LTEEntity(Entity): """Base LTE entity.""" + _attr_has_entity_name = True _attr_should_poll = False def __init__( @@ -24,7 +25,6 @@ class LTEEntity(Entity): """Initialize a Netgear LTE entity.""" self.entity_description = description self.modem_data = modem_data - self._attr_name = f"Netgear LTE {description.key}" self._attr_unique_id = f"{description.key}_{modem_data.data.serial_number}" self._attr_device_info = DeviceInfo( configuration_url=f"http://{config_entry.data[CONF_HOST]}", diff --git a/homeassistant/components/netgear_lte/sensor.py b/homeassistant/components/netgear_lte/sensor.py index d281c93d795..49702c1ce41 100644 --- a/homeassistant/components/netgear_lte/sensor.py +++ b/homeassistant/components/netgear_lte/sensor.py @@ -34,39 +34,53 @@ class NetgearLTESensorEntityDescription(SensorEntityDescription): SENSORS: tuple[NetgearLTESensorEntityDescription, ...] = ( NetgearLTESensorEntityDescription( key="sms", + translation_key="sms", native_unit_of_measurement="unread", value_fn=lambda modem_data: sum(1 for x in modem_data.data.sms if x.unread), ), NetgearLTESensorEntityDescription( key="sms_total", + translation_key="sms_total", native_unit_of_measurement="messages", value_fn=lambda modem_data: len(modem_data.data.sms), ), NetgearLTESensorEntityDescription( key="usage", + translation_key="usage", device_class=SensorDeviceClass.DATA_SIZE, native_unit_of_measurement=UnitOfInformation.MEBIBYTES, value_fn=lambda modem_data: round(modem_data.data.usage / 1024**2, 1), ), NetgearLTESensorEntityDescription( key="radio_quality", + translation_key="radio_quality", native_unit_of_measurement=PERCENTAGE, ), NetgearLTESensorEntityDescription( key="rx_level", + translation_key="rx_level", native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS_MILLIWATT, ), NetgearLTESensorEntityDescription( key="tx_level", + translation_key="tx_level", native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS_MILLIWATT, ), - NetgearLTESensorEntityDescription(key="upstream"), - NetgearLTESensorEntityDescription(key="connection_text"), - NetgearLTESensorEntityDescription(key="connection_type"), - NetgearLTESensorEntityDescription(key="current_ps_service_type"), - NetgearLTESensorEntityDescription(key="register_network_display"), - NetgearLTESensorEntityDescription(key="current_band"), - NetgearLTESensorEntityDescription(key="cell_id"), + NetgearLTESensorEntityDescription(key="upstream", translation_key="upstream"), + NetgearLTESensorEntityDescription( + key="connection_text", translation_key="connection_text" + ), + NetgearLTESensorEntityDescription( + key="connection_type", translation_key="connection_type" + ), + NetgearLTESensorEntityDescription( + key="current_ps_service_type", translation_key="service_type" + ), + NetgearLTESensorEntityDescription( + key="register_network_display", translation_key="register_network_display" + ), + NetgearLTESensorEntityDescription(key="current_band", translation_key="band"), + NetgearLTESensorEntityDescription(key="cell_id", translation_key="cell_id"), ) diff --git a/homeassistant/components/netgear_lte/strings.json b/homeassistant/components/netgear_lte/strings.json index 8992fb50670..5719d693d15 100644 --- a/homeassistant/components/netgear_lte/strings.json +++ b/homeassistant/components/netgear_lte/strings.json @@ -80,5 +80,59 @@ } } } + }, + "entity": { + "binary_sensor": { + "mobile_connected": { + "name": "Mobile connected" + }, + "roaming": { + "name": "Roaming" + }, + "wire_connected": { + "name": "Wire connected" + } + }, + "sensor": { + "band": { + "name": "Current band" + }, + "cell_id": { + "name": "Cell ID" + }, + "connection_text": { + "name": "Connection text" + }, + "connection_type": { + "name": "Connection type" + }, + "radio_quality": { + "name": "Radio quality" + }, + "register_network_display": { + "name": "Register network display" + }, + "rx_level": { + "name": "Rx level" + }, + "service_type": { + "name": "Service type" + }, + "sms": { + "name": "SMS" + }, + "sms_total": { + "name": "SMS total" + }, + "tx_level": { + "name": "Tx level" + }, + "upstream": { + "name": "Upstream" + }, + "usage": { + "name": "Usage" + } + } } } diff --git a/tests/components/netgear_lte/test_binary_sensor.py b/tests/components/netgear_lte/test_binary_sensor.py index 8ed43c8c887..9d45194aa69 100644 --- a/tests/components/netgear_lte/test_binary_sensor.py +++ b/tests/components/netgear_lte/test_binary_sensor.py @@ -9,11 +9,11 @@ from homeassistant.core import HomeAssistant @pytest.mark.usefixtures("setup_integration", "entity_registry_enabled_by_default") async def test_binary_sensors(hass: HomeAssistant) -> None: """Test for successfully setting up the Netgear LTE binary sensor platform.""" - state = hass.states.get("binary_sensor.netgear_lte_mobile_connected") + state = hass.states.get("binary_sensor.netgear_lm1200_mobile_connected") assert state.state == STATE_ON assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.CONNECTIVITY - state = hass.states.get("binary_sensor.netgear_lte_wire_connected") + state = hass.states.get("binary_sensor.netgear_lm1200_wire_connected") assert state.state == STATE_OFF assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.CONNECTIVITY - state = hass.states.get("binary_sensor.netgear_lte_roaming") + state = hass.states.get("binary_sensor.netgear_lm1200_roaming") assert state.state == STATE_OFF diff --git a/tests/components/netgear_lte/test_sensor.py b/tests/components/netgear_lte/test_sensor.py index 8682af9a5c3..cdd7fbbd38e 100644 --- a/tests/components/netgear_lte/test_sensor.py +++ b/tests/components/netgear_lte/test_sensor.py @@ -15,42 +15,42 @@ from homeassistant.core import HomeAssistant @pytest.mark.usefixtures("setup_integration", "entity_registry_enabled_by_default") async def test_sensors(hass: HomeAssistant) -> None: """Test for successfully setting up the Netgear LTE sensor platform.""" - state = hass.states.get("sensor.netgear_lte_cell_id") + state = hass.states.get("sensor.netgear_lm1200_cell_id") assert state.state == "12345678" - state = hass.states.get("sensor.netgear_lte_connection_text") + state = hass.states.get("sensor.netgear_lm1200_connection_text") assert state.state == "4G" - state = hass.states.get("sensor.netgear_lte_connection_type") + state = hass.states.get("sensor.netgear_lm1200_connection_type") assert state.state == "IPv4AndIPv6" - state = hass.states.get("sensor.netgear_lte_current_band") + state = hass.states.get("sensor.netgear_lm1200_current_band") assert state.state == "LTE B4" - state = hass.states.get("sensor.netgear_lte_current_ps_service_type") + state = hass.states.get("sensor.netgear_lm1200_service_type") assert state.state == "LTE" - state = hass.states.get("sensor.netgear_lte_radio_quality") + state = hass.states.get("sensor.netgear_lm1200_radio_quality") assert state.state == "52" assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE - state = hass.states.get("sensor.netgear_lte_register_network_display") + state = hass.states.get("sensor.netgear_lm1200_register_network_display") assert state.state == "T-Mobile" - state = hass.states.get("sensor.netgear_lte_rx_level") + state = hass.states.get("sensor.netgear_lm1200_rx_level") assert state.state == "-113" assert ( state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == SIGNAL_STRENGTH_DECIBELS_MILLIWATT ) - state = hass.states.get("sensor.netgear_lte_sms") + state = hass.states.get("sensor.netgear_lm1200_sms") assert state.state == "1" assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == "unread" - state = hass.states.get("sensor.netgear_lte_sms_total") + state = hass.states.get("sensor.netgear_lm1200_sms_total") assert state.state == "1" assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == "messages" - state = hass.states.get("sensor.netgear_lte_tx_level") + state = hass.states.get("sensor.netgear_lm1200_tx_level") assert state.state == "4" assert ( state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == SIGNAL_STRENGTH_DECIBELS_MILLIWATT ) - state = hass.states.get("sensor.netgear_lte_upstream") + state = hass.states.get("sensor.netgear_lm1200_upstream") assert state.state == "LTE" - state = hass.states.get("sensor.netgear_lte_usage") + state = hass.states.get("sensor.netgear_lm1200_usage") assert state.state == "40.5" assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfInformation.MEBIBYTES assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.DATA_SIZE