diff --git a/homeassistant/components/huawei_lte/__init__.py b/homeassistant/components/huawei_lte/__init__.py index 261250e9c02..e4291ae7e67 100644 --- a/homeassistant/components/huawei_lte/__init__.py +++ b/homeassistant/components/huawei_lte/__init__.py @@ -66,6 +66,8 @@ from .const import ( KEY_MONITORING_MONTH_STATISTICS, KEY_MONITORING_STATUS, KEY_MONITORING_TRAFFIC_STATISTICS, + KEY_NET_CURRENT_PLMN, + KEY_NET_NET_MODE, KEY_WLAN_HOST_LIST, NOTIFY_SUPPRESS_TIMEOUT, SERVICE_CLEAR_TRAFFIC_STATISTICS, @@ -238,6 +240,8 @@ class Router: self._get_data( KEY_MONITORING_TRAFFIC_STATISTICS, self.client.monitoring.traffic_statistics ) + self._get_data(KEY_NET_CURRENT_PLMN, self.client.net.current_plmn) + self._get_data(KEY_NET_NET_MODE, self.client.net.net_mode) self._get_data(KEY_WLAN_HOST_LIST, self.client.wlan.host_list) self.signal_update() diff --git a/homeassistant/components/huawei_lte/const.py b/homeassistant/components/huawei_lte/const.py index 5a4aeb5f0b7..5279dd65b92 100644 --- a/homeassistant/components/huawei_lte/const.py +++ b/homeassistant/components/huawei_lte/const.py @@ -30,6 +30,8 @@ KEY_DIALUP_MOBILE_DATASWITCH = "dialup_mobile_dataswitch" KEY_MONITORING_MONTH_STATISTICS = "monitoring_month_statistics" KEY_MONITORING_STATUS = "monitoring_status" KEY_MONITORING_TRAFFIC_STATISTICS = "monitoring_traffic_statistics" +KEY_NET_CURRENT_PLMN = "net_current_plmn" +KEY_NET_NET_MODE = "net_net_mode" KEY_WLAN_HOST_LIST = "wlan_host_list" BINARY_SENSOR_KEYS = {KEY_MONITORING_STATUS} @@ -42,6 +44,8 @@ SENSOR_KEYS = { KEY_MONITORING_MONTH_STATISTICS, KEY_MONITORING_STATUS, KEY_MONITORING_TRAFFIC_STATISTICS, + KEY_NET_CURRENT_PLMN, + KEY_NET_NET_MODE, } SWITCH_KEYS = {KEY_DIALUP_MOBILE_DATASWITCH} diff --git a/homeassistant/components/huawei_lte/sensor.py b/homeassistant/components/huawei_lte/sensor.py index e49de1c05a3..84d8e72c2ff 100644 --- a/homeassistant/components/huawei_lte/sensor.py +++ b/homeassistant/components/huawei_lte/sensor.py @@ -20,6 +20,8 @@ from .const import ( KEY_MONITORING_MONTH_STATISTICS, KEY_MONITORING_STATUS, KEY_MONITORING_TRAFFIC_STATISTICS, + KEY_NET_CURRENT_PLMN, + KEY_NET_NET_MODE, SENSOR_KEYS, ) @@ -170,6 +172,29 @@ SENSOR_META = { (KEY_MONITORING_TRAFFIC_STATISTICS, "TotalUpload"): dict( name="Total upload", unit=DATA_BYTES, icon="mdi:upload" ), + KEY_NET_CURRENT_PLMN: dict(exclude=re.compile(r"^(Rat|ShortName)$", re.IGNORECASE)), + (KEY_NET_CURRENT_PLMN, "State"): dict( + name="Operator search mode", + formatter=lambda x: ({"0": "Auto", "1": "Manual"}.get(x, "Unknown"), None), + ), + (KEY_NET_CURRENT_PLMN, "FullName"): dict(name="Operator name",), + (KEY_NET_CURRENT_PLMN, "Numeric"): dict(name="Operator code",), + KEY_NET_NET_MODE: dict(include=re.compile(r"^NetworkMode$", re.IGNORECASE)), + (KEY_NET_NET_MODE, "NetworkMode"): dict( + name="Preferred mode", + formatter=lambda x: ( + { + "00": "4G/3G/2G", + "01": "2G", + "02": "3G", + "03": "4G", + "0301": "4G/2G", + "0302": "4G/3G", + "0201": "3G/2G", + }.get(x, "Unknown"), + None, + ), + ), }