Merge remote-tracking branch 'upstream/main' into add-command-sending-mode-for-lights

This commit is contained in:
GavinIves 2025-12-28 08:54:38 +00:00
commit e5a5bb5777
3 changed files with 42 additions and 64 deletions

View File

@ -1281,9 +1281,17 @@ class MIoTClient:
@final
async def __on_gw_device_list_changed(self, mips: MipsLocalClient,
did_list: list[str]) -> None:
_LOGGER.info("gateway devices list changed, %s, %s", mips.group_id,
_LOGGER.info('gateway devices list changed, %s, %s', mips.group_id,
did_list)
payload: dict = {"filter": {"did": did_list}}
payload: dict = {
'filter': {
'did': did_list
},
'info': [
'name', 'model', 'urn', 'online', 'specV2Access',
'pushAvailable'
]
}
gw_list = await mips.get_dev_list_async(payload=json.dumps(payload))
if gw_list is None:
_LOGGER.error("local mips get_dev_list_async failed, %s", did_list)
@ -1631,7 +1639,14 @@ class MIoTClient:
if not mips.mips_state:
_LOGGER.debug("local mips disconnect, skip refresh, %s", group_id)
return
gw_list: dict = await mips.get_dev_list_async()
payload: dict = {
'info': [
'name', 'model', 'urn', 'online', 'specV2Access',
'pushAvailable'
]
}
gw_list: dict = await mips.get_dev_list_async(
payload=json.dumps(payload))
if gw_list is None:
_LOGGER.error("refresh gw devices with group_id failed, %s, %s",
self._uid, group_id)

View File

@ -578,55 +578,28 @@ class MIoTHttpClient:
did)
continue
device_infos[did] = {
"did":
did,
"uid":
device.get("uid", None),
"name":
name,
"urn":
urn,
"model":
model,
"connect_type":
device.get("pid", -1),
"token":
device.get("token", None),
"online":
device.get("isOnline", False),
"icon":
device.get("icon", None),
"parent_id":
device.get("parent_id", None),
"manufacturer":
model.split(".")[0],
"did": did,
"uid": device.get("uid", None),
"name": name,
"urn": urn,
"model": model,
"connect_type": device.get("pid", -1),
"token": device.get("token", None),
"online": device.get("isOnline", False),
"icon": device.get("icon", None),
"parent_id": device.get("parent_id", None),
"manufacturer": model.split(".")[0],
# 2: xiao-ai, 1: general speaker
"voice_ctrl":
device.get("voice_ctrl", 0),
"rssi":
device.get("rssi", None),
"owner":
device.get("owner", None),
"pid":
device.get("pid", None),
"local_ip":
device.get("local_ip", None),
"ssid":
device.get("ssid", None),
"bssid":
device.get("bssid", None),
"order_time":
device.get("orderTime", 0),
"fw_version":
device.get("extra", {}).get("fw_version", "unknown"),
'voice_ctrl': device.get('voice_ctrl', 0),
'rssi': device.get('rssi', None),
'owner': device.get('owner', None),
'pid': device.get('pid', None),
'local_ip': device.get('local_ip', None),
'ssid': device.get('ssid', None),
'bssid': device.get('bssid', None),
'order_time': device.get('orderTime', 0),
'fw_version': device.get('extra', {}).get('fw_version', None)
}
if isinstance(device.get("extra", None), dict) and device["extra"]:
device_infos[did]["fw_version"] = device["extra"].get(
"fw_version", None)
device_infos[did]["mcu_version"] = device["extra"].get(
"mcu_version", None)
device_infos[did]["platform"] = device["extra"].get(
"platform", None)
next_start_did = res_obj.get("next_start_did", None)
if res_obj.get("has_more", False) and next_start_did:

View File

@ -1461,20 +1461,10 @@ class MipsLocalClient(_MipsClient):
self.log_info(f'unsupported model, {model}, {did}')
continue
device_list[did] = {
"did": did,
"name": name,
"urn": urn,
"model": model,
"online": info.get("online", False),
"icon": info.get("icon", None),
"fw_version": None,
"home_id": "",
"home_name": "",
"room_id": info.get("roomId", ""),
"room_name": info.get("roomName", ""),
"specv2_access": info.get("specV2Access", False),
"push_available": info.get("pushAvailable", False),
"manufacturer": model.split(".")[0],
'did': did,
'online': info.get('online', False),
'specv2_access': info.get('specV2Access', False),
'push_available': info.get('pushAvailable', False)
}
return device_list