通过查看日志判断Android App端配网是否成功,以及异常情况的检查方法。
成功日志参考
配置成功的日志参考如下。
- 一键&零配&路由器配网成功链路参考
// 配网入口
AlinkDC_AddDeviceBiz: setDevice() call
AlinkDC_AddDeviceBiz: startAddDevice() call // 开始配网
// 配网参数检查
AlinkDC_AddDeviceBiz: state=AddStatePrechecking,isSuccess=true,info=null,error=null
########### 一键配网专属流程开始 ##############
// 进入一键配网流程输入账号密码
AlinkDC_AddDeviceBiz: >state=AddStateProvisionPreparing,isSuccess=false,info=null,error=null
// 如果有上述流程,但是没有toggleProvision调用,则是没有输入账号密码就结束了流程
AlinkDC_AddDeviceBiz: toggleProvision() call
########### 一键配网专属流程结束 ##############
// 真正进入配网
AlinkDC_AddDeviceBiz: state=AddStateProvisioning,isSuccess=false,info=null,error=null
// 配网成功的结果如下
AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=true,
- 热点配网成功链路参考
// 热点开启
AlinkDC_HotspotHelper: setupWifiAP() call.
// 发现设备
AlinkDC_HotspotHelper: discoveryDevices() call.
// 发送ssid和password到设备端
// 如果没有switchAP就直接recoverWiFiConnect则表示未收到指定ProductKey的设备连接上热点。AlinkDC_HotspotHelper: switchAP() call. ssid=xxx
// 停止发现设备
AlinkDC_HotspotHelper: stopDiscovery() call.
// 恢复WiFi连接
AlinkDC_HotspotHelper: recoverWiFiConnect() call.AlinkDC_AddDeviceBiz: setDevice() call.
// 开始配网
AlinkDC_AddDeviceBiz: startAddDevice() call.
// 预检查
AlinkDC_AddDeviceBiz: state=AddStatePrechecking,isSuccess=true,info=null,error=null
// 配网中
AlinkDC_AddDeviceBiz: state=AddStateProvisioning,isSuccess=true,info=null,error=null
// 配网成功或者失败,如果配网失败查看具体的失败原因
AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=true
按照以下流程进行排查。
配网失败排查
常见的配网失败现象有以下两种:
- 设备联网中进度从0%~100%,之后显示设备连接失败。
- 设备一直显示设备连接中进度从0%~100%直到失败。
- 确定用户进入配网页面的路径。
- 本地发现的设备:
- 产品列表或者扫码:
- 产品列表或者扫码:设备联网中
- 检查环境问题。
- 确认设备已上电并进入配网模式。
- 确认手机WiFi已开启。
- 热点模式确认手机有SIM卡,并且使用手机流量能够上网。
- 确认WiFi 密码是否正确。
- 热点模式下,手机申请的权限是否都有赋予。
- App端排查。
- 搜索关键字 AlinkDC_AddDeviceBiz,查看配网流程是否已启动。
startAddDevice 代表配网已启动。
AlinkDC_AddDeviceBiz: startAddDevice() call.
// 预检查
AlinkDC_AddDeviceBiz: state=AddStatePrechecking,isSuccess=true,info=null,error=null
// 配网中
AlinkDC_AddDeviceBiz: state=AddStateProvisioning,isSuccess=true,info=null,error=null
// 配网成功或者失败,配网失败查看具体的失败原因
AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=true
- 搜索关键字 AddStateProvisionOver。
根据
AddStateProvisionOver返回的错误信息,
ErrorCode确定错误原因。如code=606,表示请求服务端接口的时候出错,导致配网失败。
// 配网结果
AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=false,info=null,error=DCErrorCode [code:617, subcode:0, codeName:PROVISION_TIMEOUT, message:provisionTimeout, extra:null]
- 搜索关键字 awss.event.connectap.notify。
如果没有以下日志,则表示手机端没有收到设备端的配网成功通告。
05-30 17:51:58.630 31368-31886/com.aliyun.iot.living D/AlinkDC_CoAPNotifyDeliver: onRecRequest request={"id":"24","version":"1.0","method":"awss.event.connectap.notify","params":{"awssVer":{"smartconfig":"2.0","zconfig":"2.0","router":"2.0","ap":"2.0"},"productKey":"bxxxxI","deviceName":"IOT_test01","mac":"2C:xx:xx:xx:05:CE","ip":"192.168.1.1","cipherType":4,"type":0}}
检查手机当前连接的WiFi是否和给设备配置的WiFi一致。返回发现列表如果仍不能发现设备,则需要从设备端日志继续排查。
设备连接中失败
设备连接中失败,是热点配网热点创建之后,没有正确的设备连上当前开启的热点的场景。可以从环境检查、APP端日志排查、设备端日志排查三个方面分析。
- 检查环境。
- 排查App端日志。
- 搜索关键日志 COAP_METHOD_AWSS_DEVICE_INFO_NOTIFY判断设备是否连接成功。
出现日志,则表示设备端连接成功;反之设备端连接失败。
05-30 17:51:38.433 31368-31886/com.aliyun.iot.living D/AlinkDC_CoAPNotifyDeliver: onRecRequest request={"id":"5","version":"1.0","method":"awss.device.info.notify","params":{"awssVer":{"smartconfig":"2.0","zconfig":"2.0","router":"2.0","ap":"2.0"},"productKey":"b1xxxxGI","deviceName":"IOT_test01","mac":"2C:xx:xx:xx:05:CE","ip":"192.168.43.192","cipherType":4,"random":"6A000BC9xxxx102B1F5","signMethod":0,"sign":"DEEC98CxxxxE81C434D887C5B872D0"}}
05-30 17:51:38.434 31368-31886/com.aliyun.iot.living D/AlinkDC_PhoneApAhaNotifyHandler: onRecRequest
05-30 17:51:38.446 31368-31886/com.aliyun.iot.living D/AlinkDC_PhoneApAhaNotifyHandler: COAP_METHOD_AWSS_DEVICE_INFO_NOTIFY
05-30 17:51:38.447 31368-31368/com.aliyun.iot.living D/AlinkDC_DCTrackerWrapper: sendEvent(),ALP_phoneApDevFoundSucc
05-30 17:51:38.448 31368-31368/com.aliyun.iot.living D/AlinkDC_PhoneApAhaNotifyHandler: COAP_METHOD_AWSS_DEVICE_INFO_NOTIFY new device.
- 搜索关键日志 switchAP,判断ProductKey是否一致。
如果1中有发现设备,但是没有switchAP日志,则连接热点的设备ProductKey和用户选择的ProductKey不一致。
05-30 17:51:38.577 31368-31828/com.aliyun.iot.living D/AlinkDC_HotspotHelper: switchAP() call. ssid=NETGEAR73
05-30 17:51:38.595 31368-31828/com.aliyun.iot.living D/AlinkDC_AlinkPhoneApConfigStart: start get wifi list task.
05-30 17:51:38.596 31368-31828/com.aliyun.iot.living D/AlinkDC_DCTrackerWrapper: sendEvent(),ALP_phoneApGetWifiListStart
- 设备端日志排查。