Compare commits

..

No commits in common. "94583a23d181d1a8260972788e5328d5acf739d6" and "4ad040d2eaceb6b8eeb4a515f3b98673d63d62cd" have entirely different histories.

3 changed files with 7 additions and 11 deletions

View File

@ -170,13 +170,12 @@ class Cover(MIoTServiceEntity, CoverEntity):
self._prop_status_opening.append(item.value) self._prop_status_opening.append(item.value)
elif item_name in { elif item_name in {
'closing', 'close', 'down', 'dowm', 'falling', 'closing', 'close', 'down', 'dowm', 'falling',
'fallin', 'dropping', 'downing', 'lower' 'dropping', 'downing', 'lower'
}: }:
self._prop_status_closing.append(item.value) self._prop_status_closing.append(item.value)
elif item_name in { elif item_name in {
'closed', 'closeover', 'stopatlowest', 'stopatlowest', 'stoplowerlimit', 'lowerlimitstop',
'stoplowerlimit', 'lowerlimitstop', 'floor', 'floor', 'lowerlimit'
'lowerlimit'
}: }:
self._prop_status_closed.append(item.value) self._prop_status_closed.append(item.value)
self._prop_status = prop self._prop_status = prop

View File

@ -996,7 +996,7 @@ class MIoTClient:
and self._device_list_cloud[did].get('online', False) and self._device_list_cloud[did].get('online', False)
): ):
from_new = 'cloud' from_new = 'cloud'
if (from_new == from_old) and (from_new=='cloud' or from_new=='lan'): if from_new == from_old:
# No need to update # No need to update
return return
# Unsub old # Unsub old
@ -1492,6 +1492,8 @@ class MIoTClient:
if did not in filter_dids: if did not in filter_dids:
continue continue
device_old = self._device_list_gateway.get(did, None) device_old = self._device_list_gateway.get(did, None)
gw_state_old = device_old.get(
'online', False) if device_old else False
gw_state_new: bool = False gw_state_new: bool = False
device_new = gw_list.pop(did, None) device_new = gw_list.pop(did, None)
if device_new: if device_new:
@ -1505,7 +1507,7 @@ class MIoTClient:
device_old['online'] = False device_old['online'] = False
# Update cache group_id # Update cache group_id
info['group_id'] = group_id info['group_id'] = group_id
if not gw_state_new: if gw_state_old == gw_state_new:
continue continue
self.__update_device_msg_sub(did=did) self.__update_device_msg_sub(did=did)
state_old: Optional[bool] = info.get('online', None) state_old: Optional[bool] = info.get('online', None)

View File

@ -994,11 +994,6 @@ class MipsCloudClient(_MipsClient):
handler( handler(
did, MIoTDeviceState.ONLINE if msg['event'] == 'online' did, MIoTDeviceState.ONLINE if msg['event'] == 'online'
else MIoTDeviceState.OFFLINE, ctx) else MIoTDeviceState.OFFLINE, ctx)
if did.startswith('blt.'):
# MIoT cloud may not publish BLE device online/offline state message.
# Do not subscribe BLE device online/offline state.
return True
return self.__reg_broadcast_external( return self.__reg_broadcast_external(
topic=topic, handler=on_state_msg, handler_ctx=handler_ctx) topic=topic, handler=on_state_msg, handler_ctx=handler_ctx)