涂鸦开发者平台云开发最佳实践通过虚拟设备调试设备联动功能

通过虚拟设备调试设备联动功能

更新时间:2023-06-27 03:13:18下载pdf

涂鸦 IoT 开发平台为方便开发者能够快速调试不同设备,解决身边没有相应实体设备的情况,提供了添加虚拟设备用于调整的功能。本文将以全屋智能项目为例,介绍如何使用 IoT 平台项目添加虚拟设备,进行智能家具设备自动化控制的模拟调试。

操作流程

全屋智能项目云开发项目支持多种关联设备的方式,本文通过 App添加虚拟设备 并调试的方式为例为您介绍项目创建全流程。操作流程图如下所示。

通过虚拟设备调试设备联动功能

创建全屋智能项目

  1. 登录 涂鸦 IoT 开发平台

  2. 在左侧导航栏中,选择 云开发 > 云开发

  3. 创建 全屋智能 类型项目。

    1. 单击左侧导航栏中的 云开发 > 云开发
    2. 云开发 > 我的云项目 页面,单击 创建云项目
    3. 创建云项目 窗口,配置项目信息。
    4. 单击 创建,在弹出的窗口中开通 API 授权并完成项目创建。

    详情请参考 创建全屋智能项目

  4. 关联设备。全屋项目类型当前支持三种设备关联方式。

    • 关联自有 App 配网添加的设备
    • 关联自有小程序配网添加的设备
    • 关联涂鸦 App 帐号下的设备

    详情可查看关联设备

    本示例通过 App 账号关联账号下的设备,选择 关联自有 App > 添加 App 账号,关联完成后,该项目就能够对智能生活 App 中的设备进行管理和控制。

添加虚拟设备

本示例通过添加 球泡灯灯光开关 虚拟设备,实现智能家具的自动化联动。

  1. 云管理 > 我的云项目页面,选择指定项目。

  2. 在顶部页签中,选择 设备

  3. 全部设备 页签中,将鼠标悬停至 添加设备 上之后,选择 添加虚拟设备

  4. 找到设备并单击 添加虚拟设备,在产品弹窗中选择选择方式。
    全屋智能项目支持三种添加方式:

    • 添加到资产
      选择产品添加至资产路径下。

      通过虚拟设备调试设备联动功能

      注意:如果您没有创建资产,则需要 新建资产 后才可以添加产品。

    • 添加到自有 App 下
      选择 App、添加账户并选择家庭,将产品添加到自有 App 下。

      通过虚拟设备调试设备联动功能

      注意:您需要创建 OEM App 并关联 App 后才可以添加产品。OEM App 创建流程请参考OME App 开发,同时我们也提供 体验版 App 进行体验。

    • 添加到涂鸦 App 账号
      使用智能生活 App 扫描二维码,添加产品到涂鸦 App 账号。

      通过虚拟设备调试设备联动功能
  5. 全部设备 页签下,选择设备添加方式,可查看该设备方式下已添加的虚拟设备。

    说明: 后续调用 API 需使用 设备 ID

    通过虚拟设备调试设备联动功能

  6. 如果您选择 添加到自有 App涂鸦 App 账号 下,您可以在已创建的 OEM App 或智能生活首页查看已关联的虚拟设备。

    通过虚拟设备调试设备联动功能

控制设备

将设备添加至云开发平台后,可以通过调用 API 实现对 球泡灯灯光开关 的远程开启、关闭以及智能家居场景的创建等操作。

注意:如果您在创建云项目时跳过了开通并授权 API的步骤,或者需要调用更多的 API,请参考 管理 API 服务 开通 API 服务并授与指定项目调用权限。

  1. 通过 API 调试 调用 API,控制设备。

    1. 选择 云开发>API 调试

    2. 已开通 API 下拉框,选择 IoT Core连接服务

      通过虚拟设备调试设备联动功能
    3. API 调试 页面,调用 下发指令 API,输入device_idcommands,实现不同操作。

      说明: 更多灯具控制指令参见 灯具标准指令集

      • 开启灯光

        {
           "code": "switch_led",
           "value": true
        }
        
  2. 全屋智能项目中,虚拟设备也可创建智能家居自动化任务和智能场景应用。

    说明:更多接口支持使用 Postman 进行调用,API 参见 场景自动化。Postman 调用方法参见设置 Postman 环境和调用 API

    1. 通过 GET /v1.0/homes/31979953/automation/devices 查询家庭下支持自动化的设备列表,可得知添加的虚拟设备球泡灯和开关都支持自动化功能,返回信息如下。

        {
            "result": [
                {
                    "device_id": "vdevo162147870149816",
                    "home_id": "31979953",
                    "name": "YB_A70_RGBW_low-vdevo",
                    "uuid": "vdevo162147870149816"
                },
                {
                    "device_id": "vdevo162147685639303",
                    "home_id": "31979953",
                    "name": "强电二路开关-vdevo",
                    "uuid": "vdevo162147685639303"
                }
            ],
            "success": true,
            "t": 1621478801943
        }
      
    2. 通过GET /v1.0/homes/31979953/enable-linkage/codes查询家庭下支持的功能列表,可分别得知两个设备所支持联动的功能。

      {
        "result": [
            {
                "device_id": "vdevo162147870149816",
                "functions": [
                    {
                        "code": "switch_led",
                        "name": "开关",
                        "type": "Boolean",
                        "values": {}
                    },
                    {
                        "code": "work_mode",
                        "name": "工作模式",
                        "type": "Enum",
                        "values": {
                            "range": [
                                "white",
                                "colour"
                            ]
                        }
                    }
                ],
                "status": [
                    {
                        "code": "bright_value",
                        "name": "亮度值",
                        "type": "Integer",
                        "values": {
                            "max": 255,
                            "min": 25,
                            "scale": 0,
                            "step": 1,
                            "unit": ""
                        }
                    },
                    {
                        "code": "switch_led",
                        "name": "开关",
                        "type": "Boolean",
                        "values": {}
                    },
                    {
                        "code": "work_mode",
                        "name": "工作模式",
                        "type": "Enum",
                        "values": {
                            "range": [
                                "white",
                                "colour"
                            ]
                        }
                    }
                ]
            },
            {
                "device_id": "vdevo162147685639303",
                "functions": [
                    {
                        "code": "switch_1",
                        "name": "开关1",
                        "type": "Boolean",
                        "values": {}
                    },
                    {
                        "code": "switch_2",
                        "name": "开关2",
                        "type": "Boolean",
                        "values": {}
                    }
                ],
                "status": [
                    {
                        "code": "switch_1",
                        "name": "开关1",
                        "type": "Boolean",
                        "values": {}
                    },
                    {
                        "code": "switch_2",
                        "name": "开关2",
                        "type": "Boolean",
                        "values": {}
                    }
                ]
            }
        ],
        "success": true,
        "t": 1621478728779
      }
      
    3. 通过 POST /v1.0/homes/31979953/automations 添加自动化,用多路开关来控制球泡灯的开关,以实现联动。

      • 配置开关 1,控制灯的开和关。

        {    
           "conditions":[
                {
                    "display":{
                        "code":"switch_1",
                        "operator":"==",
                        "value":true
                    },
                    "entity_id":"vdevo162147685639303",
                    "entity_type":1,
                    "order_num":1
                }
            ],
            "actions":[
                {
                    "action_executor":"dpIssue",
                    "entity_id":"vdevo162147870149816",
                    "executor_property":{
                    "switch_led": true**
                    }
                }
            ],
            "background":"https://images.tuyacn.com/smart/rule/cover/bedroom.png",
            "match_type":1,
            "name":"开关控制多路灯-开"
        }
        
        {
           "conditions":[
                {
                    "display":{
                        "code":"switch_1",
                        "operator":"==",
                        "value":false
                    },
                    "entity_id":"vdevo162147685639303",
                    "entity_type":1,
                    "order_num":1
                }
            ],
            "actions":[
                {
                    "action_executor":"dpIssue",
                    "entity_id":"vdevo162147870149816",
                    "executor_property":{
                    "switch_led": false
                    }
                }
            ],
            "background":"https://images.tuyacn.com/smart/rule/cover/bedroom.png",
            "match_type":1,
            "name":"开关控制多路灯—关"
        } 
        
      • 配置开关 2,控制灯的彩光和白光模式切换。

        {
           "conditions":[
                {
                    "display":{
                        "code":"switch_2",
                        "operator":"==",
                        "value":true
                    },
                    "entity_id":"vdevo162147685639303",
                    "entity_type":1,
                    "order_num":1
                }
            ],
            "actions":[
                {
                    "action_executor":"dpIssue",
                    "entity_id":"vdevo162147870149816",
                    "executor_property":{
                    "work_mode": "colour" /*开关2-开-打开灯光彩色模式*/
                    }
                }
            ],
            "background":"https://images.tuyacn.com/smart/rule/cover/bedroom.png",
            "match_type":1,
            "name":"开关 2 控制多路灯—彩光"
        } 
        
        {
           "conditions":[
                {
                    "display":{
                        "code":"switch_2",
                        "operator":"==",
                        "value":false
                    },
                    "entity_id":"vdevo162147685639303",
                    "entity_type":1,
                    "order_num":1
                }
            ],
            "actions":[
                {
                    "action_executor":"dpIssue",
                    "entity_id":"vdevo162147870149816",
                    "executor_property":{
                    "work_mode": "white" /*开关2-关-打开灯光白色光模式*/
                    }
                }
            ],
            "background":"https://images.tuyacn.com/smart/rule/cover/bedroom.png",
            "match_type":1,
            "name":"开关2控制多路灯—白光"
        } 
        
    4. 测试开关控制。

      • 场景一: 开关 1 开启,灯也会自动打开;开关 1 关闭:灯也会关闭。

      • 场景二: 开关 2 开启,灯设置为彩光模式;开关 2 关闭:灯会设置为白光模式。

FAQ

Q:通过自有 App 账户方式添加设备的账号如何获取?

A:App 账户即为登录 OEM App/小程序的账号,可在 App 上查看,或使用获取用户列表API查询。