更新时间:2022-02-21 GMT+08:00

设备Profile文件字段含义说明

设备能力

devicetype-capability.json记录了该设备的基础信息:

{
    "devices": [
        {
            "manufacturerId": "TestUtf8ManuId",
            "manufacturerName": "HZYB",
            "model": "NBIoTDevice",
            "protocolType": "CoAP",
            "deviceType": "WaterMeter",
            "omCapability":{ 
                          "upgradeCapability" : { 
                               "supportUpgrade":true,
                               "upgradeProtocolType":"PCP"
                         }, 
                         "fwUpgradeCapability" : {                  
                               "supportUpgrade":true,    
                               "upgradeProtocolType":"LWM2M"
                         },
                         "configCapability" : {                  
                               "supportConfig":true,
                               "configMethod":"file",
                               "defaultConfigFile": {
                                  "waterMeterInfo" : {
                                       "waterMeterPirTime" : "300"
                                   }
                               }
                         } 
             }, 
             "serviceTypeCapabilities": [
                {
                    "serviceId": "WaterMeterBasic",
                    "serviceType": "WaterMeterBasic",
                    "option": "Mandatory"
                },
                {
                    "serviceId": "WaterMeterAlarm",
                    "serviceType": "WaterMeterAlarm",
                    "option": "Mandatory"
                },
                {
                    "serviceId": "Battery",
                    "serviceType": "Battery",
                    "option": "Optional"
                },
                {
                    "serviceId": "DeliverySchedule",
                    "serviceType": "DeliverySchedule",
                    "option": "Mandatory"
                },
                {
                    "serviceId": "Connectivity",
                    "serviceType": "Connectivity",
                    "option": "Mandatory"
                }
            ]
        }
    ]
}

各字段的解释:

字段

子字段

可选/必选

描述

devices

     

必选

包含了一个设备的完整能力信息(根节点不能修改)。

  

manufacturerId

  

必选

指示设备的制造商ID。

  

manufacturerName

  

必选

指示设备的制造商名称 (只允许英文)。

  

model

  

必选

指示设备的型号,考虑到一款设备下的多种型号,建议包含字母或数字以保证可扩展性。

  

protocolType

  

必选

指示设备接入物联网平台的协议类型。如NB-IoT的设备取值为CoAP。

  

deviceType

  

必选

指示设备的类型。

  

omCapability

  

可选

定义设备的软件升级、固件升级和配置更新的能力,字段含义详情见下文中的:omCapability结构描述。

如果设备不涉及软件/固件升级,本字段可以删除。

  

serviceTypeCapabilities

  

必选

包含了设备具备的服务能力描述。

     

serviceId

必选

服务的Id,如果设备中同类型的服务类型只有一个则serviceId与serviceType相同, 如果有多个则增加编号,如三键开关 Switch01、Switch02、Switch03。

     

serviceType

必选

服务类型,与servicetype-capability.json中serviceType字段保持一致。

     

option

必选

标识服务字段的类型,取值范围:Master(主服务), Mandatory(必选服务), Optional(可选服务)。

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

omCapability结构描述

字段

子字段

可选/必选

描述

upgradeCapability

  

可选

设备软件升级能力。

  

supportUpgrade

可选

true:设备支持软件升级。

false:设备不支持软件升级。

  

upgradeProtocolType

可选

升级使用的协议类型,此处不同于设备的protocolType,例如CoAP设备软件升级协议使用PCP。

fwUpgradeCapability

  

可选

设备固件升级能力。

  

supportUpgrade

可选

true:设备支持固件升级。

false:设备不支持固件升级。

  

upgradeProtocolType

可选

升级使用的协议类型,此处不同于设备的protocolType,当前物联网平台仅支持LWM2M固件升级。

configCapability

  

可选

设备配置更新能力。

  

supportConfig

可选

true:设备支持配置更新。

false:设备不支持配置更新。

  

configMethod

可选

file:使用文件的方式下发配置更新。

  

defaultConfigFile

可选

设备默认配置信息(Json格式),具体配置信息由设备商自定义。物联网平台只储存该信息供下发时使用,不解析处理配置字段的具体含义。

服务能力

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
                },
                {
                    "propertyName": "internalTemperature",
                    "dataType": "int",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "0.01°C",
                    "enumList": null
                },
                {
                    "propertyName": "dailyFlow",
                    "dataType": "int",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "L",
                    "enumList": null
                },
                {
                    "propertyName": "dailyReverseFlow",
                    "dataType": "int",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "L",
                    "enumList": null
                },
                {
                    "propertyName": "peakFlowRate",
                    "dataType": "int",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "L/H",
                    "enumList": null
                },
                {
                    "propertyName": "peakFlowRateTime",
                    "dataType": "string",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": null,
                    "enumList": null
                },
                {
                    "propertyName": "intervalFlow",
                    "dataType": "array",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "L",
                    "enumList": null
                },
                {
                    "propertyName": "pressure",
                    "dataType": "array",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "kPa",
                    "enumList": null
                },
                {
                    "propertyName": "temperature",
                    "dataType": "array",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "0.01°C",
                    "enumList": null
                },
                {
                    "propertyName": "vibration",
                    "dataType": "array",
                    "required": false,
                    "min": 0,
                    "max": 0,
                    "step": 1,
                    "maxLength": 0,
                    "method": "W",
                    "unit": "0.01g",
                    "enumList": null
                }
            ]
        }
    ]
}

各字段的解释:

字段

子字段

必选/可选

描述

services

           

必选

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

  

serviceType

        

必选

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

  

description

        

必选

指示服务的描述信息。

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

  

commands

        

必选

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

     

commandName

     

必选

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

     

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"]

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

     

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]

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