属性类型
约 757 字大约 3 分钟
属性类型
在 ThingsCloud 设备类型的功能定义中添加属性定义时,您需要选择属性类型。
属性类型用来定义属性在设备端和云平台之间的流动方向,确保设备和云平台的通信保持规范化和一致性。云平台会自动检查属性消息是否符合属性类型,并过滤掉不符合定义的属性消息。
以下列出不同的属性类型允许的属性消息:
属性上报消息 | 属性下发消息 | 云端属性更新消息 | |
---|---|---|---|
未定义类型 | ✅ | ✅ | ✅ |
设备上报类型 | ✅ | ||
云端下发类型 | ✅ | ||
设备云端共享类型 | ✅ | ✅ | |
云端私有类型 | ✅ |
设备上报类型
设备上报类型属性只能由设备上报到云平台。
例如 温度、湿度、GPS 位置 这样的数据来自设备自身的探测和感知,只能由设备上报给云平台,而不允许云平台下发到设备。
设备上报属性的常见例子:
- 温度属性上报
{
"temperature": 28.4
}
- 温度和湿度属性上报
{
"temperature": 28.4,
"humidity": 54.2
}
- 开关状态上报
{
"DI1": true,
"DI2": false,
"DI3": false,
"DI4": true,
"DI5": true,
"DI6": false
}
- 固件当前版本上报
{
"version": "1.3.2"
}
- GPS 坐标上报
{
"location": {
"lat": 38.8721,
"lng": 139.1647
}
}
云端下发类型
云端下发类型属性只能由云平台下发到设备。
例如 温度告警阈值、设备工作模式 是由用户或智能应用来确定,通过云平台下发给设备。
云端下发属性的常见例子:
- 下发温度阈值上下限
{
"temp_max": 35,
"temp_min": 5
}
- 电源开关控制
{
"power": false
}
- 模式切换
{
"mode": "semi-auto"
}
设备云端共享类型
设备云端共享类型属性既可以由设备上报到云平台,也可以由云平台下发到设备,也就是可以同时被设备和云平台改写。
例如 继电器开关 通常由云端下发到设备,实现照明、电机、水泵、风扇等负载的开关,同时当设备本地改变继电器状态后,也可以上报给云平台来更新状态,在控制台或 App 中展示最新的状态。
设备云端共享属性的常见例子:
- 灯泡开关状态
{
"light": false
}
云端私有类型
云端私有类型属性只能在云平台更新,不会下发到设备,也无法由设备上报到云平台。
云端私有属性的常见例子:
- 定义在云端的温度阈值属性,例如:
{
"temp_max": 38
}
- 定义在云端的定时开关时间,可由用户编辑。例如:
{
"auto_time": "08:30:00"
}
云端私有属性通常用在消息规则和任务的处理逻辑中,通过内置函数可以读取设备当前所有属性,也包括云端私有属性,实现更多丰富的应用场景。