萤石接入流程说明
概述
摄像头按照wifi配置方式分为两类,一种是内置Broadlink芯片采用SmartConfig方式配置(c2s),一种是萤石sdk方式配置(例如c6h)。c2s与c6h的sn保存方案不同,详见附件“萤石摄像头did和sn获取和保存方案.txt”。
需要集成萤石sdk,调用Broadlink云端子账号API,摄像头的控制界面建议参考智慧星代码,或者自行从萤石demo中移植。
萤石sdk官方文档:https://open.ys7.com/doc/zh/book/4.x/android-sdk.html
萤石错误码文档:https://open.ys7.com/doc/zh/book/index/android-errorcode.html
附件“Android_v4.5.1.build20170721.zip”是智慧星中正在用的萤石sdk
一、摄像头的配网流程
从云端后台获取AccessToken,云端接口文档见 https://docs.ibroadlink.com/appservice/ys/
/linkezviz/v1/app/getaccesskeytoken
用获取的AccessToken登录萤石sdk
EZOpenSDK.getInstance().setAccessToken(accesstoken);
扫描摄像头背面的sn码跟验证码
输入SSID跟密码之后,开始WiFi配置
EZOpenSDK.getInstance().probeDeviceInfo(SerialNo)
WiFI配置成功后,调用Broadlink远端API将摄像头添加到家庭,云端接口文档见 https://docs.ibroadlink.com/appservice/ys/
/linkezviz/v1/app/adddevice
云端返回成功后,创建虚拟设备信息,保存sn和did(详见“萤石摄像头did和sn保存方案.md”)
携带虚拟设备信息,跳转到module添加页面,用户选择房间和名称,最后添加到家庭
二、摄像头控制
从Broadlink云端通过familyId查询accessToken,并登录萤石sdk。
/linkezviz/v1/app/getaccesskeytoken EZOpenSDK.getInstance().setAccessToken(accesstoken);
获取设备sn,c2s需要从设备固件中查询,c6h从设备信息extend字段查询。
通过sn从萤石sdk查询摄像头信息,如果查询成功,则登入成功。
EZDeviceInfo devInfo = EZOpenSDK.getInstance().getDeviceInfo(serialNumber);
进入摄像头主界面,可从萤石demo中移植,或者根据sdk Api自行定制。
https://open.ys7.com/doc/zh/ https://open.ys7.com/mobile/download.html?type=app
三、摄像头删除
删除摄像头设备时,需要从家庭中移除该摄像头, 云端接口文档见 https://docs.ibroadlink.com/appservice/ys/
/linkezviz/v1/app/deletedevice
删除家庭时需要遍历该家庭下的摄像头,并逐个删除, 云端接口文档见 https://docs.ibroadlink.com/appservice/ys/
/linkezviz/v1/app/deletedevice