中控屏基础模板

更新时间:2023-10-12 08:00:20下载pdf

本文为您介绍 中控屏基础模板 的具体功能及其使用方法。更多资源请访问 GitHub 仓库

本项目依赖 TYSdk.mobile.mobileInfo.appRnVersion 5.30 及以上版本,如果 App 版本过低,请前往 涂鸦面板 RN 重新下载。

功能简介

该模板工程适用于涂鸦中控品类产品,支持以下功能:

  • 语音场景的管理

  • 场景管理

  • 设备管理

  • 网关功能

  • 跳转到音乐播放面板

  • 昵称设置(自定义唤醒词)

  • 继电器开关的控制和名称设置

    中控屏基础模板

模板目录

本文仅描述脚手架相关的目录,通用目录结构信息参考 RN 0.59 脚手架文档

├─ src
│  ├─ api // 放置项目中需要使用的云端 API
│  ├─ components // 放置项目中用到的复用的功能组件
│  │  ├─ buttonList.tsx // 按钮列表组件
│  │  ├─ buttonRadios.tsx // 单选按钮组件
│  │  ├─ connect.tsx // react-redux 的 connect 方法的二次封装
│  │  ├─ deviceItem.tsx // 设备列表项组件
│  │  ├─ dragSortableView.tsx // 拖拽排序组件
│  │  ├─ emptyView.tsx // 设备列表和场景列表为空时显示的组件
│  │  ├─ gridLayout.tsx // 网格布局组件
│  │  ├─ index.ts // 引入全部组件并统一导出
│  │  ├─ sceneItem.tsx // 场景列表项组件
│  │  ├─ subList.tsx // 网关子设备列表组件
│  │  ├─ swipeout // 侧滑组件
│  │  ├─ switchItem.tsx // 继电器开关组件
│  │  ├─ tabs // 纯手势标签栏组件
│  │  └─ topView.tsx // 网关页面顶部组件
│  ├─ composeLayout.tsx // 封装处理了面板内部所需要的`设备事件`和`设备信息`
│  ├─ config // 放置面板内部常用的配置文件
│  │  ├─ categoryList.ts // 如果设备列表需要面板过滤,该文件可配置哪些品类的设备可以显示
│  │  ├─ dpCodes.ts // 配置项目中用到的 dpCode
│  │  ├─ index.ts // 配置文件入口
│  │  ├─ theme.ts // 项目主题配置文件
│  │  └─ voiceSceneConfig.ts // 语音场景相关配置文件
│  ├─ i18n // 放置多语言配置文件
│  ├─ interface // 放置 TypeScript 类型声明文件
│  ├─ main.tsx // 项目入口文件,继承自 `NavigatorLayout`,通过重写 `hookRoute` 方法将一些必要的配置传入,例如背景、topbar 等;重写 `renderScene` 方法控制路由跳转
│  ├─ models // 放置 redux 相关的代码
│  │  ├─ combine.ts // 导入各个模块的 reducers,合并后导出
│  │  ├─ configureStore.ts // 配置 redux 的中间件
│  │  ├─ index.ts // 导入各个模块的 actions,合并后导出
│  │  └─ modules // 存放各个模块的 actions 和 reducers
│  │     ├─ common.ts // dpState 和 devInfo 相关的 actions 和 reducers
│  │     ├─ device.ts // 设备管理相关的 actions 和 reducers
│  │     ├─ room.ts // 房间相关的 actions 和 reducers
│  │     ├─ scene.ts // 场景相关的 actions 和 reducers
│  │     ├─ switch.ts // 继电器开关相关的 actions 和 reducers
│  │     └─ voiceScene.ts // 语音相关的 actions 和 reducers
│  ├─ pages // 放置项目的各个页面级别的组件
│  │  ├─ device // 放置设备管理相关的页面
│  │  │  ├─ hide.tsx // 批量隐藏设备页面
│  │  │  ├─ index.tsx // 已显示的设备列表
│  │  │  └─ restore.tsx // 选择设备恢复显示
│  │  ├─ gateway // 网关
│  │  ├─ home // 首页
│  │  ├─ moreFunction // 放置更多功能相关的页面
│  │  │  ├─ index.tsx // 更多功能的首页
│  │  │  ├─ setNickname.tsx // 设置昵称
│  │  │  └─ shortcut.tsx // 快捷指令
│  │  ├─ scene // 放置场景管理相关的页面
│  │  │  ├─ hide.tsx // 批量隐藏场景页面
│  │  │  ├─ index.tsx // 已显示的场景列表
│  │  │  └─ restore.tsx // 选择场景恢复显示
│  │  ├─ switch // 继电器开关
│  │  ├─ voiceControlSkill // 语音控制可用技能
│  │  └─ voiceScene // 放置语音场景相关的页面
│  │     ├─ addAction.tsx // 选择应答、播报天气、新闻播放、播放故事等类型时的执行动作
│  │     ├─ addStatement.tsx // 添加、编辑语音场景的指令
│  │     ├─ chooseDevice.tsx // 选择语音场景要控制的设备
│  │     ├─ chooseDeviceDp.tsx // 选择语音场景控制的设备下发的 DP 点
│  │     ├─ chooseScene.tsx // 选择语音场景执行的场景
│  │     ├─ createScene.tsx // 创建、修改语音场景
│  │     ├─ sceneList.tsx // 语音场景列表
│  │     └─ chooseScene.tsx // 可作为语音场景执行动作的场景列表
│  ├─ res // 放置面板内部常用工具方法等
│  └─ utils // 放置面板内部常用工具方法等

UI 说明

语音控制技能

所在目录pages/voiceControlSkill/index.tsx

点击首页顶部 如何通过语音控制 文字所在的 蓝色背景图,进入语音控制技能说明页面。
页面展示了部分中控屏可响应的语音指令。

中控屏基础模板

语音场景模块

所在目录pages/voiceScene/

点击首页的 语音控制,进入语音场景列表。

中控屏基础模板

点击右上角的 + 或者页面底部的 立即添加,进入创建语音场景页面。

中控屏基础模板

点击 添加说法 按钮后,进入添加说法页面。

中控屏基础模板

输入文字(必须为中文,并且字数不超过 20),例如:早上好,并点击右上角的 保存 按钮,返回创建语音场景页面。可以看到 添加说法 按钮上方新增了内容为 早上好 的项目。点击新增项左边的 ,即可删除该项。

中控屏基础模板

点击页面中间的 添加动作 按钮,弹出选择动作的弹窗。

中控屏基础模板

控制设备

添加动作选择 控制设备,将会进入到选择设备页面。

中控屏基础模板

选择设备(此处以灯为例),进入到选择设备 DP 页面。

中控屏基础模板

选择需要控制的 DP 后,点击右上角的 保存,返回创建语音场景页面。可以看到 小智管家会 下面多出了内容为 灯:开关: 关闭 的项目。点击新增项左边的 ,即可删除该项。

中控屏基础模板

执行场景

添加动作选择 执行场景,将会进入到选择场景页面。选择好场景后,点击右上角的 保存,返回创建语音场景页面。

中控屏基础模板

应答

添加动作选择 应答,将会进入到编辑应答内容页面。点击 比如: 下方的气泡,气泡中的文字将会自动填充到输入框。编辑好应答内容后,点击右上角的 保存,返回创建语音场景页面。

中控屏基础模板

播报天气

添加动作选择 播报天气,将会进入到编辑播报天气内容页面。点击 比如: 下方的气泡,气泡中的文字将会自动填充到输入框。编辑好播报天气内容后,点击右上角的 保存,返回创建语音场景页面。

中控屏基础模板

新闻播放

添加动作选择 新闻播放,将会进入到编辑新闻播放内容页面。点击 比如: 下方的气泡,气泡中的文字将会自动填充到输入框。下方可以选择播放的时长。编辑好新闻播放内容后,点击右上角的 保存,返回创建语音场景页面。

中控屏基础模板

播放故事

添加动作选择 播放故事,将会进入到编辑播放故事内容页面。点击 比如: 下方的气泡,气泡中的文字将会自动填充到输入框。下方可以选择播放的时长。编辑好播放故事内容后,点击右上角的保存,返回创建语音场景页面。

中控屏基础模板

选择完语音场景的执行动作,并且填写好场景名称后,点击右上角的 保存,将会创建一个语音场景,并返回到语音场景列表。

中控屏基础模板

点击语音场景项,进入到编辑页面。

中控屏基础模板

点击底部 删除此场景,出现确认删除的弹窗,点击确认即可删除语音场景,并返回语音场景列表。

中控屏基础模板

场景管理

所在目录pages/scene/

点击首页的 场景,进入场景列表。该列表展示的场景,在中控屏设备上也会展示。

中控屏基础模板

点击或者左滑场景列表的子项目,出现 隐藏 图标。

中控屏基础模板

点击 隐藏 图标,弹出确认隐藏提示框,点击 确定 隐藏场景。

中控屏基础模板

长按场景列表子项目,跳转到批量隐藏场景页面。勾选要隐藏的场景后,点击右上角的 确定 将会隐藏对应的场景并返回场景列表。

中控屏基础模板

点击场景列表右上角的 隐藏 图标,进入已隐藏场景列表。勾选要显示的场景,点击右上角的 确定,对应的场景将会恢复显示并返回场景列表。

中控屏基础模板

设备管理

所在目录pages/device/

点击首页的 设备,进入设备列表。该列表展示的设备,在中控屏设备上也会展示。

中控屏基础模板

点击或者左滑设备列表的子项目,出现 编辑 图标和 隐藏 图标。点击 编辑 图标,会跳转到设备对应的面板。

中控屏基础模板

点击 隐藏 图标,弹出确认隐藏提示框,点击 确定 隐藏设备。

中控屏基础模板

长按设备列表子项目,跳转到批量隐藏设备页面。勾选要隐藏的设备后,点击右上角的 确定 将会隐藏对应的设备并返回设备列表。

中控屏基础模板

点击设备列表右上角的 隐藏 图标,进入已隐藏设备列表。勾选要显示的设备,点击右上角的 确定,对应的设备将会恢复显示并返回设备列表。

中控屏基础模板

网关

所在目录pages/gateway/

点击首页的 网关,进入网关页面。网关分为两种类型,Zigbee 网关和多模网关(同时具有蓝牙和 Zigbee 能力的网关)。您需结合实际需求决定要跳转的网关类型。多模网关的交互可以参考 多模网关基础模板

Zigbee 网关

中控屏基础模板

点击底部的 添加子设备 按钮,弹出添加设备提示弹窗。

中控屏基础模板

点击 查看更多设备重置方式,跳转到设备配网提示页面。

中控屏基础模板

点击左上角的返回图标,重复上述步骤打开添加设备提示弹,点击 指示灯在快闪,跳转到搜索设备页面。

中控屏基础模板

音乐

点击首页的 音乐,跳转到播放音乐的面板。其功能和常见的音乐播放器基本一致,本文不再赘述。

中控屏基础模板

昵称设置

所在目录pages/moreFunction/setNickname.tsx

点击首页的 更多功能,再点击 昵称设置,进入昵称设置页面。

中控屏基础模板

输入想要设置的昵称(此处以 涂鸦小智 为例),点击右上角的 保存,即可完成昵称设置。

中控屏基础模板

再次进入昵称设置页面,可以对已设置的昵称进行修改或者删除。点击底部的 删除昵称 按钮,弹出确认删除提示框,点击 确定 即可删除昵称,并返回首页。

中控屏基础模板

快捷指令

所在目录pages/moreFunction/shortcut.tsx

点击首页的 更多功能,再点击 快捷指令,进入快捷指令页面。

中控屏基础模板

继电器开关

所在目录pages/switch/index.tsx

点击首页的 开关(只有存在继电器开关的 DP 点,才会显示这个入口),进入继电器开关页面,页面里展示的开关数量和继电器开关的 DP 点数量一致。

中控屏基础模板

点击继电器开关项,即可实现继电器的开与关。

中控屏基础模板

长按开关项,弹出重命名开关名称弹窗。输入新名称后,点击 保存 即可修改成功。

中控屏基础模板

Native API

查询家庭中的设备列表

接口名称

TYSdk.native.getDeviceList()

接口说明

查询家庭中的设备列表。

请求参数

参数 数据类型 说明 是否必填
successCallback () => void 成功回调
failCallback () => void 失败回调

请求示例

/**
 * @desc 查询家庭中的设备列表
 */
TYSdk.native.getDeviceList(successCallback, failCallback)

返回示例

[
    {
        capability: 37891,
        category: "dgnzk",
        devId: "6c7p5yp****",
        dps: {},
        iconUrl: "https://****.png",
        isOnline: false,
        mac: "",
        meshId: "",
        name: "多功能中控",
        nodeId: "",
        pcc: "",
        productId: "as4katqbo****",
        quickOpDps: [],
        roomId: 12345,
        schema: "[]",
        switchDp: 0,
        uuid: "jugn****",
    }
]

查询家庭中的房间列表

接口名称

TYSdk.native.getRoomsInCurrentHome()

接口说明

查询家庭中的房间列表。

请求参数

参数 数据类型 说明 是否必填
successCallback () => void 成功回调
failCallback () => void 失败回调

请求示例

/**
 * @desc 查询家庭中的房间列表
 */
TYSdk.native.getRoomsInCurrentHome(successCallback, failCallback)

返回示例

[
    {
        name: "客厅",
        roomId: 12345
    }
]

重命名子设备

接口名称

TYSdk.native.renameSubDeviceName()

接口说明

重命名子设备。

请求参数

参数 数据类型 说明 是否必填
renameInfo { devId: string, name: string } 要重命名的子设备 ID 和重命名后的名称
successCallback () => void 成功回调
failCallback () => void 失败回调

请求示例

/**
 * @desc 重命名子设备
 */
TYSdk.native.renameSubDeviceName(renameInfo, successCallback, failCallback)

云端 API

查询家庭中设备的标准化配置信息

接口名称

tuya.m.product.standard.config.list

接口说明

查询家庭中设备的标准化配置信息。

返回参数

参数 数据类型 说明
data Array 配置信息列表

请求示例

/**
 * @desc 查询家庭中设备的标准化配置信息
 */
TYSdk.apiRequest('tuya.m.product.standard.config.list', {}, '1.0')

返回示例

[
    {
        "functionSchemaList": [],
        "productId": "as4katqbo****",
        "statusSchemaList": [],
        "category": "lyqwg"
    }
]

查询中控屏设备是否上报过规则

接口名称

tuya.m.screen.whether.report.dev.show.rule

接口说明

查询中控屏设备是否上报过规则。

请求参数

参数 数据类型 说明
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 查询中控屏设备是否上报过规则
 */
TYSdk.apiRequest('tuya.m.screen.whether.report.dev.show.rule', { screenId }, '1.0')

返回示例

true

查询中控屏所有展示的设备和群组

接口名称

tuya.m.screen.device.all

接口说明

查询中控屏所有展示的设备、群组。

请求参数

参数 数据类型 说明
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 查询中控屏所有展示的设备、群组
 */
TYSdk.apiRequest('tuya.m.screen.device.all', { screenId }, '2.0')

返回示例

[
    {
        "deviceDisplayShowDetail": {
            "meshId": "mex4b3ak****",
            "category": "wg2",
            "productId": "1jtzq1h05cwb****",
            "iconUrl": "https://****.png",
            "devId": "6cba7d0205ec3dfc****",
            "whetherIrAir": false,
            "quickSwitch": false,
            "name": "网关"
        },
        "resourceId": "6cba7d0205ec3dfc****",
        "resourceType": 0
    }
]

查询中控屏所有隐藏的设备和群组

接口名称

tuya.m.screen.device.hide.all

接口说明

查询中控屏所有隐藏的设备、群组。

请求参数

参数 数据类型 说明
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 查询中控屏所有隐藏的设备、群组
 */
TYSdk.apiRequest('tuya.m.screen.device.hide.all', { screenId }, '2.0')

返回示例

[
    {
        "deviceDisplayShowDetail": {
            "meshId": "mex4b3ak****",
            "category": "wg2",
            "productId": "1jtzq1h05cwb****",
            "iconUrl": "https://****.png",
            "devId": "6cba7d0205ec3dfc****",
            "whetherIrAir": false,
            "quickSwitch": false,
            "name": "网关"
        },
        "resourceId": "6cba7d0205ec3dfc****",
        "resourceType": 0
    }
]

查询中控屏所有展示的场景

接口名称

tuya.m.screen.linkage.rule.all

接口说明

查询中控屏所有展示的场景。

请求参数

参数 数据类型 说明
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 查询中控屏所有展示的场景
 */
TYSdk.apiRequest('tuya.m.screen.linkage.rule.all', { screenId }, '1.0')

返回示例

[
    {
        "coverIcon": "https://****.png",
        "name": "\"锁\"童锁:开",
        "id": "GooSAeDvsWc****",
        "enabled": true,
        "displayColor": "7F4ACA",
    }
]

查询中控屏所有隐藏的场景

接口名称

tuya.m.screen.linkage.rule.hide.all

接口说明

查询中控屏所有隐藏的场景。

请求参数

参数 数据类型 说明
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 查询中控屏所有隐藏的场景
 */
TYSdk.apiRequest('tuya.m.screen.linkage.rule.hide.all', { screenId }, '1.0')

返回示例

[
    {
        "coverIcon": "https://****.png",
        "name": "\"锁\"童锁:开",
        "id": "GooSAeDvsWc****",
        "enabled": true,
        "displayColor": "7F4ACA",
    }
]

隐藏资源

接口名称

tuya.m.screen.hide.resource

接口说明

隐藏资源。

请求参数

参数 数据类型 说明
resourceType number 资源类型
0:设备
1:群组
4:场景
resourceIds string 资源 ID 数组的 JSON 字符串
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 隐藏资源
 */
TYSdk.apiRequest('tuya.m.screen.hide.resource', { resourceType, resourceIds: JSON.stringify(['8gr19****']), screenId }, '1.0')

资源恢复显示

接口名称

tuya.m.screen.restore.resource

接口说明

资源恢复显示。

请求参数

参数 数据类型 说明
resourceType number 资源类型
0:设备
1:群组
4:场景
resourceIds string 资源 ID 数组的 JSON 字符串
screenId string 中控屏的设备 ID

请求示例

/**
 * @desc 资源恢复显示
 */
TYSdk.apiRequest('tuya.m.screen.restore.resource', { resourceType, resourceIds: JSON.stringify(['as4katqbo****']), screenId }, '1.0')

查询设备已设置的昵称

接口名称

tuya.ai.speech.nickname.get

接口说明

查询设备已设置的昵称。

请求参数

参数 数据类型 说明 是否必填
devId string 设备 ID

返回参数

参数 数据类型 说明
data string 设备已设置的昵称

请求示例

/**
 * @desc 查询设备已设置的昵称
 */
TYSdk.apiRequest('tuya.ai.speech.nickname.get', { devId }, '1.0')

返回示例

'小智管家'

设置设备的昵称

接口名称

tuya.ai.speech.nickname.add

接口说明

设置设备的昵称。

请求参数

参数 数据类型 说明 是否必填
devId string 设备 ID
nickname string 要设置的昵称

请求示例

/**
 * @desc 设置设备的昵称
 */
TYSdk.apiRequest('tuya.ai.speech.nickname.add', { devId, nickname }, '1.0')

删除设备的昵称

接口名称

tuya.ai.speech.nickname.del

接口说明

删除设备的昵称。

请求参数

参数 数据类型 说明 是否必填
devId string 设备 ID

请求示例

/**
 * @desc 删除设备的昵称
 */
TYSdk.apiRequest('tuya.ai.speech.nickname.del', { devId }, '1.0')

查询支持执行动作的设备 ID 及设备群组

接口名称

tuya.m.linkage.dev.group.list

接口说明

查询支持执行动作的设备 ID 列表及设备群组列表,包括用户的和家庭的。

请求参数

参数 数据类型 说明 是否必填
gid string 家庭 ID

请求示例

/**
 * @desc 查询支持执行动作的设备 ID 列表及设备群组列表(包括用户的和家庭的)
 */
TYSdk.apiRequest('tuya.m.linkage.dev.group.list', { gid: TYSdk.devInfo.homeId }, '3.0')

返回示例

{
    deviceIds: ["vdevo1640071583****"],
    exts: {
        6c7edbe2cf97ac1****: {},
    },
    groupIds: [1583****]
}

查询设备的 DP 配置列表

接口名称

tuya.m.action.list

接口说明

查询设备的 DP 配置列表。

请求参数

参数 数据类型 说明 是否必填
devId string 设备 ID

请求示例

/**
 * @desc 查询设备的 dp 配置列表
 */
TYSdk.apiRequest('tuya.m.action.list', { devId }, '1.0')

返回示例

[
    {
        "dpName": "夜灯亮度",
        "defaultValue": "0",
        "status": 1,
        "productId": "1jtzq1h05c****",
        "id": 931****,
        "dpId": 41,
        "valueRangeDisplay": "数值型:{\"unit\":\"\",\"min\":0,\"max\":100,\"scale\":0,\"step\":1,\"type\":\"value\",\"desc\":\"\"}",
        "orderNum": 1,
        "actDetail": "{}",
        "name": "夜灯亮度"
    }
]

查询适用于音箱语音的场景列表

接口名称

tuya.ai.speech.iot.scene.list

接口说明

查询适用于音箱语音的场景列表。

请求参数

参数 数据类型 说明 是否必填
queryJson { devId: string } 设备 ID

请求示例

/**
 * @desc 查询适用于音箱语音的场景列表
 */
TYSdk.apiRequest('tuya.ai.speech.iot.scene.list', { { queryJson: { devId: "1jtzq1h05c****" } } }, '1.0')

返回示例

[
   {
    id: "0nRtGGxmqRO9****",
    name: "\"灯\"亮度:74%"
   }
]

删除语音情景

接口名称

tuya.ai.speech.scene.delete

接口说明

删除语音情景。

请求参数

参数 数据类型 说明 是否必填
devId string 设备 ID
sceneId string 语音场景 ID

请求示例

/**
 * @desc 删除语音情景
 */
TYSdk.apiRequest('tuya.ai.speech.scene.delete', { devId, sceneId }, '1.0')

启用语音情景

接口名称

tuya.ai.auaora.scene.enable

接口说明

启用语音情景。

请求参数

参数 数据类型 说明 是否必填
sceneId string 语音场景 ID

请求示例

/**
 * @desc 启用语音情景
 */
TYSdk.apiRequest('tuya.ai.auaora.scene.enable', { sceneId }, '1.0')

禁用语音情景

接口名称

tuya.ai.auaora.scene.disable

接口说明

禁用语音情景。

请求参数

参数 数据类型 说明 是否必填
sceneId string 语音场景 ID

请求示例

/**
 * @desc 禁用语音情景
 */
TYSdk.apiRequest('tuya.ai.auaora.scene.disable', { sceneId }, '1.0')

查询家庭中的语音场景列表

接口名称

tuya.ai.auaora.scope.scene

接口说明

查询家庭中的语音场景列表。

请求参数

参数 数据类型 说明 是否必填
scopeId string 家庭 ID

请求示例

/**
 * @desc 查询家庭中的语音场景列表
 */
TYSdk.apiRequest('tuya.ai.auaora.scope.scene', { scopeId: TYSdk.devInfo.homeId }, '1.0')

返回示例

[
    {
        "voiceDevId": "vdevo163695712****",
        "id": "1470718466901****",
        "enabled": 1,
        "sceneType": "action",
        "voiceText": "",
        "scopeId": "3739****",
        "rules": [{
            "ruleTriggerConditions": [{
                "condition": "早上好",
                "ruleId": "147071846****",
                "id": "1470718466****",
                "sceneId": "1470718466****"
            }],
            "matchType": "2",
            "id": "1470718466934****",
            "enabled": 1,
            "triggerType": "voice",
            "name": "早上好",
            "sceneId": "14707184669****"
        }],
        "name": "早上好",
        "actions": [{
            "action": {
                "codes": [],
                "dps": [{
                    "dpId": "20",
                    "dpValue": false
                }],
                "entityName": "灯",
                "irs": []
            },
            "actionType": "smart_home",
            "id": "14707184669****",
            "instructionType": "dp",
            "entityId": "vdevo1638523****",
            "duration": 0,
            "desc": "开关:关闭;",
            "sceneId": "14707184669****"
        }]
    }
]

新增或修改语音场景

接口名称

tuya.ai.auaora.scene.save

接口说明

新增、修改语音场景。

请求参数

参数 数据类型 说明 是否必填
scene Scene 保存场景数据对象

Scene

参数名 参数类型 参数描述
actions SceneActions[] 语音场景执行动作数组
name string 语音场景名称
rules SceneRules[] 语音场景规则数组
scopeId string 家庭 ID
sourceDevId string 中控屏设备 ID
id string 语音场景 ID,更新的时候传

SceneActions

参数名 参数类型 参数描述
action Action[] 语音场景执行动作数组
actionType string smart_home:设备
app_scene:场景
tts:应答
weather:天气
news:新闻
story:故事
desc string 描述
duration number 执行动作时长(以秒为单位),仅当 actionType 为newsstory时需要传
entityId string 中控屏设备 ID

Action

参数名 参数类型 参数描述
dps Dps[] actionType 为smart_home时,需要传入此参数,表示需要下发 DP 的 ID 和值
intelligentSceneId string actionType 为app_scene时,需要传入此参数,表示执行的场景 ID。
ttsText string actionType 为tts时,需要传入此参数,表示应答的内容。
commandText string actionType 为weathernewsstory时,需要传入此参数,表示执行的语音内容。
entityName string 执行当前动作的设备名称

SceneRules

参数名 参数类型 参数描述
ruleTriggerConditions RuleTriggerCondition[] 触发语音场景的文字列表
triggerType Rules[] auto_condition:自动化
voice:语音

RuleTriggerCondition

参数名 参数类型 参数描述
condition string 触发语音场景的文字内容

请求示例

/**
 * @desc 新增、修改语音场景
 */
TYSdk.apiRequest('tuya.ai.auaora.scene.save', { scene }, '1.0')