应用开发-云开发(TuyaLink)

更新时间:2022-10-17 07:53:16下载pdf

本文介绍已接入涂鸦 IoT 开发平台的 生态接入设备(TuyaLink)如何在云开发中进行应用集成开发。

基本概念

云开发

云开发是涂鸦打造的智慧解决方案一站式开发平台,为开发者提供包含 IoT 设备管理、数据分析、流程引擎等在内的基础产品,涵盖地产、工业、能源等9大行业所沉淀的行业产品,以及智慧社区、智慧安防、智慧商照、智慧酒店、智慧公寓等 PaaS 产品。

基于云开发,开发者可实现基础产品低代码开发,PaaS 产品组件化开发,并灵活选择行业产品。开发者可根据涂鸦提供的相关功能服务将对应的行业产品设备添加至不同项目中,进行资源管理,可快速实现各类行业 SaaS。详细信息请参考 云开发

应用开发-云开发(TuyaLink)

TuyaLink 产品

TuyaLink 产品是指在创建产品时,选择使用 设备接入 智能化方式创建的产品,详细操作请参考 设备接入

应用开发-云开发(TuyaLink)

设备绑定码

设备绑定码,是针对 TuyaLink 设备设计的可用于控制设备权限的凭证,绑定对象具备控制和获取设备信息的权限。我们提供了两个满足不同场景绑定需求的绑定码:

  • 绑定二维码:用于云开发设备管理APP扫码绑定时使用,常用于现场施工
  • Bind Code:用于云开发项目API资产绑定设备时使用,常用于业务系统集成

其中每个设备有且仅能绑定到一个资产对象下,绑定成功后,设备状态会切换为已绑定状态,具体方法请参考下文。

应用开发-云开发(TuyaLink)

设备绑定范围设置

默认情况下,设备仅支持当前 IoT 平台账号进行云项目绑定,若需要支持绑定其他 IoT 账号下的项目,请在 产品管理 > 产品设备绑定配置 中进行相关配置。

应用开发-云开发(TuyaLink)
应用开发-云开发(TuyaLink)

设备能力

云开发提供的设备北向对外暴露的接口服务,统一称为设备能力(Device Capabilities),应用开发者可基于能力与设备实现信息交互(包含设备控制和设备消息监听)。

能力类型 来源 定义
标准能力 Standard Capabilities 涂鸦官方定义 标准能力指的是经过涂鸦标准化映射包装,可实现跨产品、品类进行统一控制的能力。比如“开关”可以作为一个标准能力,所有带有“开关”这个能力的设备都能使用同一套参数进行统一控制,客户无需考虑各个产品之间的硬件差异。
原始能力 Original Capabilities 自动生成 设备模型上未经转换的硬件产品定义,比如:彩灯“R”的值(DP或属性)、摄像机初始化(动作)和设备掉电告警(事件)注意:通过原始能力控制设备,您需要先了解硬件产品模型定义(如:DP模型或物模型),才能正确下发设备指令或消息解析。
【敬请期待】自定义能力 Custom Capabilities 开发者自定义 开发者可以根据设备模型(DP 模型或物模型)自行设计、编排的能力。比如某产品有3个属性:R、G、B,客户为了方便操作可以将自定义一个“控制颜色“的能力将三个属性编排成为一个方法,调用即可控制颜色;又比如,某产品可以测量体重和身高,客户可自定义一个“获取 BMI”的能力,调用即可获取体重、身高并自动计算为 BMI 后返回。

操作说明

核心流程

应用开发-云开发(TuyaLink)

第一步 创建项目

项目是 IoT 开发平台资源的集合,不同云开发项目之间的资源相互隔离。当前支持创建 自定义开发 和 全屋智能 PaaS 两种项目。根据您实际需求,结合界面提示引导创建云开发项目。详细创建项目过程请参考 创建项目

应用开发-云开发(TuyaLink)

第二步 创建资产

云开发支持以资产为维度,对不同资产 ID 下的设备进行权限分隔和统一管理。本文以“A小区-小区北门” 为例进行介绍,详细的操作过程请参考 新建资产

创建前请先开通 IoT Core 连接服务

应用开发-云开发(TuyaLink)

第三步 关联(绑定)设备

开发者可通过 API 或 IoT 设备管理 App 将 TuyaLink 设备绑定到资产项目,绑定之前请先确保设备已开发完成且产品可发布。具体操作如下:

方法 1:App 绑定

  1. 进入云开发项目的 设备 页面,选择 添加设备 > 使用 IoT 设备管理 App 添加设备,然后下载 IoT 设备管理 App。

    应用开发-云开发(TuyaLink)

  2. 进入云开发项目的 用户 页面,新建一个用户,该用户可用于登录 IoT 设备管理 App。

    应用开发-云开发(TuyaLink)

根据资产,添加对应用户账号至授权用户。

应用开发-云开发(TuyaLink)

  1. 登录 IoT 设备管理 App,左上角切换资产到“小区北门”,轻按 添加 后扫描绑定二维码添加设备。

    应用开发-云开发(TuyaLink)

    绑定成功后,可在云开发项目的 资产 > 资产中设备 中查看资产下设备。

    应用开发-云开发(TuyaLink)

方式2:平台页面绑定

进入云开发项目的 资产页面,选择 添加设备 > 其他 后直接添加设备即可。

应用开发-云开发(TuyaLink)
应用开发-云开发(TuyaLink)

第四步 Pulsar 设备消息订阅

消息订阅服务,主要用于当设备信息发生变更时,开发者可以在涂鸦 IoT 开发平台启用订阅消息功能及时获取项目内设备的变更信息,例如设备注册、设备数据上报、设备状态变更等。

当前仅支持“消息队列”订阅类型。消息堆积后,可以设置堆积报警推送至手机号码或指定邮箱。详细操作方法,请参考消息队列快速入门

开启消息订阅

选择 云开发 > 消息订阅 后,选择一个目标项目,开启消息订阅。

应用开发-云开发(TuyaLink)
应用开发-云开发(TuyaLink)

设备消息监听

设备消息监听详请请参考 基于 Pulsar 获取消息推送

第五步 设备北向控制

订阅开通“设备北向能力”服务

在涂鸦增值服务中心,您可以 订阅北向服务
应用开发-云开发(TuyaLink)

授权给项目

在目标云项目中,选择 服务API > 新增 API 授权,找到“设备北向能力”并授权给项目。

应用开发-云开发(TuyaLink)

在 API Explorer 中调试

单击设备北向能力的 去调试 可以打开 API Explorer 开始调试。
应用开发-云开发(TuyaLink)

查询设备拥有的能力

GET: /v1.0/iot-03/devices/{device_id}/capabilities-definition

tag 可选 standard(标准能力)和 original(原始能力),具体请查看接口文档。

应用开发-云开发(TuyaLink)

设备能力列表解析

{
  "result": {
    "capabilities": [
      {
        "capability_code": "switch_led",
        "methods": [
          "get",
          "post",
          "event"
        ],
        "name": "灯开关",
        "request": {
          "description": "",
          "name": "开关",
          "type": "boolean"
        },
        "response": {
          "description": "",
          "name": "开关",
          "type": "boolean"
        },
        "tags": [
          "standard"
        ]
      },
      {
        "capability_code": "bright_value",
        "methods": [
          "get",
          "post",
          "event"
        ],
        "name": "亮度值",
        "request": {
          "description": "",
          "max": 1000,
          "min": 10,
          "name": "亮度值",
          "scale": 0,
          "step": 1,
          "type": "integer"
        },
        "response": {
          "description": "",
          "max": 1000,
          "min": 10,
          "name": "亮度值",
          "scale": 0,
          "step": 1,
          "type": "integer"
        },
        "tags": [
          "standard"
        ]
      },
    ],
    "device_id": "vdevo159661074251043"
  },
  "success": true,
  "t": 1644561248369
}

通过分析返回的设备列表定义,提取以下几个重要的字段:

  • capability_code:能力代码,在访问能力时候将要用到。如上例中的:switch_led
  • methods:访问能力的方式。
    • get:可使用 GET 方法调用 API。
    • post:可使用 POST 方法调用 API。
    • event:可使用 Pulsar 消息订阅的方式访问。
  • request:访问能力时需要输入的参数解释。如上例中 switch_led 的入参要求是 boolean 类型,则访问能力时你应该填写 truefalse
  • response:访问能力的返回结果解释。

执行设备指定能力

通过对能力列表的分析,我们得知此设备有一个 capability_code为switch_led 的能力,其能力请求参数为 boolean 类型。

所以我们可以在 API Explorer 中填入对应的参数来执行此能力。

POST: /v1.0/iot-03/devices/{device_id}/capabilities-definition

应用开发-云开发(TuyaLink)

查询设备指定能力

与执行设备能力类似,只是将访问方法由 POST 变为 GET。

后续操作

更多设备接入操作内容请参考 设备接入