数据类型
数据类型
在 ThingsCloud 设备类型的功能定义中,可以为设备属性设置以下数据类型:
基本类型:
- Number(数值)
- Text(文本)
- Switch(开关量)
- Enum(枚举型)
- Object(键值对集合)
- List(列表)
高级类型:
- MapPoint(地理坐标)
- MapCircle(地理圆形围栏)
- MapPolygon(地理多边形围栏)
下面是各种数据类型的详细介绍。
Number(数值)
任意数值,不区分整数和浮点数,例如:
-12345
0
0.123
12.345
12345
附加选项:
- 单位
- 精度
- 最小值
- 最大值
提示
当设置数值属性的最大值或最小值后,如果上报或下发的数值属性不符合该条件,ThingsCloud 会拒绝处理,您可以在设备调试中查看详细错误提示,便于修改合理的限制条件。
例如,设备上报数值型的属性格式:
{
"temperature": 23.2,
"humidity": 56.1
}
Number(数值)类型的属性,可以用来定义绝大多数用数字表示的设备参数,例如:
属性名称 | 标识符 | 单位 | 示例值 |
---|---|---|---|
温度 | temperature | 摄氏度/华氏度 | 25.6°C, 78.1°F |
湿度 | humidity | % | 45.0% |
压力 | pressure | 百帕斯卡/英寸汞柱 | 1013 hPa, 29.92 inHg |
电压 | voltage | 伏特 | 220V, 5V |
电流 | current | 安培/毫安 | 10A, 0.5mA |
功率 | power | 瓦/毫瓦 | 100W, 1500mW |
亮度 | brightness | 流明/坎德拉 | 800 lm, 1000 cd |
速度 | speed | 公里/小时/英里/小时 | 60 km/h, 35 mph |
距离 | distance | 米/千米 | 10m, 5km |
高度 | height | 米/英尺 | 1.75m, 5000ft |
重量 | weight | 公斤/磅 | 70kg, 150lb |
流量 | flow_rate | 升/分钟/立方米/小时 | 100 L/min, 50 m³/h |
频率 | frequency | 赫兹/吉赫兹 | 50Hz, 2.4GHz |
时间长度 | duration | 秒/小时 | 3600秒, 1.5小时 |
时间 | time | Unix 时间戳(秒) | 1621027222 |
浓度 | concentration | 微克/立方米/毫克/立方米 | 500 μg/m³, 0.08 mg/m³ |
Text(文本)
Plaintext 字符串,例如:
auto
例如,设备上报文本型的属性格式:
{
"mode": "auto"
}
Switch(开关量)
Switch 开关量用于表示两种状态,例如 LED 的开/关,继电器的闭合/断开。
开关量使用布尔类型,如下:
true/false
例如,设备上报开关量型的属性格式:
{
"switch1": false,
"switch2": true
}
为了支持各种硬件设备上不同的开关量表达方式,开关量类型允许在设备和云平台之间的消息 JSON 中使用多种值类型,如下:
- 布尔类型
true/false
- 整数类型
1/0
- 文本类型
ON/OFF
需要注意的是,选择不同的值类型,只影响设备端上报属性和接收下发属性中的开关量的值,并不影响这个属性值在平台上的存储和展示方式。在控制台或 API 中下发开关量属性时,应始终使用 true/false
布尔类型值。
附加选项:
- ON 文字
- OFF 文字
Enum(枚举型)
Enum 类型的属性,本身也是一种文本类型,区别在于必须在限定的枚举值中取值。
例如,设备上报枚举型的属性格式:
{
"mode": "1"
}
Object(键值对集合)
{
"key1": value1,
"key2": value2,
"key3": value3,
...
}
value
表示已支持的任意基本数据类型。
例如,设备上报键值对型的属性格式:
{
"data": {
"temperature": 31.2,
"switch": true,
"mode": "1"
}
}
List(列表)
[
value1,
value2,
value3,
...
]
value
表示已支持的任意基本数据类型。
例如,设备上报列表型的属性格式:
{
"data": [
1,
3,
5
]
}
MapPoint(地理坐标)
该数据类型用于表示地理坐标,可在内置的坐标转换和电子围栏等规则中使用。
该数据类型的结构如下:
{
"lat": number,
"lng": number
}
例如,设备上报地理坐标型的属性格式:
{
"location": {
"lat": 41.0203,
"lng": 38.3183
}
}
MapCircle(地理圆形围栏)
该数据类型用于表示地理圆形围栏,可在内置的电子围栏规则中使用。
该数据类型的结构如下:
{
"centerPoint": {
"lat": number,
"lng": number
},
"radius": number
}
centerPoint
:圆形区域的中心点位置。radius
:圆形的半径,单位是米。
例如,设备上报地理圆形围栏型的属性格式:
{
"map_circle": {
"centerPoint": {
"lat": 41.0203,
"lng": 38.3189
},
"radius": 500
}
}
MapPolygon(地理多边形围栏)
该数据类型用于表示地理多边形围栏,可在内置的电子围栏规则中使用。
该数据类型的结构如下:
[
{
"lat": number,
"lng": number
},
{
"lat": number,
"lng": number
},
{
"lat": number,
"lng": number
},
...
]