更新时间:2024-11-20 08:51:19下载pdf
本文档主要针对串口协议对接苹果智能家居平台 Homekit 功能的一些常见问题,梳理出对应的问题排查指引,帮助您解决一些日常问题。
另外,homekit数据上报和涂鸦dp没有关系。
没有对应关系。
HomeKit的初始化配置需要包含3部分信息,品类、服务、特性。
品类的概念和服务的是相同的,服务即品类。但是对于像空气净化器这样功能比较多且复杂的产品,需要多个服务添加到一起才能组成一个功能比较全面的空气净化器。
例如:空气净化器可以包含的服务有空气净化器、风扇、板条、过滤器维护、空气质量传感器,这几个服务。
在初始化信息交互期间,模块需要从MCU获取到这三个信息。
模块会根据服务自行添加必选特性,所以MCU只需发可选特性配置即可。
首先要了解的是,特性点有读写和只读等几种类型。这个测试工具根据类型会有不一样的测试流程。
例如:设置时间(D3)的类型是读写,按照这个逻辑,初始状态是0,测试工具读到之后会下发1,然后设备回复1,完成之后,这个特性的状态缓存记录就是1了。然后就会进行和上述1一样的测试步骤。此时如果还是上报1,就和一开始读到的值是一样的了,就没反应,上报0反而是可以通过的。
根据用例要求,设备需要在测试工具发出配件提示指令后,在5s内有提示信息(例如:指示灯闪烁几次,或者蜂鸣器响几声)。
用MCU通用对接方案,模块有自处理和配合处理两种工作模式。如果使用模块自处理,此逻辑模块已做成homekit状态指示灯闪烁3次,随后回复常亮状态。如果使用配合处理,模组会给MCU发送homekit状态为03的网络状态通知命令,MCU在收到此命令后5s内需作出提示逻辑,此逻辑需要用户的MCU自行实现,并且为防止此提示命令会影响到用户网络指示逻辑,在5s后模块会再发送一个homekit状态为02的命令。协议格式可参考Tuya_Homekit_通用串口通讯协议报告设备联网状态章节。
MCU SDK 中也有提示:
/**
* @brief 更新 Wi-Fi 状态结果
* @param[in] {wifi_state_flag} 网络状态标志 0x00:tuya网络状态/0x01:homekit网络状态
* @param[in] {wifi_state} 网络状态值
* @ref 0x00: wifi状态 1
* @ref 0x02: wifi状态 3
* @ref 0x03: wifi状态 4
* @ref 0x04: wifi状态 5
* @return Null
* @note MCU需要自行实现该功能
*/
void update_wifi_status(u8 wifi_state_flag, u8 wifi_state)
{
//#error "请自行完成获取 Wi-Fi 状态结果代码,并删除该行"
if(0x00 == wifi_state_flag) { //tuya网络状态
ty_wifi_work_state = wifi_state;
switch(wifi_state) {
case 0:
//配置状态
break;
case 1:
//Wi-Fi 已配置但未连上路由器
break;
case 2:
//Wi-Fi 已配置且连上路由器
break;
case 3:
//已连上路由器且连接到云端
break;
default:break;
}
}else {
switch(wifi_state) { //homekit网络状态
case 0:
hk_wifi_work_state = wifi_state;
//待绑定或绑定中
break;
case 1:
hk_wifi_work_state = wifi_state;
//Wi-Fi 已配置但未连接APP
break;
case 2:
hk_wifi_work_state = wifi_state;
//Wi-Fi 已配置且已连接APP
break;
case 3:
//配件连接提示
//收到此状态,表示用户发送了配件识别,需要设备5s内有所反馈,例如网络指示灯闪烁3次,或蜂鸣器响3声
break;
default:break;
}
}
}
更多资料请查看Wi-Fi Homekit 通用方案。
keysmghd5r8thpm5固件1.0.10及以上版本已支持。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈