Page 1 of 1

【分享】TuyaOS中控全局订阅

Posted: 2024年 Jul 2日 14:37
by lightthgil

一般情况下,中控sdk对设备进行控制、获取信息的时候,需要调用tuya_home_ctrl_dev_open,先获取设备的句柄,然后才可以对设备进行操作。这种方式,会在获取句柄的过程中,占用了部分内存;同时,句柄和设备dev_id的映射关系还需要应用层自己存储对应关系。所以,SDK对于经常使用的一些特性,提供了一些全局接口。

Code: Select all

tuya_home_ctrl_subscribe_dev_online   //订阅设备上下线事件
tuya_home_ctrl_subscribe_dev_shortcut    //订阅设备快捷开关事件
tuya_home_ctrl_subscribe_dp_name_update   //订阅设备dp名称改变事件
tuya_home_ctrl_subscribe_dev_change   //订阅设备增加/删除/改变/同步事件
tuya_home_ctrl_subscribe_dev_icon_update   //订阅设备图标更新事件
tuya_home_ctrl_subscribe_dev_name_update  //订阅设备名称更新事件
tuya_home_ctrl_subscribe_scene_change //订阅场景增加/删除事件
tuya_home_ctrl_subscribe_scene_icon_update //订阅场景图标更新事件
tuya_home_ctrl_subscribe_scene_name_update //订阅场景名称更新事件
tuya_home_ctrl_subscribe_dev_dps_update //订阅设备指令集更新事件
tuya_home_ctrl_subscribe_room_change //订阅房间改变事件

特别的,对于tuya_home_ctrl_subscribe_dev_changetuya_home_ctrl_subscribe_scene_change,也提供了设备和场景的同步事件的通知,可以替代原来的tuya_home_init_ex里的cbs.all_info_sync_cb。原来的同步接口,在很多情况下,例如设备图片改变、设备名称改变、设备增删都回推送,导致应用层多次更新全部设备信息,会影响应用层效率,所以,可以使用以上接口,接受精细化推送,仅针对变动的设备的进行数据更新。同时,为了兼容原来的代码,tuya_home_init_ex里的cbs.all_info_sync_cb也同时推送。如果做精细化推送的改造,可以忽略tuya_home_init_ex里的cbs.all_info_sync_cb的推送


Re: 【分享】TuyaOS中控全局订阅

Posted: 2024年 Aug 1日 13:29
by bruce-15019291937

现在中控屏方面开发需要什么条件?可以交流下?我有个相关的方案开发。


Re: 【分享】TuyaOS中控全局订阅

Posted: 2024年 Aug 2日 13:35
by luoji

具体方案实施需要找商务对接