diff --git a/custom_components/xiaomi_home/miot/miot_client.py b/custom_components/xiaomi_home/miot/miot_client.py index e6fe6a8..31e80af 100644 --- a/custom_components/xiaomi_home/miot/miot_client.py +++ b/custom_components/xiaomi_home/miot/miot_client.py @@ -1048,11 +1048,11 @@ class MIoTClient: mips = self._mips_local.get(group_id, None) if mips: - if state == MipsServiceState.REMOVED: - mips.disconnect() - self._mips_local.pop(group_id, None) - return - if ( + # if state == MipsServiceState.REMOVED: + # mips.disconnect() + # self._mips_local.pop(group_id, None) + # return + if ( # ADDED or UPDATED mips.client_id == self._entry_data['virtual_did'] and mips.host == data['addresses'][0] and mips.port == data['port'] diff --git a/custom_components/xiaomi_home/miot/miot_mdns.py b/custom_components/xiaomi_home/miot/miot_mdns.py index 2380909..f306675 100644 --- a/custom_components/xiaomi_home/miot/miot_mdns.py +++ b/custom_components/xiaomi_home/miot/miot_mdns.py @@ -232,9 +232,10 @@ class MipsService: for item in list(self._services.values()): if item['name'] != name: continue - service_data = self._services.pop(item['group_id'], {}) - self.__call_service_change( - state=MipsServiceState.REMOVED, data=service_data) + # Ignore mdns REMOVED package. Let the connection close by itself. + # service_data = self._services.pop(item['group_id'], {}) + # self.__call_service_change( + # state=MipsServiceState.REMOVED, data=service_data) return self._main_loop.create_task( self.__request_service_info_async(zeroconf, service_type, name))