feat: subscribe the proxy gateway child device up messages even though the device is offline (#1393)
Some checks failed
Tests / check-rule-format (push) Failing after 2s
Validate / validate-hassfest (push) Failing after 3s
Validate / validate-hacs (push) Failing after 10s
Validate / validate-lint (push) Failing after 2s
Validate / validate-setup (push) Failing after 5s

* feat: subscribe the proxy gateway child device up messages even though the device is offline (#1313)

* feat: do not subscribe proxy gateway child device online/offline state message
This commit is contained in:
Li Shuzhen
2025-09-02 17:22:40 +08:00
committed by GitHub
parent f2200ba003
commit ec833b6539
2 changed files with 10 additions and 5 deletions

View File

@ -1374,10 +1374,13 @@ class MIoTClient:
"""Update cloud devices. """Update cloud devices.
NOTICE: This function will operate the cloud_list NOTICE: This function will operate the cloud_list
""" """
# MIoT cloud service may not publish the online state updating message # MIoT cloud may not publish the online state updating message
# for the BLE device. Assume that all BLE devices are online. # for the BLE device. Assume that all BLE devices are online.
# MIoT cloud does not publish the online state updating message for the
# child device under the proxy gateway (eg, VRF air conditioner
# controller). Assume that all proxy gateway child devices are online.
for did, info in cloud_list.items(): for did, info in cloud_list.items():
if did.startswith('blt.'): if did.startswith('blt.') or did.startswith('proxy.'):
info['online'] = True info['online'] = True
for did, info in self._device_list_cache.items(): for did, info in self._device_list_cache.items():
if filter_dids and did not in filter_dids: if filter_dids and did not in filter_dids:

View File

@ -998,9 +998,11 @@ class MipsCloudClient(_MipsClient):
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.'): if did.startswith('blt.') or did.startswith('proxy.'):
# MIoT cloud may not publish BLE device online/offline state message. # MIoT cloud may not publish BLE device or proxy gateway child device
# Do not subscribe BLE device online/offline state. # online/offline state message.
# Do not subscribe BLE device or proxy gateway child device
# online/offline state.
return True 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)