From a39710f9bc0f23f61036c82ad343b4edea414890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sun, 9 Nov 2025 20:26:48 +0200 Subject: [PATCH] huawei_lte sensor improvements (#155693) --- .../components/huawei_lte/icons.json | 3 + homeassistant/components/huawei_lte/sensor.py | 56 ++++++++++++++----- .../components/huawei_lte/strings.json | 13 ++++- 3 files changed, 57 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/huawei_lte/icons.json b/homeassistant/components/huawei_lte/icons.json index 483931ffd6b..3a19b1edfd5 100644 --- a/homeassistant/components/huawei_lte/icons.json +++ b/homeassistant/components/huawei_lte/icons.json @@ -128,6 +128,9 @@ "sms_messages_sim": { "default": "mdi:email-arrow-left" }, + "sms_new": { + "default": "mdi:email-arrow-left" + }, "sms_outbox_device": { "default": "mdi:email-arrow-right" }, diff --git a/homeassistant/components/huawei_lte/sensor.py b/homeassistant/components/huawei_lte/sensor.py index 003ba1f9823..a8c0ac9946d 100644 --- a/homeassistant/components/huawei_lte/sensor.py +++ b/homeassistant/components/huawei_lte/sensor.py @@ -501,8 +501,12 @@ SENSOR_META: dict[str, HuaweiSensorGroup] = { # KEY_MONITORING_CHECK_NOTIFICATIONS: HuaweiSensorGroup( exclude=re.compile( - r"^(onlineupdatestatus|smsstoragefull)$", - re.IGNORECASE, + r"""^( + OnlineUpdateStatus | # Could be useful, but what are the values? + SimOperEvent | # Unknown + SmsStorageFull # Handled by binary sensor + )$""", + re.IGNORECASE | re.VERBOSE, ), descriptions={ "UnreadMessage": HuaweiSensorEntityDescription( @@ -624,6 +628,20 @@ SENSOR_META: dict[str, HuaweiSensorGroup] = { device_class=SensorDeviceClass.DATA_RATE, state_class=SensorStateClass.MEASUREMENT, ), + "MaxDownloadRate": HuaweiSensorEntityDescription( + key="MaxDownloadRate", + translation_key="max_download_rate", + native_unit_of_measurement=UnitOfDataRate.BYTES_PER_SECOND, + device_class=SensorDeviceClass.DATA_RATE, + state_class=SensorStateClass.MEASUREMENT, + ), + "MaxUploadRate": HuaweiSensorEntityDescription( + key="MaxUploadRate", + translation_key="max_upload_rate", + native_unit_of_measurement=UnitOfDataRate.BYTES_PER_SECOND, + device_class=SensorDeviceClass.DATA_RATE, + state_class=SensorStateClass.MEASUREMENT, + ), "TotalConnectTime": HuaweiSensorEntityDescription( key="TotalConnectTime", translation_key="total_connected_duration", @@ -709,6 +727,10 @@ SENSOR_META: dict[str, HuaweiSensorGroup] = { key="LocalUnread", translation_key="sms_unread_device", ), + "NewMsg": HuaweiSensorEntityDescription( + key="NewMsg", + translation_key="sms_new", + ), "SimDraft": HuaweiSensorEntityDescription( key="SimDraft", translation_key="sms_drafts_sim", @@ -754,17 +776,25 @@ async def async_setup_entry( items = filter(key_meta.include.search, items) if key_meta.exclude: items = [x for x in items if not key_meta.exclude.search(x)] - sensors.extend( - HuaweiLteSensor( - router, - key, - item, - SENSOR_META[key].descriptions.get( - item, HuaweiSensorEntityDescription(key=item) - ), - ) - for item in items - ) + for item in items: + if not (desc := SENSOR_META[key].descriptions.get(item)): + _LOGGER.debug( # pylint: disable=hass-logger-period # false positive + ( + "Ignoring unknown sensor %s.%s. " + "Opening an issue at GitHub against the " + "huawei_lte integration would be appreciated, so we may be able to " + "add support for it in a future release. " + 'Include the sensor name "%s.%s" in the issue, ' + "as well as any information you may have about it, " + "such as values received for it as shown in the debug log." + ), + key, + item, + key, + item, + ) + continue + sensors.append(HuaweiLteSensor(router, key, item, desc)) async_add_entities(sensors, True) diff --git a/homeassistant/components/huawei_lte/strings.json b/homeassistant/components/huawei_lte/strings.json index d76f34a912a..7b2d8dfff48 100644 --- a/homeassistant/components/huawei_lte/strings.json +++ b/homeassistant/components/huawei_lte/strings.json @@ -53,10 +53,10 @@ "entity": { "binary_sensor": { "5ghz_wifi_status": { - "name": "5GHz Wi-Fi status" + "name": "Wi-Fi status (5GHz)" }, "24ghz_wifi_status": { - "name": "2.4GHz Wi-Fi status" + "name": "Wi-Fi status (2.4GHz)" }, "mobile_connection": { "name": "Mobile connection" @@ -163,6 +163,12 @@ "lte_uplink_frequency": { "name": "LTE uplink frequency" }, + "max_download_rate": { + "name": "Maximum download rate" + }, + "max_upload_rate": { + "name": "Maximum upload rate" + }, "mode": { "name": "Mode" }, @@ -302,6 +308,9 @@ "sms_messages_sim": { "name": "SMS messages (SIM)" }, + "sms_new": { + "name": "SMS new" + }, "sms_outbox_device": { "name": "SMS outbox (device)" },