diff --git a/custom_components/xiaomi_miot/config_flow.py b/custom_components/xiaomi_miot/config_flow.py index 7ae71460d..1bdb3a071 100644 --- a/custom_components/xiaomi_miot/config_flow.py +++ b/custom_components/xiaomi_miot/config_flow.py @@ -157,16 +157,20 @@ async def get_cloud_filter_schema(hass, user_input, errors, schema=None, via_did else: grp = {} vls = {} - fls = ['did'] if via_did else ['model', 'ssid', 'bssid'] + fls = ['did'] if via_did else ['model', 'home_id', 'ssid', 'bssid'] for d in dvs: for f in fls: v = d.get(f) + if not grp: + _LOGGER.warning('get_cloud_filter_schema: %s', d) if v is None: continue grp.setdefault(v, 0) grp[v] += 1 vls.setdefault(f, {}) des = '' if v == '' else v + if f == 'home_id': + des = d.get('home_name') or des if f in ['did']: if MiotCloud.is_hide(d): continue diff --git a/custom_components/xiaomi_miot/core/xiaomi_cloud.py b/custom_components/xiaomi_miot/core/xiaomi_cloud.py index 007c19288..7e8898152 100644 --- a/custom_components/xiaomi_miot/core/xiaomi_cloud.py +++ b/custom_components/xiaomi_miot/core/xiaomi_cloud.py @@ -293,7 +293,7 @@ async def async_get_devices_by_key(self, key, renew=False, filters=None): dat = {} if filters is None: filters = {} - fls = ['ssid', 'bssid', 'model', 'did'] + fls = ['ssid', 'bssid', 'home_id', 'model', 'did'] dvs = await self.async_get_devices(renew=renew) or [] for d in dvs: if not isinstance(d, dict): diff --git a/custom_components/xiaomi_miot/translations/en.json b/custom_components/xiaomi_miot/translations/en.json index 7f2fbf738..497ac3d6f 100644 --- a/custom_components/xiaomi_miot/translations/en.json +++ b/custom_components/xiaomi_miot/translations/en.json @@ -25,7 +25,7 @@ "captcha": "Captcha", "server_country": "Server location of MiCloud", "conn_mode": "Connection mode for device", - "filter_models": "Filter devices via model/WiFi (Advanced)" + "filter_models": "Filter devices via model/home/WiFi (Advanced)" } }, "cloud_filter": { @@ -34,6 +34,8 @@ "data": { "filter_model": "Filter Device Model", "model_list": "Device Model List", + "filter_home_id": "Filter Home", + "home_id_list": "Home List", "filter_ssid": "Filter WiFi SSID", "ssid_list": "WiFi SSID List", "filter_bssid": "Filter WiFi BSSID", @@ -151,6 +153,8 @@ "data": { "filter_model": "Filter Device Model", "model_list": "Device Model List", + "filter_home_id": "Filter Home", + "home_id_list": "Home List", "filter_ssid": "Filter WiFi SSID", "ssid_list": "WiFi SSID List", "filter_bssid": "Filter WiFi BSSID", diff --git a/custom_components/xiaomi_miot/translations/it_IT.json b/custom_components/xiaomi_miot/translations/it_IT.json index b380e97cb..a28b3a944 100644 --- a/custom_components/xiaomi_miot/translations/it_IT.json +++ b/custom_components/xiaomi_miot/translations/it_IT.json @@ -25,7 +25,7 @@ "captcha": "Captcha", "server_country": "Posizione server MiCloud", "conn_mode": "Modalità di connessione del dispostivo", - "filter_models": "Filtra dispositivi per modello/WiFi (Avanzato)" + "filter_models": "Filtra dispositivi per modello/famiglia/WiFi (Avanzato)" } }, "cloud_filter": { diff --git a/custom_components/xiaomi_miot/translations/pt-BR.json b/custom_components/xiaomi_miot/translations/pt-BR.json index 3d1c14022..5b5de7b94 100644 --- a/custom_components/xiaomi_miot/translations/pt-BR.json +++ b/custom_components/xiaomi_miot/translations/pt-BR.json @@ -24,7 +24,7 @@ "password": "Senha", "server_country": "Região da MiCloud", "conn_mode": "Modo de conexão com o dispositivo", - "filter_models": "Filtro de dispositivo via model/WiFi" + "filter_models": "Filtro de dispositivo via model/home/WiFi (Advanced)" } }, "cloud_filter": { diff --git a/custom_components/xiaomi_miot/translations/ru_RU.json b/custom_components/xiaomi_miot/translations/ru_RU.json index 37c7f639b..ac44feb97 100644 --- a/custom_components/xiaomi_miot/translations/ru_RU.json +++ b/custom_components/xiaomi_miot/translations/ru_RU.json @@ -25,7 +25,7 @@ "captcha": "Captcha", "server_country": "Регион сервера MiCloud", "conn_mode": "Режим подключения устройства", - "filter_models": "Фильтровать устройства по модели/WiFi (Продвинутые настр.)" + "filter_models": "Фильтровать устройства по модели/семья/WiFi (Продвинутые настр.)" } }, "cloud_filter": { diff --git a/custom_components/xiaomi_miot/translations/zh-Hans.json b/custom_components/xiaomi_miot/translations/zh-Hans.json index 7406229bb..3e1f1b96f 100644 --- a/custom_components/xiaomi_miot/translations/zh-Hans.json +++ b/custom_components/xiaomi_miot/translations/zh-Hans.json @@ -25,7 +25,7 @@ "captcha": "验证码", "server_country": "小米服务器", "conn_mode": "设备连接模式", - "filter_models": "通过型号/WiFi筛选设备 (高级模式,新手勿选)" + "filter_models": "通过型号/家庭/WiFi筛选设备 (高级模式,新手勿选)" } }, "cloud_filter": { @@ -34,6 +34,8 @@ "data": { "filter_model": "筛选设备型号", "model_list": "设备型号列表", + "filter_home_id": "筛选家庭", + "home_id_list": "家庭列表", "filter_ssid": "筛选 WiFi SSID", "ssid_list": "WiFi SSID 列表", "filter_bssid": "筛选 WiFi BSSID", @@ -98,6 +100,8 @@ "data": { "filter_model": "筛选设备型号", "model_list": "设备型号列表", + "filter_home_id": "筛选家庭", + "home_id_list": "家庭列表", "filter_ssid": "筛选 WiFi SSID", "ssid_list": "WiFi SSID 列表", "filter_bssid": "筛选 WiFi BSSID",