支持遥控器

更新时间:2024-01-17 09:39:17下载pdf

Beacon Mesh 灯、插座和开关等设备支持被 Beacon 遥控器对码、分组和控制,本文介绍如何在被控设备端使用该功能。

概述

概念介绍

概念 说明
遥控器 纯发送设备,即发出指令的设备,通常是低功耗设备
被控设备 可接收遥控器命令的设备,例如灯、风扇、开关等,通常是常供电设备
对码/配对 遥控器与被控设备形成绑定关系
解绑/解除配对 遥控器与被控设备解除绑定关系
对码窗口 被控设备打开了对码窗口之后,方可接收遥控器的对码命令,从而形成绑定关系。
该窗口一般都会设置一个超时时间和绑定一个外部触发事件,例如:
  • 灯具在每次上电后开启对码时间窗 30s
  • 墙面开关通过某种不易触发的组合按键方式,来开启其对码时间窗
重置遥控器 重置遥控器,恢复为出厂模式,之前的对码关系失效
重置被控设备 遥控器通过发出指令,将被控设备恢复出厂设置
遥控 遥控器发出控制命令,对设备进行遥控
分组 一个遥控器最多可支持 6 个分组 + 1 个全量控制,遥控器通过给被控设备分组,可以做到分组控制

功能描述

设备支持被 Beacon 遥控器对码控制,遥控器不用单独加入涂鸦 App,可以与已经配网或没有配网的被控设备进行对码控制。该功能是弱安全等级的,一般用于灯具、风扇、遥控车等产品。

  • 一个被控设备最多能同时被三个遥控器配对。
  • 一个遥控器最多有 6 个组 + 一个全控。
  • 当一个设备已经被三个遥控器绑定、又有一个新遥控器与其对码,那么新遥控器会顶替最早与设备对码的那个遥控器。
  • 遥控器的设备鉴权认证采用抽样代理认证策略。

该功能以库的形式提供,集成在 libtal_beacon2.lib 中,使用时只需要在 ty_beacon2_node_init 之后初始化。在初始化中,需要填一个配对窗口参数,该参数决定遥控器对码窗口的时间。

当遥控器与被控设备形成绑定关系之后,遥控器控制 Beacon Mesh 设备是通过发送被控设备的 DP 来实现的。因此,无论是遥控器控制还是 App 控制,命令回调函数都会到 app_dps_download 中。遥控器对码成功与解绑成功的消息会在 ty_beacon2_event_cb 中回调。

数据结构

无对外数据结构,用户无需关注。

接口说明

函数 void ty_beacon_remoter_init(u8 pair_window_s) -
作用 支持遥控器初始化 -
入参 pair_window_s 开启对码窗口,单位是秒

示例

基线对外 Demo:tuyaos_demo_beaconmesh_peripheral

VOID_T tal_framework_init_last(VOID_T){

#if (DEVELOP_DEBUG == 0)
    get_pid(beacon_dev.pid);
    get_anthkey(beacon_dev.authkey);
    tkl_beacon_get_mac(beacon_dev.mac);
#endif

    app_led_init();

    ty_beacon2_node_init(&beacon_dev);
    ty_beacon_remoter_init(30);
    if(beacon_dev.state == STATE_NOT_PAIRED){
        ty_beacon2_node_pair_start(180000000);
        app_led_blink(720);
    }else{
        u8 payload[16];
        memset(payload,0,16);
        payload[0] = 0x01;
        frame_send(0x08, 0x8000, 0x02, payload, beacon_dev.beaconkey, 0);//上电上报心跳,不转发
    }
}

功能测试

前置条件

  • 有一个支持 Beacon Mesh 的 Beacon 遥控器
  • 设备支持 Beacon 遥控器对码控制

操作步骤

  1. 被控设备触发开启对码时间窗,灯具一般是上电后开启 30s 对码时间窗。
  2. 在被控设备的对码时间窗内,按遥控器的对码按钮进行对码。对码成功后,会在被控设备的 ty_beacon2_event_cb 收到消息。
  3. 对码成功后,按遥控器上的 on/off 按键,控制命令会到达被控设备的 app_dps_download 中。

支持与帮助

在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块进行沟通咨询。

咨询前建议首先查阅 官方资料 或参考已有帖子,并认真阅读 发帖规范