可复制:121202538
中文社区:http://thingsboard.org.cn
实体和关系
[原文地址]
实体概述
ThingsBoard 提供 WEB 界面和 REST API,帮助你在自定义物联网应用时管理多种实体类型及其关系。支持的实体类型如下
- 租户 - 您可以将租户视为一个独立的业务实体:使用或生产设备、资产的个人或组织;租户可能有多个租户管理员账户和数百万用户账户;
- 客户 - 客户也是一个独立的业务实体:购买或使用了租户的设备/资产;客户可以拥有多个用户账户以及数百万的设备/资产;
- 用户 - 用户可以查看仪表板,管理实体:
- 设备 - 可产生遥测数据和处理远程命令的基本物联网实体。例如传感器,执行器,开关;
- 资产 - 可能与其他设备和资产相关的物联网实体。例如工厂、场地、项目、车辆;
- 警报 - 标识与资产、设备或其他实体有关的问题的事件;
- 面板 - 将 IoT 设备数据可视化并可通过用户接口控制设备;
- 规则节点 - 处理传入消息、实体生命周期事件等的单元;
- 规则链 - 相关规则节点的逻辑单元;
每个实体都支持:
- 属性 - 与实体关联的静态和半静态键值对。例如序列号、型号、固件版本;
- 遥测数据 - 时间序列数据,支持存储、查询和可视化。比如温度,湿度,电池电量;
- 关系 - 直接连接到其他实体。例如,包含、管理、拥有和生成.
此外,设备和资产也有一个类型。这允许将它们区分开来,并以不同的方式处理数据。
本指南概述了上面列出的特性,提供了一些有用的链接,以获得更多的细节和使用这些特性的实际示例。
实际应用
理解 ThingsBoard 概念的最简单方法是实现一个 ThingsBoard 应用程序。假设我们想要创建一个应用,功能是从土壤温湿度传感器中收集数据,在在仪表板上实现数据可视化,监控问题事件,发出警报并控制灌溉。
假设我们想要用数百个传感器部署到多块田地里。田地也可以按照地理区域分组。
我们认为构建这样一个应用程序应该遵循以下逻辑步骤
步骤1.提供实体和关系
我们将按照资产和设备的层次结构进行设置
请查看下面的视频,了解如何使用 ThingsBoard Web 界面来定义区域和田地的资产实例及关系
https://cdn.iotschool.com/uploads/20200229/8d422552899f1287cb66f4d8c8ef97a8.mp4
请观看下面的视频,了解如何用 ThingsBoard Web 界面来定义设备及其与资产的关系
https://cdn.iotschool.com/uploads/20200229/ae3359526c04084805bb9b63d0960d82.mp4
支持使用 ThingsBoard 的 REST API 自动执行此操作。您可以使用 POST 请求向以下 URL 提交新资产
http(s)://host:port/api/asset
例如:
resources/create-asset.sh
curl -v -X POST -d @create-asset.json http://localhost:8080/api/asset \
--header "Content-Type:application/json" \
--header "X-Authorization: $JWT_TOKEN"
resources/create-asset.json
{"name":"Field C","type":"field"}
注意: 在执行这个请求前,您需要用一个有效的 JWT 令牌替换 $JWT_TOKEN
。这个令牌需要有租户管理权限。您可以参考指南来获取 JWT 令牌。
此外,您还可以向下面的URL地址发送POST请求来定义新的关系
http(s)://host:port/api/relation
例如:
resources/create-relation.sh
curl -v -X POST -d @create-asset.json http://localhost:8080/api/relation \
--header "Content-Type:application/json" \
--header "X-Authorization: $JWT_TOKEN"
resources/create-relation.json
{"from":{"id":"$FROM_ASSET_ID","entityType":"ASSET"},"type":"Contains","to":{"entityType":"ASSET","id":"$TO_ASSET_ID"}}
注意: 不要忘记用正确的资产 ID 替换 $FROM_ASSET_ID
和 $TO_ASSET_ID
。
**注意:**可以关联任何实体。例如,资产关联到设备或资产关联到用户。您可以从 REST API 调用结果或 Web 界面得到。
步骤2.为资产定义属性
ThingsBoard 提供了定义管理实体属性的能力。本主题将在单独的指南中讨论。
处理设备属性
步骤3.设备的遥测数据的上传
ThingsBoard 提供了处理设备和其他实体的遥测数据的能力。本主题将在单独的指南中讨论。
处理遥测数据
步骤4.创建警报规则
ThingsBoard 为设备和其他实体提供了利用规则引擎产生警报消息的能力。本主题将在单独的指南中讨论。
处理警报
步骤5.设计仪表面板
请 导入 包含地图显示、警报、实体列表或图标等部件的 面板 。
个人理解
刚接触 TB 时被 FROM
、 TO
、 Contains
、 Manages
给绕晕了,感觉作用重复,其实 FROM
、TO
代表方向,分别时 被包含 与 包含 的关系,而 Contains
、 Manages
仅仅为了描述这种关联的纽带,比如 城市 的 ASSET
可以 Contains
街道 这种 ASSET
但不能说 Manages
,这样就会不形象。支持自定义类型。