diff --git a/custom_components/xiaomi_home/miot/miot_client.py b/custom_components/xiaomi_home/miot/miot_client.py index cdfe110..927f639 100644 --- a/custom_components/xiaomi_home/miot/miot_client.py +++ b/custom_components/xiaomi_home/miot/miot_client.py @@ -983,13 +983,17 @@ class MIoTClient: and self._device_list_lan[did].get('push_available', False) ): from_new = 'lan' - if ( from_new is None and did in self._device_list_cloud - and self._device_list_cloud[did].get('online', False) ): - from_new = 'cloud' + # MIoT cloud service may not publish the online state updating + # message for the BLE device. + if did.startswith('blt.'): + from_new = 'cloud' + elif self._device_list_cloud[did].get('online', False): + from_new = 'cloud' + if from_new == from_old: # No need to update return