设备接入 IOTDA-离线开发产品模型:服务能力定义样例

时间:2024-07-03 16:53:32

服务能力定义样例

servicetype-capability.json记录了该设备的服务信息:

{
    "services": [
        {
            "serviceType": "WaterMeterBasic",
            "description": "WaterMeterBasic",
            "commands": [
                {
                    "commandName": "SET_PRESSURE_READ_PERIOD",
                    "paras": [
                        {
                            "paraName": "value",
                            "dataType": "int",
                            "required": true,
                            "min": 1,
                            "max": 24,
                            "step": 1,
                            "maxLength": 10,
                            "unit": "hour",
                            "enumList": null
                        }
                    ],
                    "responses": [
                        {
                            "responseName": "SET_PRESSURE_READ_PERIOD_RSP",
                            "paras": [
                                {
                                    "paraName": "result",
                                    "dataType": "int",
                                    "required": true,
                                    "min": -1000000,
                                    "max": 1000000,
                                    "step": 1,
                                    "maxLength": 10,
                                    "unit": null,
                                    "enumList": null
                                }
                            ]
                        }
                    ]
                }
            ],
            "properties": [
                {
                    "propertyName": "registerFlow",
                    "dataType": "int",
                    "required": true,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "R",
                    "unit": null,
                    "enumList": null
                },
                {
                    "propertyName": "currentReading",
                    "dataType": "string",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "L",
                    "enumList": null
                },
                {
                    "propertyName": "timeOfReading",
                    "dataType": "string",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": null,
                    "enumList": null
                },
                ......
            ]
        }
    ]
}

各字段的解释:

字段

子字段

必选/可选

描述

services

-

-

-

-

必选

包含了一个服务的完整信息(根节点不可修改)。

-

serviceType

-

-

-

必选

指示服务的类型,与devicetype-capability.json中serviceType字段保持一致。

-

description

-

-

-

必选

指示服务的描述信息。

非功能性字段,仅起到描述作用,可置为null。

-

commands

-

-

-

必选

指示设备可以执行的命令,如果本服务无命令则置null。

-

-

commandName

-

-

必选

指示命令的名字,命令名与参数共同构成一个完整的命令。

-

-

paras

-

-

必选

命令包含的参数。

-

-

-

paraName

-

必选

命令中参数的名字。

-

-

-

dataType

-

必选

指示命令参数的数据类型。

取值范围:string、int、string list、decimal、DateTime、jsonObject、enum、boolean。

上报数据时,复杂类型数据格式如下:

  • string list:["str1","str2","str3"]
  • DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z
  • jsonObject:自定义json结构体, 物联网平台 不解析,仅进行透传

-

-

-

required

-

必选

指示本命令是否必选,取值为true或false,默认取值false(非必选)。

目前本字段是非功能性字段,仅起到描述作用。

-

-

-

min

-

必选

指示最小值。

仅当dataType为int、decimal时生效。

-

-

-

max

-

必选

指示最大值。

仅当dataType为int、decimal时生效。

-

-

-

step

-

必选

指示步长。

暂不使用,填0即可。

-

-

-

maxLength

-

必选

指示字符串长度。

仅当dataType为string、string list、DateTime时生效。

-

-

-

unit

-

必选

指示单位,英文。

取值根据参数确定,如:

温度单位:“C”或“K”

百分比单位:“%”

压强单位:“Pa”或“kPa”

-

-

-

enumList

-

必选

指示枚举值。

如开关状态status可有如下取值:

"enumList" : ["OPEN","CLOSE"]

目前本字段是非功能性字段,仅起到描述作用,建议准确定义。

-

-

responses

-

-

必选

命令执行的响应。

-

-

-

responseName

-

必选

命名可以在该responses对应命令的commandName后面添加“_RSP”。

-

-

-

paras

-

必选

命令响应的参数。

-

-

-

-

paraName

必选

命令中参数的名字。

-

-

-

-

dataType

必选

指示数据类型。

取值范围:string、int、string list、decimal、DateTime、jsonObject

上报数据时,复杂类型数据格式如下:

  • string list:["str1","str2","str3"]
  • DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z
  • jsonObject:自定义json结构体,物联网平台不解析,仅进行透传

-

-

-

-

required

必选

指示本命令响应是否必选,取值为true或false,默认取值false(非必选)。

目前本字段是非功能性字段,仅起到描述作用。

-

-

-

-

min

必选

指示最小值。

仅当dataType为int、decimal时生效,逻辑大于等于。

-

-

-

-

max

必选

指示最大值。

仅当dataType为int、decimal时生效,逻辑小于等于。

-

-

-

-

step

必选

指示步长。

暂不使用,填0即可。

-

-

-

-

maxLength

必选

指示字符串长度。

仅当dataType为string、string list、DateTime时生效。

-

-

-

-

unit

必选

指示单位,英文。

取值根据参数确定,如:

温度单位:“C”或“K”

百分比单位:“%”

压强单位:“Pa”或“kPa”

-

-

-

-

enumList

必选

指示枚举值。

如开关状态status可有如下取值:

"enumList" : ["OPEN","CLOSE"]

目前本字段是非功能性字段,仅起到描述作用,建议准确定义。

-

properties

-

-

-

必选

上报数据描述,每一个子节点为一条属性。

-

-

propertyName

-

-

必选

指示属性名称。

-

-

dataType

-

-

必选

指示数据类型。

取值范围:string、int、string list、decimal、DateTime、jsonObject

上报数据时,复杂类型数据格式如下:

  • string list:["str1","str2","str3"]
  • DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z
  • jsonObject:自定义json结构体,物联网平台不解析,仅进行透传

-

-

required

-

-

必选

指示本条属性是否必选,取值为true或false,默认取值false(非必选)。

目前本字段是非功能性字段,仅起到描述作用。

-

-

min

-

-

必选

指示最小值。

仅当dataType为int、decimal时生效,逻辑大于等于。

-

-

max

-

-

必选

指示最大值。

仅当dataType为int、decimal时生效,逻辑小于等于。

-

-

step

-

-

必选

指示步长。

暂不使用,填0即可。

-

-

method

-

-

必选

指示访问模式。

R:可读;W:可写;E:可订阅。

取值范围:R、RW、RE、RWE 、null。

-

-

unit

-

-

必选

指示单位,英文。

取值根据参数确定,如:

温度单位:“C”或“K”

百分比单位:“%”

压强单位:“Pa”或“kPa”

-

-

maxLength

-

-

必选

指示字符串长度。

仅当dataType为string、string list、DateTime时生效。

-

-

enumList

-

-

必选

指示枚举值。

如电池状态(batteryStatus)可有如下取值:

"enumList" : [0, 1, 2, 3, 4, 5, 6]

目前本字段是非功能性字段,仅起到描述作用,建议准确定义。

support.huaweicloud.com/devg-iothub/iot_02_4012.html