网关和子设备的常见问题

当产品为网关或子设备时,区别于普通产品会遇到的常见问题和解决方法。

网关子设备配网绑定

安卓网关相关

其他问题

网关是否支持路由器热点配网(router-config)?

支持的,大致流程为:SDK扫描到adha的WiFi后,会自动加入adha,上报给云端需要配网的设备。此时使用与路由器绑定过的App账号,可以通过本地发现找到这个设备,单击该设备后开始配网。

网关与用户绑定后,网关添加子设备成功,但为什么子设备未与用户绑定

APP端添加子设备分为两个过程,配网与绑定,网关添加子设备成功仅代表配网成功了,需要调用接口/awss/subdevice/bind将子设备与用户做绑定。

如果在网关绑定前,子设备已经与网关存在topo关系,那么在网关绑定的时候,子设备也会跟着网关一并与用户绑定,无需再调用子设备绑定接口。

动态注册的设备证书信息如何存储

动态注册成功之后,持久化获取到的deviceName信息,设备证书信息(productKey、deviceName、deviceSecret)需要保存在非易失目录,确保应用卸载之后数据仍然存在

动态初始化成功,初始化建连之后,不能再执行动态初始化,后续应用重新启动(包括卸载后重装启动)都需要从持久化存储中获取设备证书,然后执行初始化建连(即一机一密建连),也即动态注册只能执行一次。

App用户只解绑了网关,对应的子设备会解绑吗?

用户与子设备关系会一起被解绑,但网关设备与子设备的topo关系不受解绑操作的影响。

App端调用解绑子设备的接口,会解绑子设备和网关的拓扑吗?

直接调用/awss/subdevice/unbind接口解绑当前用户和指定子设备。如果当前用户是子设备的管理员,则同时自动解除当前子设备和网关的网络拓扑关系。

App端解绑或者绑定子设备是否都需要网关在线?

如果涉及到子设备需要根据情况而定。

  • 使用App配网时,网关先收到LINKKIT_EVENT_SUBDEV_PERMITED事件,再调用linkkit_gateway_subdev_register()去注册设备。

  • 解绑接口时,无论网关还是子设备都不需要网关在线。

安卓网关如何帮多个子设备上报数据?

  • 所有设备一起动态注册,消息格式如下。

    for () {
    addSubDev
    login
    initSubDevThing
    }
  • 上报消息。消息格式如下。

    for() {
    post
    }

安卓带屏网关设备如何使用公版App发现?

安卓版本的Link Kit SDK,并没有实现配网功能。安卓设备一般都带屏,通常是厂商通过屏显发现ssid,再输入密码连接到路由器。

控制台编辑产品勾选免开发公版App,使用公版App本地发现设备后,绑定设备后进行调试。

网关及子设备掉线是什么原因?

网关掉线的可能原因是:

  • 断电

  • 设备重置

  • 网关心跳超时

子设备掉线的可能原因是:

  • 网关上报了子设备离线

  • 网关离线

网关定义的部分标准功能在控制台页面找不到

模组相关的标准功能属性,页面上不可见。

网关能主动向云端获取某子设备的属性值吗

云端数据是获取不到的。linkkit_get_value是获取本地的数据,是设备之前上报的备份数据。

动态注册的时候,更换网关有什么注意事项吗?

  • 网关下有子设备,不可直接更换新的网关,需要把所有的绑定关系解除后,再使用新网关创建绑定关系。

  • 一机一密方式的子设备,设备证书不需要备份,可以下次注册时再从云端获取。

  • 一型一密方式的子设备,子设备的设备证书必须进行备份,否则一旦丢失就再也无法获取。