查询设备的物模型

查询设备的物模型。

请求URL

GET {base_url}/device/openapi/v1.0/devices/{deviceId}/thing-specification

请求参数

1. 头部参数
参数 是否必填 类型 描述
Authorization String API调用的有效访问token。

格式为 Bearer {access_token}

2. 路径参数
参数 是否必填 类型 描述
deviceId Integer 设备的唯一标识符,当您添加设备时会返回。
注: 如果您没有保存设备ID,可以使用以下方法查询设备的ID 查询设备列表

响应参数

参数 类型 描述
data Object<TSL_Model> 查询设备的TSL模型。
status String API的请求结果。
  • Success
  • Failed
requestId String 唯一的请求ID ,可用于快速定位请求。
物模型
参数 类型 描述
version String 设备的物模型版本。
properties Array<TSL_Properties> 属性描述了此设备的状态和信息。
events Array<TSL_Events> 设备将报告传递给星纵物联开放平台,以进行通知和处理的信息。
services Array<TSL_Services> 设备的可用命令或外部调用的方法。
物模型属性
参数 类型 描述
id String 唯一标识符。
propertyKey String 属性键。
name String 属性名称。
description String 属性描述。
accessMode String 属性的访问模式。
  • R: 只读属性,即静态数据或不能更改的值,用于描述设备的状态或信息。

    例如,设备的序列号(Serial Number)和固件版本。

  • W: 写入(Write-only)属性是可配置的参数,表示可以配置的设备设置。
    例如,传感器的数据报告的间隔。
    注: 你可以使用此功能修改写入属性的值,以更新设备的设置。更新设备属性.
  • RW: 可读写属性,既可以描述设备信息,也可以进行修改。

    例如,智能插座的开关状态。

    注: 你可以使用读写属性的值来修改设备的设置。 更新设备属性.
hidden Boolean 是否显示该属性。
  • true:隐藏此属性。
  • false: 显示此属性。
dataSpec Object 该属性的数据定义。
注: 返回的参数因设备型号而异。
dataType String 属性的数据类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
elementDataType String 元素数据的类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
parentId String 副属性唯一标识符。
defaultValue String 属性的默认值。
unitName String 单位的名称。
fractionDigits Integer 要保留的小数位数。
coefficient Number 属性的系数。
validator Object 强制执行此属性的数据验证规则的机制。
min Number 这个属性的最小值。
max Number 这个属性的最大值。
minSize Integer 字符串数据的最小长度。
maxSize Integer 字符串和数组数据的最大长度。
required Boolean 属性是否必填。
  • true: 必填。
  • false: 可选。
encoding String 字符串 数据的编码方法。
  • HEX
  • ASCII
  • UTF8
  • BASE64
mapping Object 枚举映射。
key String 枚举的值。
物模型事件
参数 类型 描述
id String 事件的唯一标识符。
name String 事件的名称。
description String 事件的说明。
type String 事件的类型。
  • INFO
  • WARN
  • ERROR
hidden Boolean 事件是否隐藏。
  • true: 隐藏事件
  • false: 显示事件
outputs Array 输出参数,即事件发生时报告的数据。
id String 输出参数的唯一标识符。
propertyKey String 报告属性的关键字。
name String 输出参数的名称。
description String 输出参数的描述。
hidden Boolean 输出参数是否隐藏。
  • true:隐藏输出参数。
  • false: 显示输出参数。
dataSpec Object 输出参数的数据定义。
dataType String 输出参数的数据类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
elementDataType String 元素数据的类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOULBE
  • ENUM
parentId String

父输出参数的唯一标识符。

defaultValue String 输出参数的默认值。
unitName String 单位名称。
fractionDigits Integer 要保留的小数位数。
coefficient Number 输出参数的系数。
validator Object 输出参数,强制执行数据验证规则的机制。
min Number 最小值。
max Number 最大值。
minSize Integer 字符串数据的最小长度。
maxSize Integer 字符串数组数据的最大长度。
required Boolean

该输出参数是否为必填项。

  • ture::必填项。
  • false::可选项。
encoding String 字符串数据的编码方法。
  • HEX
  • ASCII
  • UTF8
  • BASE64
mapping Object 枚举映射。
key String 枚举值。
ref String 引用现有属性。
TSL_服务
参数 类型 描述
id String 服务的唯一标识符。
name String 服务的名称。
description String 服务的说明。
callType String 服务的调用类型。
  • SYNC: 同步调用。
  • ASYNC: 异步调用。
hidden Boolean 服务是否隐藏
  • true: 隐藏
  • false: 显示
inputs Array 输入参数,当调用该服务时传递的下行数据。
id String 输入参数的唯一标识。
propertyKey String 属性标识。
name String 输入参数的名称。
description String 输入参数的说明。
hidden Boolean 输入参数是否隐藏。
  • true: 隐藏。
  • false: 显示。
dataSpec Object 输入参数的数据定义。
dataType String 输入参数的数据类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
elementDataType String 元素数据的类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
parentId String 父输入参数的唯一标识符。
defaultValue String 输入参数的默认值。
unitName String 单位的名称。
fractionDigits Integer 要保留的小数位数。
coefficient Number 输入参数的系数。
validator Object 输入参数强制执行数据验证规则的机制。
min Number 最小值。
max Number 最大值。
minSize Integer String 数据的最小长度。
maxSize Integer String 数据的最大长度。
required Boolean 输入参数是否是必填项。
  • true: 必填项。
  • false: 可选项。
encoding String 字符串数据的编码方法。
  • HEX
  • ASCII
  • UTF8
  • BASE64
mapping Object 枚举映射。
key String 枚举值。
ref String 引用现有属性。
outputs Array 输出参数,即调用此服务时报告的数据。
id String 输出参数的唯一标识符。
propertyKey String 属性标识。
name String 输出参数的名称。
description String 输出参数的说明。
hidden Boolean 输出参数是否隐藏。
  • true:隐藏。
  • false: 显示。
dataSpec Object 输出参数的数据定义。
dataType String 输出参数的数据类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
elementDataType String 元素数据的类型。
  • BOOL
  • STRING
  • STRUCT
  • DATE
  • ARRAY
  • INT
  • LONG
  • FLOAT
  • DOUBLE
  • ENUM
parentId String 父输出参数的唯一标识符。
defaultValue String 输出参数的默认值。
unitName Stringdan 单位的名称。
fractionDigits Integer 要保留的小数位数。
coefficient Number 输出参数的系数。
validator Object 强制执行该输出参数的数据验证规则的机制。
min Number 最小值。
max Number 最大值。
minSize Integer String数据的最小长度。
maxSize Integer StringArray 数据的最大长度。
required Boolean 输出参数是否为必需项。
  • true: 必需
  • false: 可选
encoding String 字符串数据的编码方法。
  • HEX
  • ASCII
  • UTF8
  • BASE64
mapping Object 枚举映射。
key String 枚举值。
ref String 引用现有属性。

示例

请求示例
查询ID为"1739930666380779522"的设备的物模型。
GET /device/openapi/v1.0/devices/1739930666380779522/thing-specification HTTP/1.1
Host: milesight.demo.com
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InllYXN0b25lLWRlZmF1bHQta2V5LWlkIn0.eyJncmFudF90eXBlIjoiY2xpZW50X2NyZWRlbnRpYWxzIiwic2NvcGUiOlsib3BlbmFwaSJdLCJjbGllbnRfZXh0Ijp7ImFwcF9pZCI6IjE3MzY5NTQ4MDE3MTMzMjgxMzAifSwiZXhwIjoxNzAzMjEzMDk4LCJhdXRob3JpdGllcyI6WyJST0xFX0NMSUVOVCJdLCJqdGkiOiJiYjJjN2U4Yy03NGQwLTQ4NjEtODE3MS1iYTc0NWRlMGY0NmQiLCJjbGllbnRfaWQiOiI4OTNkNzdjNy1mMGNiLTRmMzQtOWNhMS03YzJhNGNmMTEzNDgiLCJ0cyI6MTcwMzIwOTQ5ODMzNH0
Content-Type: application/json
User-Agent: OpenAPI
响应示例
HTTP/1.1 200 OK
{
    "data": {
        "version": "v1.0",
        "properties": [
            {
                "id": "ipso_version",
                "name": "${pd.common.tsl.property.ipso_version.name}",
                "accessMode": "R",
                "hidden": true,
                "dataSpec": {
                    "dataType": "INT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "sn",
                "name": "${pd.common.tsl.property.sn.name}",
                "accessMode": "R",
                "hidden": true,
                "dataSpec": {
                    "dataType": "STRING",
                    "validator": {
                        "maxSize": 12,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "hardware_version",
                "name": "${pd.common.tsl.property.hardware_version.name}",
                "accessMode": "R",
                "hidden": true,
                "dataSpec": {
                    "dataType": "STRING",
                    "validator": {
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "firmware_version",
                "name": "${pd.common.tsl.property.firmware_version.name}",
                "accessMode": "R",
                "hidden": true,
                "dataSpec": {
                    "dataType": "STRING",
                    "validator": {
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "lorawan_class",
                "name": "${pd.common.tsl.property.lorawan_class.name}",
                "accessMode": "R",
                "hidden": true,
                "dataSpec": {
                    "dataType": "ENUM",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "0": "${pd.common.tsl.property.lorawan_class.enum.0}"
                    }
                }
            },
            {
                "id": "battery",
                "name": "${pd.common.tsl.property.battery.name}",
                "accessMode": "R",
                "hidden": true,
                "dataSpec": {
                    "dataType": "INT",
                    "unitName": "%",
                    "validator": {
                        "min": 1.0,
                        "max": 100.0,
                        "required": true
                    }
                }
            },
            {
                "id": "temperature",
                "name": "${pd.ws203.tsl.property.temperature.name}",
                "accessMode": "R",
                "hidden": false,
                "dataSpec": {
                    "dataType": "FLOAT",
                    "unitName": "℃",
                    "fractionDigits": 1,
                    "coefficient": 0.1,
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "humidity",
                "name": "${pd.ws203.tsl.property.humidity.name}",
                "accessMode": "R",
                "hidden": false,
                "dataSpec": {
                    "dataType": "FLOAT",
                    "unitName": "%RH",
                    "fractionDigits": 1,
                    "coefficient": 0.5,
                    "validator": {
                        "min": 0.0,
                        "max": 100.0,
                        "required": true
                    }
                }
            },
            {
                "id": "pir_status",
                "name": "${pd.ws203.tsl.property.pir_status.name}",
                "accessMode": "R",
                "hidden": false,
                "dataSpec": {
                    "dataType": "ENUM",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "0": "${pd.ws203.tsl.property.pir_status.enum.0}",
                        "1": "${pd.ws203.tsl.property.pir_status.enum.1}"
                    }
                }
            },
            {
                "id": "reporting_interval",
                "name": "${pd.ws203.tsl.property.reporting_interval.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "reporting_interval.time",
                "name": "${pd.ws203.tsl.property.reporting_interval.time.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "reporting_interval",
                    "defaultValue": "30",
                    "unitName": "min",
                    "validator": {
                        "min": 1.0,
                        "max": 1440.0,
                        "required": true
                    }
                }
            },
            {
                "id": "collecting_interval",
                "name": "${pd.ws203.tsl.property.collecting_interval.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "defaultValue": "1",
                    "unitName": "min",
                    "validator": {
                        "min": 1.0,
                        "max": 1440.0,
                        "required": true
                    }
                }
            },
            {
                "id": "vacancy_reporting_interval",
                "name": "${pd.ws203.tsl.property.vacancy_reporting_interval.name}",
                "description": "${pd.ws203.tsl.property.vacancy_reporting_interval.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "defaultValue": "300",
                    "unitName": "s",
                    "validator": {
                        "min": 60.0,
                        "max": 3600.0,
                        "required": true
                    }
                }
            },
            {
                "id": "led_indicator",
                "name": "${pd.ws203.tsl.property.led_indicator.name}",
                "description": "${pd.ws203.tsl.property.led_indicator.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.led_indicator.enum.0}",
                        "true": "${pd.ws203.tsl.property.led_indicator.enum.1}"
                    }
                }
            },
            {
                "id": "time_zone",
                "name": "${pd.ws203.tsl.property.time_zone.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "ENUM",
                    "defaultValue": "0",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "0": "${pd.ws203.tsl.property.time_zone.enum.0}",
                        "10": "${pd.ws203.tsl.property.time_zone.enum.10}",
                        "20": "${pd.ws203.tsl.property.time_zone.enum.20}",
                        "30": "${pd.ws203.tsl.property.time_zone.enum.30}",
                        "35": "${pd.ws203.tsl.property.time_zone.enum.35}",
                        "40": "${pd.ws203.tsl.property.time_zone.enum.40}",
                        "45": "${pd.ws203.tsl.property.time_zone.enum.45}",
                        "50": "${pd.ws203.tsl.property.time_zone.enum.50}",
                        "55": "${pd.ws203.tsl.property.time_zone.enum.55}",
                        "57": "${pd.ws203.tsl.property.time_zone.enum.57}",
                        "60": "${pd.ws203.tsl.property.time_zone.enum.60}",
                        "65": "${pd.ws203.tsl.property.time_zone.enum.65}",
                        "70": "${pd.ws203.tsl.property.time_zone.enum.70}",
                        "80": "${pd.ws203.tsl.property.time_zone.enum.80}",
                        "90": "${pd.ws203.tsl.property.time_zone.enum.90}",
                        "95": "${pd.ws203.tsl.property.time_zone.enum.95}",
                        "100": "${pd.ws203.tsl.property.time_zone.enum.100}",
                        "105": "${pd.ws203.tsl.property.time_zone.enum.105}",
                        "110": "${pd.ws203.tsl.property.time_zone.enum.110}",
                        "120": "${pd.ws203.tsl.property.time_zone.enum.120}",
                        "127": "${pd.ws203.tsl.property.time_zone.enum.127}",
                        "130": "${pd.ws203.tsl.property.time_zone.enum.130}",
                        "140": "${pd.ws203.tsl.property.time_zone.enum.140}",
                        "-120": "${pd.ws203.tsl.property.time_zone.enum._120}",
                        "-110": "${pd.ws203.tsl.property.time_zone.enum._110}",
                        "-100": "${pd.ws203.tsl.property.time_zone.enum._100}",
                        "-95": "${pd.ws203.tsl.property.time_zone.enum._95}",
                        "-90": "${pd.ws203.tsl.property.time_zone.enum._90}",
                        "-80": "${pd.ws203.tsl.property.time_zone.enum._80}",
                        "-70": "${pd.ws203.tsl.property.time_zone.enum._70}",
                        "-60": "${pd.ws203.tsl.property.time_zone.enum._60}",
                        "-50": "${pd.ws203.tsl.property.time_zone.enum._50}",
                        "-40": "${pd.ws203.tsl.property.time_zone.enum._40}",
                        "-35": "${pd.ws203.tsl.property.time_zone.enum._35}",
                        "-30": "${pd.ws203.tsl.property.time_zone.enum._30}",
                        "-20": "${pd.ws203.tsl.property.time_zone.enum._20}",
                        "-10": "${pd.ws203.tsl.property.time_zone.enum._10}"
                    }
                }
            },
            {
                "id": "data_storage_enable",
                "name": "${pd.ws203.tsl.property.data_storage_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.data_storage_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.data_storage_enable.enum.1}"
                    }
                }
            },
            {
                "id": "retransmission_enable",
                "name": "${pd.ws203.tsl.property.retransmission_enable.name}",
                "description": "${pd.ws203.tsl.property.retransmission_enable.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.retransmission_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.retransmission_enable.enum.1}"
                    }
                }
            },
            {
                "id": "retransmission_interval",
                "name": "${pd.ws203.tsl.property.retransmission_interval.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "retransmission_interval.interval",
                "name": "${pd.ws203.tsl.property.retransmission_interval.interval.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "retransmission_interval",
                    "defaultValue": "600",
                    "unitName": "s",
                    "validator": {
                        "min": 30.0,
                        "max": 1200.0,
                        "required": true
                    }
                }
            },
            {
                "id": "retrival_interval",
                "name": "${pd.ws203.tsl.property.retrival_interval.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "retrival_interval.interval",
                "name": "${pd.ws203.tsl.property.retrival_interval.interval.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "retrival_interval",
                    "defaultValue": "60",
                    "unitName": "s",
                    "validator": {
                        "min": 30.0,
                        "max": 1200.0,
                        "required": true
                    }
                }
            },
            {
                "id": "threshold_parameter",
                "name": "${pd.ws203.tsl.property.threshold_parameter.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "threshold_parameter.threshold_condition",
                "name": "${pd.ws203.tsl.property.threshold_parameter.threshold_condition.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "ENUM",
                    "parentId": "threshold_parameter",
                    "defaultValue": "0",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "0": "${pd.ws203.tsl.property.threshold_parameter.threshold_condition.enum.0}",
                        "1": "${pd.ws203.tsl.property.threshold_parameter.threshold_condition.enum.1}",
                        "2": "${pd.ws203.tsl.property.threshold_parameter.threshold_condition.enum.2}",
                        "3": "${pd.ws203.tsl.property.threshold_parameter.threshold_condition.enum.3}",
                        "4": "${pd.ws203.tsl.property.threshold_parameter.threshold_condition.enum.4}"
                    }
                }
            },
            {
                "id": "threshold_parameter.threshold_max",
                "name": "${pd.ws203.tsl.property.threshold_parameter.threshold_max.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "FLOAT",
                    "parentId": "threshold_parameter",
                    "defaultValue": "0",
                    "unitName": "℃",
                    "fractionDigits": 1,
                    "coefficient": 0.1,
                    "validator": {
                        "min": -30.0,
                        "max": 60.0,
                        "required": true
                    }
                }
            },
            {
                "id": "threshold_parameter.threshold_min",
                "name": "${pd.ws203.tsl.property.threshold_parameter.threshold_min.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "FLOAT",
                    "parentId": "threshold_parameter",
                    "defaultValue": "0",
                    "unitName": "℃",
                    "fractionDigits": 1,
                    "coefficient": 0.1,
                    "validator": {
                        "min": -30.0,
                        "max": 60.0,
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_enable",
                "name": "${pd.ws203.tsl.property.d2d_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_key",
                "name": "${pd.ws203.tsl.property.d2d_key.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRING",
                    "defaultValue": "5572404c696e6b4c",
                    "validator": {
                        "minSize": 16,
                        "maxSize": 16,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "d2d_trigger_by_occupied_temperature",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied_temperature.enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_occupied_temperature",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied_temperature.lora_uplink_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.lora_uplink_enable.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.lora_uplink_enable.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_occupied_temperature",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.lora_uplink_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.lora_uplink_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied_temperature.control_command",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.control_command.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRING",
                    "parentId": "d2d_trigger_by_occupied_temperature",
                    "defaultValue": "0000",
                    "validator": {
                        "minSize": 4,
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "d2d_trigger_by_occupied_temperature.control_time_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.control_time_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_occupied_temperature",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.control_time_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.control_time_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied_temperature.control_time",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.control_time.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_occupied_temperature.control_time.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "d2d_trigger_by_occupied_temperature",
                    "defaultValue": "5",
                    "unitName": "min",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied.enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_occupied",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied.lora_uplink_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.lora_uplink_enable.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.lora_uplink_enable.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_occupied",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.lora_uplink_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.lora_uplink_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied.control_command",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.control_command.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRING",
                    "parentId": "d2d_trigger_by_occupied",
                    "defaultValue": "0000",
                    "validator": {
                        "minSize": 4,
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "d2d_trigger_by_occupied.control_time_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.control_time_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_occupied",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.control_time_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.control_time_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_occupied.control_time",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.control_time.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_occupied.control_time.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "d2d_trigger_by_occupied",
                    "defaultValue": "5",
                    "unitName": "min",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_vacant",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_vacant.enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_vacant",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_vacant.lora_uplink_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.lora_uplink_enable.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.lora_uplink_enable.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_vacant",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.lora_uplink_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.lora_uplink_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_vacant.control_command",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.control_command.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRING",
                    "parentId": "d2d_trigger_by_vacant",
                    "defaultValue": "0000",
                    "validator": {
                        "minSize": 4,
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "d2d_trigger_by_vacant.control_time_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.control_time_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_vacant",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.control_time_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.control_time_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_vacant.control_time",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.control_time.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_vacant.control_time.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "d2d_trigger_by_vacant",
                    "defaultValue": "5",
                    "unitName": "min",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold.enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_temperature_threshold",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold.lora_uplink_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.lora_uplink_enable.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.lora_uplink_enable.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_temperature_threshold",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.lora_uplink_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.lora_uplink_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold.control_command",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.control_command.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRING",
                    "parentId": "d2d_trigger_by_temperature_threshold",
                    "defaultValue": "0000",
                    "validator": {
                        "minSize": 4,
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold.control_time_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.control_time_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_temperature_threshold",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.control_time_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.control_time_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold.control_time",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.control_time.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold.control_time.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "d2d_trigger_by_temperature_threshold",
                    "defaultValue": "5",
                    "unitName": "min",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold_release",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRUCT",
                    "validator": {
                        "required": true
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold_release.enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_temperature_threshold_release",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold_release.lora_uplink_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.lora_uplink_enable.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.lora_uplink_enable.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_temperature_threshold_release",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.lora_uplink_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.lora_uplink_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold_release.control_command",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.control_command.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "STRING",
                    "parentId": "d2d_trigger_by_temperature_threshold_release",
                    "defaultValue": "0000",
                    "validator": {
                        "minSize": 4,
                        "maxSize": 4,
                        "required": true
                    },
                    "encoding": "HEX"
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold_release.control_time_enable",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.control_time_enable.name}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "BOOL",
                    "parentId": "d2d_trigger_by_temperature_threshold_release",
                    "defaultValue": "false",
                    "validator": {
                        "required": true
                    },
                    "mapping": {
                        "false": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.control_time_enable.enum.0}",
                        "true": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.control_time_enable.enum.1}"
                    }
                }
            },
            {
                "id": "d2d_trigger_by_temperature_threshold_release.control_time",
                "name": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.control_time.name}",
                "description": "${pd.ws203.tsl.property.d2d_trigger_by_temperature_threshold_release.control_time.description}",
                "accessMode": "W",
                "hidden": false,
                "dataSpec": {
                    "dataType": "INT",
                    "parentId": "d2d_trigger_by_temperature_threshold_release",
                    "defaultValue": "5",
                    "unitName": "min",
                    "validator": {
                        "required": true
                    }
                }
            }
        ],
        "events": [
            {
                "id": "temperature_threshold_alarm",
                "name": "${pd.ws203.tsl.event.temperature_threshold_alarm.name}",
                "type": "WARN",
                "hidden": false,
                "outputs": [
                    {
                        "ref": "temperature"
                    },
                    {
                        "id": "temperature_threshold_alarm.alarm_type",
                        "name": "${pd.ws203.tsl.param.temperature_threshold_alarm.alarm_type.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "ENUM",
                            "parentId": "temperature_threshold_alarm",
                            "validator": {
                                "required": true
                            },
                            "mapping": {
                                "0": "${pd.ws203.tsl.param.temperature_threshold_alarm.alarm_type.enum.0}",
                                "1": "${pd.ws203.tsl.param.temperature_threshold_alarm.alarm_type.enum.1}"
                            }
                        }
                    }
                ]
            },
            {
                "id": "historical_data",
                "name": "${pd.ws203.tsl.event.historical_data.name}",
                "type": "INFO",
                "hidden": false,
                "outputs": [
                    {
                        "id": "historical_data.timestamp",
                        "name": "${pd.ws203.tsl.param.historical_data.timestamp.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "DATE",
                            "parentId": "historical_data",
                            "unitName": "s",
                            "validator": {
                                "required": true
                            }
                        }
                    },
                    {
                        "id": "historical_data.trigger_type",
                        "name": "${pd.ws203.tsl.param.historical_data.trigger_type.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "ENUM",
                            "parentId": "historical_data",
                            "validator": {
                                "required": true
                            },
                            "mapping": {
                                "0": "${pd.ws203.tsl.param.historical_data.trigger_type.enum.0}",
                                "1": "${pd.ws203.tsl.param.historical_data.trigger_type.enum.1}",
                                "2": "${pd.ws203.tsl.param.historical_data.trigger_type.enum.2}",
                                "3": "${pd.ws203.tsl.param.historical_data.trigger_type.enum.3}",
                                "4": "${pd.ws203.tsl.param.historical_data.trigger_type.enum.4}"
                            }
                        }
                    },
                    {
                        "id": "historical_data.pir_status",
                        "name": "${pd.ws203.tsl.param.historical_data.pir_status.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "ENUM",
                            "parentId": "historical_data",
                            "validator": {
                                "required": true
                            },
                            "mapping": {
                                "0": "${pd.ws203.tsl.param.historical_data.pir_status.enum.0}",
                                "1": "${pd.ws203.tsl.param.historical_data.pir_status.enum.1}"
                            }
                        }
                    },
                    {
                        "id": "historical_data.temperature",
                        "name": "${pd.ws203.tsl.param.historical_data.temperature.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "FLOAT",
                            "parentId": "historical_data",
                            "unitName": "℃",
                            "fractionDigits": 1,
                            "coefficient": 0.1,
                            "validator": {
                                "required": true
                            }
                        }
                    },
                    {
                        "id": "historical_data.humidity",
                        "name": "${pd.ws203.tsl.param.historical_data.humidity.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "FLOAT",
                            "parentId": "historical_data",
                            "unitName": "%RH",
                            "fractionDigits": 1,
                            "coefficient": 0.5,
                            "validator": {
                                "min": 0.0,
                                "max": 100.0,
                                "required": true
                            }
                        }
                    }
                ]
            }
        ],
        "services": [
            {
                "id": "reboot",
                "name": "${pd.ws203.tsl.service.reboot.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [],
                "outputs": []
            },
            {
                "id": "query_device_status",
                "name": "${pd.ws203.tsl.service.query_device_status.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [],
                "outputs": []
            },
            {
                "id": "time_synchronize",
                "name": "${pd.ws203.tsl.service.time_synchronize.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [],
                "outputs": []
            },
            {
                "id": "clear_historical_data",
                "name": "${pd.ws203.tsl.service.clear_historical_data.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [],
                "outputs": []
            },
            {
                "id": "retrival_historical_data_by_time",
                "name": "${pd.ws203.tsl.service.retrival_historical_data_by_time.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [
                    {
                        "id": "retrival_historical_data_by_time.time",
                        "name": "${pd.ws203.tsl.param.retrival_historical_data_by_time.time.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "DATE",
                            "parentId": "retrival_historical_data_by_time",
                            "unitName": "s",
                            "validator": {
                                "required": true
                            }
                        }
                    }
                ],
                "outputs": []
            },
            {
                "id": "retrival_historical_data_by_time_range",
                "name": "${pd.ws203.tsl.service.retrival_historical_data_by_time_range.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [
                    {
                        "id": "retrival_historical_data_by_time_range.start_time",
                        "name": "${pd.ws203.tsl.param.retrival_historical_data_by_time_range.start_time.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "DATE",
                            "parentId": "retrival_historical_data_by_time_range",
                            "unitName": "s",
                            "validator": {
                                "required": true
                            }
                        }
                    },
                    {
                        "id": "retrival_historical_data_by_time_range.end_time",
                        "name": "${pd.ws203.tsl.param.retrival_historical_data_by_time_range.end_time.name}",
                        "hidden": false,
                        "dataSpec": {
                            "dataType": "DATE",
                            "parentId": "retrival_historical_data_by_time_range",
                            "unitName": "s",
                            "validator": {
                                "required": true
                            }
                        }
                    }
                ],
                "outputs": []
            },
            {
                "id": "stop_historical_data_retrival",
                "name": "${pd.ws203.tsl.service.stop_historical_data_retrival.name}",
                "callType": "ASYNC",
                "hidden": false,
                "inputs": [],
                "outputs": []
            }
        ]
    },
    "status": "Success",
    "requestId": "f2c9e4437820f8168d23b4cf754aa62d"
}