【分享贴】TuyaOS 网关开发常见问题

网关设备, 语音中控设备等
Post Reply
Kyson
Posts: 153

启动问题

Q:Zigbee 服务启动阻塞,重复打印 "ASH disconnected: EZSP_ASH_ERROR_RESET_FAIL"。

这种现象一般是主控跟涂鸦 Zigbee 模组串口通讯失败导致的,通常是串口问题导致的,需要依次排查:

  1. 检查主控的串口与模组的串口硬件接线是否正确。
  2. 检查配置指定的串口设备是否正确。
  3. 确认主控的串口是否支持硬件流控,除非通过白名单方式选择了不带流控的模组,默认选择的模组都是开启硬件流控,主控串口也必须支持硬件流控。

Q:Zigbee 服务启动阻塞,涂鸦 Zigbee 模组串口通讯正常(打印 "ASH connected" 表示主控跟 Zigbee 模组串口通讯成功),但一直重复打印 "tuya_z3_init status: 1, isUg=0"。

网关 SDK 的 Zigbee 应用和 Zigbee Host 是相互独立的服务,使用 UDP 协议来通讯,分别监听本地的 12121 和 12122 端口,确保系统的回环接口 lo 处于 up 状态,然后检查 12121 和 12122 这两个端口是否已经被系统其他服务占用了。

配网问题

Q:有线配网,涂鸦智能 APP 自动发现找不到设备。

涂鸦智能 APP 找不到设备,是因为没有收到设备的 UDP 广播包导致的,需要依次排查:

  1. 检查有线 TKL 接口是否已经正确适配,请参考 SDK 有线配网开发指南。
  2. 如果设备存在多网卡,检查有线 TKL 接口适配使用的网卡(日志打印 "udp ip: x.x.x.x",x.x.x.x 为真实 IP 地址)是否跟手机连接到同一个路由器,并且路由器没有划分 VLAN。
  3. 条件允许的话,设备端用 tcpdump 工具抓包排查,看设备是否有 UDP 广播,UDP 端口为 6667,如果设备有 UDP 广播数据,说明设备端是正常的,一般是网络环境问题,可以尝试换个路由器试试,也可以检查下路由器是否设置了防火墙等。

Q:有线配网,涂鸦智能 APP 发现了设备,但激活失败。

导致激活失败的因素有很多,我们分步骤来分析。

步骤1:激活时涂鸦智能 APP 会与设备建立 TCP 连接,下发激活 TOKEN 给网关。通过查看日志(日志调等级需要为 DEBUG)来检查该链接是否正常,涂鸦智能 APP 与设备成功建立 TCP 连接时,设备日志会打印 "new client connect",接收到 TOKEN 信息会打印 "Rev Data:{"token":"xxx"}"。

如果没有打印 "new client connect" 则说明 TCP 链路没建立成功,依次排查:

  1. 设备需要监听 tcp: 6668 端口,检查该端口有没有被系统其他服务占用,运行 SDK 后检查 SDK 有没有成功监听 tcp: 6668 端口。
  2. 如果设备支持路由功能,且开启了防火墙功能,尝试把防火墙功能关闭。

如果没有打印 "Rev Data:{"token":"xxx"}" 则说明授权码不匹配,需要核对一下 UUID 和 KEY 是否一一对应,并配置无误,可以在设置授权码的接口 tuya_iot_set_gw_prod_info 之前把 UUID 和 KEY 的值打印出来。

步骤2:设备接收到 TOKEN 后,设备先向云端请求 URL,成功获取到 URL 后开始激活,该过程可能会出现的问题:

  1. 设备激活要跟云端通讯,需要保证设备能够访问互联网,在没有网络的情况跟云端通讯会失败,设备打印 "fail to get cloud url -2050"。
  2. 激活时 IoT 开发平台返回激活失败,设备日志打印错误码 "errorCode:PRODUCT_OTA_CHANNEL_CONFIG"。这是由于创建产品时没有生成固件 KEY 导致的,需要为该产品创建固件 KEY,固件类型选择 "模组固件",具体操作可以参考 创建产品 - 硬件开发

Tags:
Post Reply