【开源学习】ThingsBoard -- 基本设置与使用

  金牌会员 | 2024-10-13 05:58:18 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 867|帖子 867|积分 2601


更新日记:


  • 20240119 版本

    • 新增资产管理与资产设置使用的内容;

  • 20240203 版本

    • 新增版本控制的设置和使用;
    • 新增装备设置-装备设置创建-装备预设置内容介绍以及设置方法;
    • 新增实体视图的设置和使用;


租户及客户管理

ThingsBoard 平台摆设完成并启动之后,将自动创建三个账户,分别为体系管理员租户管理员以及用户。使用对应账号登陆体系可实行差别的操作,默认账号及密码如下:
  1. System Administrator:   sysadmin@thingsboard.org / sysadmin
  2. Tenant Administrator:   tenant@thingsboard.org / tenant
  3. Customer User:          customer@thingsboard.org / customer
复制代码
租户及租户账号管理

租户管理

租户创建

使用体系管理员账号(System Administrator)登陆体系,进入租户菜单,页面展示当前体系所有的租户信息。点击页面右上角“+”号进行新租户的创建。

点击“+”后弹出租户的新增页面,填写对应的数据后点击“添加”即可完成租户的创建。

租户修改

添加完成后,点击租户名称,在右侧弹出的详情页当中进入编辑模式即可对租户的信息进行修改。

信息修改完成后,点击右上角的对号即可保存更改,点击叉号取消更改。

租户删除

在租户菜单的展示列表中,点击对应租户数据行末的垃圾桶图标即可对租户进行删除操作。

租户账号管理

租户账号创建

在租户菜单的展示列表中,点击对应租户行末的圆形图标可以对租户的账号进行创建。




创建完成后,将直接以该账号登录体系。
租户账号修改

点击要修改的账号名,右侧弹出账号的详情信息,点击对应图标进入编辑模式即可对账号信息进行修改。


租户账号删除

点击要删除的账号末尾的垃圾桶图标,进行租户账号的删除操作。

客户及客户账号管理

客户管理

客户创建

使用上一节中创建的租户管理员账号登录体系,点击客户菜单,点击右上角“+”弹出创建对话框,填写信息进行客户的创建。

客户修改

客户的修改与租户修改类似,按照下图进行操作即可。


客户删除

删除操作与租户删除一致。

客户用户管理

客户用户创建

客户用户账号的创建与租户账号创建类似,操作步骤如下。




客户用户修改

客户用户修改与租户账号修改类似,按如下步骤操作即可。


客户用户删除

客户用户删除操作如下所示。

装备管理

本小节叙述如安在体系中进行装备的创建以及管理,同时叙述数据上传到装备的操作(MQTT协议为例)。
创建装备

装备按照下述步骤进行创建。起首在页面上点击相应按钮弹出装备创建对话框。

装备创建的第一步必要填写装备的详细信息,此处只必要填写装备名称即可,进入下一步。

装备创建第二步可以进行装备凭据信息的设置,勾选“添加凭据”后,可以选择对应的凭据类型,并手动输入或点击输入框末尾的按钮自动生成相应的令牌值。此处的凭据用于装备数据上传。

此处不设置(默认为”Access token“类型,体系自动生成令牌值),直接进入下一步。

装备创建第三步可以将装备分配给客户,供客户账号对其进行维护,此处非必选。

末了点击添加完成装备新增的操作。
装备修改

装备基础信息修改

可以按照下述步骤对装备的基础信息进行修改,包罗装备名称、装备设置、标签、分配固件、分配软件、是否网关、说明等信息。


装备用户分配

装备创建时如果没有分配给用户,或者想要修改分配的用户,可以按照下述操作进行修改。
如果装备已经被分配给了用户,可以通过装备信息末尾处的图标进行取消分配,也可以通过装备详情信息中的取消分配客户按钮取消分配。

未分配客户时,可以通过分配客户按钮或装备详情信息中的分配给客户按钮,将装备分配给客户进行管理。

装备凭据管理

创建装备时,如果没有进行装备凭据的设置,或者想要对设置的凭据进行修改,可以通过装备信息末尾处的管理凭据图标重新进行设置,也可以通过装备详情页面中的管理凭据按钮。

装备删除

可以通过以下操尴尬刁难装备进行删除。

装备数据上传

在默认的装备设置当中,支持基本 MQTT、HTTP 和 CoAP 传输协议,此处使用 MQTT 协议进行数据上传的设置演示。
起首按照下述操作获取装备的访问令牌。

获取令牌值后,对我们的 MQTT 客户端进行设置,设置中主要关注以下几个要点:


  • 设置客户端broker为tcp://ip_address:1883;
  • MQTT 客户端设置的username应该为上述步骤中复制的装备令牌;
  • topic应该指定为v1/devices/me/telemetry;
按上述条件进行设置后,发送以下消息进行测试,该消息中发送了两个属性,分别为温度和湿度:
  1. "{"temperature": 32, "humidity": 10}"
复制代码
在装备详情页面检察装备数据的上报环境,查询到相应的数据且数据值正确,证明装备端到 ThingsBoard 平台端的通路正常:

资产管理

本小节叙述如安在体系中进行资产的创建以及管理,资产与装备是类似的概念,装备实在是资产中单独抽象出来的一个分类。
创建资产

资产的创建步骤与装备创建类似,但要简单许多,详细操作过程如下。


资产修改

资产基础信息修改

资产的基础信息可以通过下述操作进行修改。


资产用户分配

通过下列操作可以将资产分配给指定的用户。

若要取消某一资产的分配,可以按照下述操作进行取消,随后可以按照之前的操作重新选择分配客户。

资产删除

按照下列步骤可以实现资产的删除操作。

仪表盘管理

仪表盘主要用于以各种图表的情势,展示装备上传的原始数据、数据趋势,以及报警信息等。
仪表盘创建

仪表盘可以通过以下步骤进行创建。

仪表盘设置

新创建的仪表盘是没有任何内容的,详细的仪表盘展示内容与结构必要租户管理员进行设置,设置完成后授权分发给指定的用户即可。
仪表盘关联装备

下述步骤将实现通过仪表盘来展示装备上传的及时数据。


在仪表盘部件编辑页面中,起首必要将要展示的装备关联到仪表盘当中,才华在部件中进行展示设置,如下操作所示。

此处我们将之前创建的装备关联到仪表盘当中,可以为装备取一个别名用于在仪表盘中展示。筛选器类型选择单个实体用于导入单个装备,类型选择装备,在右侧下拉框中选择我们要关联进来的装备名称,如下操作所示。


至此我们将创建的装备关联到了新建的仪表盘当中,接下来我们必要选取符合的展示部件用于对装备数据的展示。
仪表盘部件设置

此处我们添加一个卡片组件用于观察装备上报的及时数据,并添加一个图表组件来观察装备上报数据的趋势。



接下来进行部件展示内容的设置(在设置要展示的装备的属性时,可以选择多个)。


采用同样的方法,再添加一个图表组件。




此时两个部件已经添加完毕,点击对应的组件,按住左键拖动鼠标可以调解组件的位置。鼠标放在组件边沿时,按住鼠标左键拖动鼠标可以调解组件的大小。将组件的大小和位置调解符合后,点击右下角的对勾图标保存更改。

此时可以再次发送数据检察图标数据的展示。

若想要修改仪表盘部件的数据源,再次点击右下角图标进入编辑模式,选择要修改的部件进行设置的修改即可。




若要对部件进行删除,则在部件修改模式中,点击对应部件右上角的叉号,对部件进行删除操作,然后保存仪表盘更改内容即可。

仪表盘用户分配

设置完成的仪表盘必要分配给相应的用户,对应用户才华获得仪表盘的访问权。上述设置完成的仪表盘没有分配给任何的用户,此时使用用户账号登录体系,进入仪表盘菜单,可以看到没有可检察的仪表盘。
按下述操作,将上一节中设置的仪表盘分配给之前创建的客户。

完成分配后,再次登录对应客户下的用户账号,即可在仪表盘菜单中对该仪表盘进行检察(只有检察权限,无法进行修改)。
若想要取消仪表盘的分配,按照上述仪表盘分配的操作,在第四步选择要分配的用户是,设置为空,然后更新即可。
仪表盘修改

参照下列步骤可以对仪表盘的基本信息进行修改。



仪表盘删除

按照下述步骤可以实现对仪表盘的删除操作。

规则链库

体系提供了规则链库供开发人员自行设置消息的变换、过滤、计算与传输。
规则链创建

体系提供了一个默认的根规则链支持用户使用,此处不在根规则链上进行改动,而是将根规则链导出后重新导入,然后在新导入的规则链中进行修改和设置。
起首按照下列步骤导出根规则链,点击导出后体系将自动实行下载,导出的文件为 json 格式。

将导出的设置重新导入体系。点击导入后,体系将直接跳转到新导入的规则链的设置页面,直接点击右下角的应用更改按钮即可。重新退出到规则链库菜单即可看到新导入的规则链库设置。


规则链修改

按照下述步骤可以对规则链的基本信息进行修改。可以为上一小节中导入的规则链进行重命名。



规则链删除

按照下列操作可以对新创建的规则链进行删除操作(注:体系提供的默认根规则链不可删除)。

规则链设置

若必要对规则链进行设置,则必要按照下列操作进入规则链的设置页面。

体系提供了 6 类规则节点供开发人员进行设置,分别为筛选器、属性集、变革、动作、外部、流。若必要设置某一规则节点,则点击鼠标将对应节点拖入右侧编辑页面并进行设置,然后添加即可。



接下来对差别类中大概比较常用的、对数据进行操作的规则节点的设置进行解说,由于之前装备的创建中应用了默认的装备设置(后续会解说),默认装备设置中使用规则链为根链Root Rule Chain,因此下面的演示均为在 Root Rule Chain 中进行的设置。
筛选器

check fidles presence

该规则节点用于验证消息体或者消息的元数据中的某些属性是否存在,并根据验证结果对消息进行分发。该节点的设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Message field names:消息体中需验证的属性名,该消息即装备自动发送的消息内容。此处可以设置多个,每个属性输入完后按“回车”键入;
  • Metadata field names:消息元数据中必要验证的属性名,元数据为体系附带的数据,在默认设置的环境下一样平常有deviceType、deviceName以及ts三个元数据属性。此处可以设置多个,每个属性输入完后按“回车”键入;
  • Check that all specified fields are present:选择框,勾选后,在进行上述的属性验证时,各验证条件以“与”进行连接;不勾选时,在进行上述的属性验证时,各验证条件以“或”进行连接;
  • 说明:非必填项,附加说明;
根据判断结果,该规则节点的出口有true和false两种。
简单使用示例如下:

script

该规则节点允许开发人员以编程的方式实现数据的过滤,即实现自界说的过滤规则对消息进行分发。该节点的设置内容有:


  • 名称:必填项,表明该节点的名称;
  • function Filter:代码(通过代码自界说过滤规则),函数入参包罗 msg(消息)、metadata(元数据)、msgType(上一节点推送的消息类型),返回值应为布尔值;
  • 说明:非必填项,附加说明;
根据代码逻辑,该规则节点的出口有true和false两种。
简单使用示例如下:
  1. return msg.temperature > 20;
复制代码

switch

该规则节点允许开发人员以编程的方式实现数据的分组过滤,即实现自界说的分发规则对数据进行分发。该节点的设置内容有:


  • 名称:必填项,表明该节点的名称;
  • function Switch:代码(通过代码自界说分组规则),函数入参包罗 msg(消息)、metadata(元数据)、msgType(上一节点推送的消息类型),返回值应为字符串数组,指示要分发的路径;
  • 说明:非必填项,附加说明;
根据代码逻辑,该规则节点的出口由编码人员进行界说,见示例。
简单使用示例如下:
  1. if (msg.temperature > 25) {
  2.     return ['High temperature'];
  3. } else if (msg.temperature < 18) {
  4.     return ['Low temperature'];
  5. } else {
  6.     return ['Normal temperature'];
  7. }
复制代码
上述代码中界说了三个出口,分别为High temperature、Low temperature以及Normal temperature。因此,在连接下一个节点时,我们要按照我们界说的出口路径自界说连接,如下图所示。输入完成后按“回车”创建一个链接标签,然后点击添加即可。


属性集

calculate delta

该规则节点用于计算本条消息中的数据与上一条消息中的对应数据的差值,并根据计算结果对消息内容进行完善和分发。该节点的设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Input value Key:必填项,要进行增量计算的属性名称;
  • Output value Key:必填项,计算所得的增量值添加到消息体中的属性名称;
  • Decimals:增量计算的精度;
  • Use cache for latest value:选择项,使用内存存储上一数据的值,默认勾选;
  • Tell Failure if delta is negative:选择项,若增量值为负数,则认为消息处理失败,默认勾选;
  • Add period between messages: 选择项,在消息体中添加与上一条消息的时间差值,默认不勾选。勾选后需填写 Period value key,作为计算所得的时间差值添加到消息体中的属性名称;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure以及Other三种:


  • Success :增量计算乐成的数据出口;
  • Failure:消息处理失败的数据出口,若勾选 Tell Failure if delta is negative,则计算增量为负的数据从该出口输出;
  • Other:消息中缺失要实行增量计算的属性值的数据出口;
简单使用示例如下:

customer attributes

该规则节点用于将设置给用户的一些属性添加到消息的元数据当中,并根据处理结果分发数据。该节点的设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Latest telemetry: 选择项,选择后将根据设置的密钥获取客户远程上报的最新属性值,取消勾选则查询装备所属客户的服务端属性,默认取消勾选;
  • Source telemetry key:输入项,要添加到消息元数据的客户属性名称;
  • Target attribute:输入项,要添加到消息元数据中的属性名,与 Source telemetry key 承兑出现,可添加多对属性;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。当未给装备设置所属的客户时,数据从Failure出口输出。
此处涉及到用户属性的设置,可以按照如下操作进行设置。

该规则节点简单的使用示例如下:

customer details

该规则节点用于将设置给用户的一些详情信息添加到消息当中,并根据处理结果分发数据。该节点的设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Select entity details:多选项,选择要添加到消息当中的客户的详细信息(在创建客户时进行设置的信息,包罗国家、都会、地点、邮箱等…),添加的信息的属性名格式为customer_详细内容名;
  • Add selected details to message metadata:选择项,若勾选则将相应的信息添加到元数据当中向下游节点传递;若不勾选则将相应的信息添加到数据当中向下游节点传递。默认不勾选;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。当未给装备设置所属的客户时,数据从Failure出口输出。
简单的使用示例如下:

tenant attributes

该规则节点用于将设置给租户的一些属性添加到消息的元数据当中,并根据处理结果分发数据。该节点的设置内容与 customer attributes 规则节点的设置完全相同,此处不再赘述。
此处涉及到租户属性的设置,可以按照如下操作进行设置。

简单的使用示例如下:

tenant details

该规则节点用于将设置给租户的一些详情信息添加到消息当中,并根据处理结果分发数据。该节点的设置内容与 customer details 规则节点的设置完全相同,此处不再赘述。
简单的使用示例如下:

fetch device credentials

该节点用于将装备的密钥以及 token 类型添加到消息中向下游节点传递。节点设置内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Fetch credentials to metadata: 选择项,勾选后将装备密钥信息添加至元数据,否则添加到消息数据,默认勾选;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:

变换

copy keys

该节点用于复制元数据中的键值到数据,或是将数据中的键值复制到元数据。节点设置内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Copy from:选择项,可以选择复制的方向,从数据到元数据(Data to metadata)或从元数据到数据(Metadata to data)。下列的输入框可以输入要复制的属性名称,可输入多个,输入完成后敲击回车完成一次键入;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:

delete keys

该节点用于删除数据或者元数据中的键值。节点设置内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Delete from:选择项,可以选择从那里删除数据,从数据(Data)中删除或从元数据(Metadata)中删除。下列的输入框可以输入要复制的属性名称,可输入多个,输入完成后敲击回车完成一次键入;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:

rename keys

该节点用于对数据或者元数据中的属性进行重命名。节点设置内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Rename keys in:选择项,可以选择更改那里的数据,从数据(Data)中更改或从元数据(Metadata)中更改。下面的 Key name 以及 New key name 成对出现,表示原属性名称和新属性名称;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:

deduplication

该节点可用于消息去重或变换消息向下游发送的频率。节点的设置内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Interval:必填项,表示时间隔断,即每过多久向下游发送一次数据;
  • Strategy:选择项,表示消息向下游发送的计谋。体系提供三种计谋供开发人员选择,分别为 First Message、Last Message 以及 All Messages。前两种计谋分别为向下游发送最早的一条数据或发送最晚的一条数据,末了一个计谋为发送所有数据的 JSON 字符串组。当选择左后一种计谋时,还必要设置 Output message type 与 队列。前者为消息类型设置,后者为队列设置;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:

当选择 All Messages 模式时,下游节点收到的数据格式如下所示:
  1. [{
  2.     "msg": {
  3.         "temperature": 26,
  4.         "humidity": 31
  5.     },
  6.     "metadata": {
  7.         "deviceType": "default",
  8.         "deviceName": "device-01",
  9.         "ts": "1703490713006"
  10.     }
  11. }, {
  12.     "msg": {
  13.         "temperature": 12,
  14.         "humidity": 16
  15.     },
  16.     "metadata": {
  17.         "deviceType": "default",
  18.         "deviceName": "device-01",
  19.         "ts": "1703490718019"
  20.     }
  21. }, {
  22.     "msg": {
  23.         "temperature": 15,
  24.         "humidity": 16
  25.     },
  26.     "metadata": {
  27.         "deviceType": "default",
  28.         "deviceName": "device-01",
  29.         "ts": "1703490723041"
  30.     }
  31. }, {
  32.     "msg": {
  33.         "temperature": 13,
  34.         "humidity": 10
  35.     },
  36.     "metadata": {
  37.         "deviceType": "default",
  38.         "deviceName": "device-01",
  39.         "ts": "1703490728061"
  40.     }
  41. }, {
  42.     "msg": {
  43.         "temperature": 12,
  44.         "humidity": 18
  45.     },
  46.     "metadata": {
  47.         "deviceType": "default",
  48.         "deviceName": "device-01",
  49.         "ts": "1703490733073"
  50.     }
  51. }]
复制代码
script

该节点允许开发人员以代码的方式对数据进行自界说变换,可以通过代码逻辑修改向下游发送的数据内容以及数据格式。节点设置内容如下:


  • 名称:必填项,表明该节点的名称;
  • function Transform:代码(通过代码自界说变换规则),函数入参包罗 msg(消息)、metadata(元数据)、msgType(上一节点推送的消息类型),返回值应为固定格式{msg: newMsg, metadata: newMetadata, msgType: newMsgType},其中的值为我们颠末变革后的对象;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:
变换逻辑代码
  1. msg.timestamp = metadata.ts;
  2. msg.province = '山东省';
  3. msg.city = '济南市';
  4. return {
  5.     msg: msg,
  6.     metadata: metadata,
  7.     msgType: msgType
  8. };
复制代码
下游节点收到的数据
  1. {
  2.     "temperature": 21,
  3.     "humidity": 15,
  4.     "timestamp": "1703491991280",
  5.     "province": "山东省",
  6.     "city": "济南市"
  7. }
复制代码
使用示例

动作

math function

该规则节点可以实现数学计算,并将结果保存到消息或者数据库当中。该节点的可设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Functions:数学函数,体系提供了许多常用的数学函数供用户使用(见下文表格)。此外,用户可以选择 Custom Function 来自界说函数;
  • Arguments:设置函数公式中的参数与实际物理量的映射关系,此处可添加多个映射关系。Type 为映射关系类型,体系提供了 5 种映射关系类型供选择,分别为:

    • Attribute:从属性中选择,其设置中的 Key 为属性名称,Attribute scope 为属性的范围(共享属性、客户端属性、服务端属性),Default value 为缺失默认值;
    • Time series:从时序数据中选择,其设置中的 Key 为时序数据的属性名称,Default value 为缺失默认值;
    • Constant:常数,其设置中的 Constant value 为常数的值;
    • Message body:从消息正文中选择,其设置中的 Key 为消息正文中的的属性名称,Default value 为缺失默认值;
    • Message metadata:从消息元数据中选择,其设置中的 Key 为消息元数据中的属性名称,Default value 为缺失默认值;

  • Mathematical Expression:当选择自界说函数时,必要设置该选项以设置函数的计算规则。公式中的参数必要使用 Arguments 当中的映射 x、y、z 等来表示。
  • Result:用于设置函数计算的结果如何使用。体系提供了 4 中方式供选择,分别为:

    • Attribute:设置到属性当中,可作为属性存入数据库当中。其设置中的 Attribute scope 用于设置属性的作用域,可在共享属性和服务端属性中选择,Key 用于设置属性的名称,Number of digits after floating point 用于设置计算结果的保留小数位,Add to message body 和 Add to message metadata 为可选择项,勾选后同步将数据存入消息正文和元数据;
    • Time series:设置到时序数据当中,可作为时序数据存入数据库当中,Key 用于设置属性的名称,Number of digits after floating point 用于设置计算结果的保留小数位,Add to message body 和 Add to message metadata 为可选择项,勾选后同步将数据存入消息正文和元数据;
    • Message body:设置到消息正文当中,可作为消息内容向下游规则节点传递,Key 用于设置属性的名称,Number of digits after floating point 用于设置计算结果的保留小数位;
    • Message metadata:设置到消息元数据当中,可作为消息元数据向下游规则节点传递,Key 用于设置属性的名称,Number of digits after floating point 用于设置计算结果的保留小数位;

  • 说明:非必填项,附加说明;
体系内置的函数如下表所示:
函数参数个数形貌参考ADD2x + ySUB2x - yMULT2x * yDIV2x / ySIN1Returns 三角正弦Math.sinSINH1Returns 双曲正弦 (ex - e-x)/2Math.sinhCOS1Returns 三角余弦Math.cosCOSH1Returns 三角余弦(ex + e-x)/2Math.coshTAN1Returns 三角正切Math.tanTANH1Returns 双曲正切Math.tanhACOS1Returns 反角余弦范围内0.0piMath.acosASIN1Returns 正弦弧范围内*-pi/2pi/2*Math.asinATAN1Returns 反正切范围内-pi/2到pi/2Math.atanATAN22Returns 矩形坐标Math.atan2EXP1Returns exMath.expEXPM11Returns ex-1Math.expm1SQRT1Returns 正平方根Math.sqrtCBRT1Returns 多维数据集根Math.cbrtGET_EXP1Returns 无偏指数Math.getExponentHYPOT2Returns 无偏指数sqrt(x2 +y2)Math.getExponentLOG1Returns 自然对数Math.logLOG101Returns 10对数Math.log10LOG1P1Returns 参数和1之和的自然对数Math.log1pCEIL1Returns 最小整数Math.ceilFLOOR1Returns 最大整数Math.floorFLOOR_DIV2Returns 最大商数Math.floorDivFLOOR_MOD2Returns 底模数Math.floorModABS1Returns 绝对值Math.absMIN2Returns 最小数Math.minMAX2Returns 最大数Math.maxPOW2Returns 幂Math.powSIGNUM1Returns 符号函数Math.signumRAD1将以度为单位丈量的角度转换为以弧度为单位的近似等效角度Math.toRadiansDEG1将以弧度为单位丈量的角度转换为以度为单位的近似等效角度Math.toDegreesCUSTOM1-16自界说函数例如(x - 32) / 1.8使用此函数指定复杂的数学表达式exp4j 根据运行结果,该规则节点的出口有Success、Failure两种。
简单的使用示例如下:

create alarm && clear alarm

两个规则节点分别用于创建和扫除警报。只要有数据流入创建或者扫除警报的节点,则必定会创建或扫除一条警报。节点中可以通过编码的方式自界说警报的详细内容。该体系中同一装备同一类型的报警信息最多可存在一条,后续报警以更新的方式出现。当存在的报警被扫除时,后续的报警信息才会新建。
create alarm 规则节点需设置的内容有:


  • 名称:必填项,表明该节点的名称;
  • function Details:界说警报的详细内容,函数入参包罗 msg(消息)、metadata(元数据)、msgType(上一节点推送的消息类型),可以通过metadata.prevAlarmDetails访问先前的警报详细信息。返回值应为details对象,即报警的详细信息;
  • Alarm type:必填项,可自界说报警的类型;
  • Alarm severity:必选项,设置报警的伤害程度,体系提供伤害、紧张、次要、告诫、不确定五种程度供选择;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Created、Updated、False、Failure。新建的警报将从Created出口传递,更新的警报将从Updated出口传递。
clear alarm 规则节点需设置的内容有:


  • 名称:必填项,表明该节点的名称;
  • function Details:界说警报的详细内容,函数入参包罗 msg(消息)、metadata(元数据)、msgType(上一节点推送的消息类型),可以通过metadata.prevAlarmDetails访问先前的警报详细信息。返回值应为details对象,即报警的详细信息;
  • Alarm type:必填项,可自界说报警的类型;
  • 说明:非必填项,附加说明;
根据运行结果,该规则节点的出口有Cleared、False、Failure。扫除的警报将从Cleared出口传递,无所需扫除的警报时将从False出口传递。
简单的使用示例如下,该实例中界说温度在 28 摄氏度及以上时触发高温警报,报警内容中记录当前温度与连续触发高温警报的消息个数;若装备上报的温度低于 29 摄氏度时,扫除警报。
create alarm 规则节点代码:
  1. var details = {temperature: msg.temperature, count: 1};
  2. if (metadata.prevAlarmDetails) {
  3.     var prevDetails = JSON.parse(metadata.prevAlarmDetails);
  4.     if(prevDetails.count) {
  5.         details.count = prevDetails.count + 1;
  6.     }
  7. }
  8. return details;
复制代码
clear alarm 规则节点代码:
  1. var details = {};
  2. if (metadata.prevAlarmDetails) {
  3.     details = JSON.parse(metadata.prevAlarmDetails);
  4.     //remove prevAlarmDetails from metadata
  5.     delete metadata.prevAlarmDetails;
  6.     //now metadata is the same as it comes IN this rule node
  7. }
  8. return details;
复制代码
规则链设置:

delay

该规则节点用于将流入节点的数据延长一定时间后再向下游节点发出。其设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Use period in seconds pattern:可选项,勾选后可以使用消息正文或者元数据中的某些属性的值作为该条消息的延长时间,默认不勾选;
  • Period in seconds:必填项,用于设置延长时间;
  • Period in seconds pattern:必填项,当勾选 Use period in seconds pattern 时,用于指定以哪个属性的值为延长时间。使用${metadataKey}获取元数据当中的数值,使用$[messageKey]获取消息正文中的数值;
  • Maximum pending messages:用于指定节点队列长度,流入该节点的数据将被放入挂起队列,在经历延长时间之后将数据向下游发出并从队列中删除;
  • 说明:非必填项,附加说明;
根据队列大小,该规则节点存在Success和Failure两个出口。在队列中挂起并到达延长时间的数据将从Success出口流出,队列满后到达节点的数据将从Failure出口流出。
简单的使用示例如下:

generator

该节点用于生成消息,一样平常在开发时用于测试规则链。其设置内容有:


  • 名称:必填项,表明该节点的名称;
  • Message count:必填项,设置生产的消息个数;
  • Period in seconds:必填项,设置消息发出的时间隔断;
  • 类型:非必填项,可以指定消息的发起实体;
  • 队列:非必填项,可以指定消息的发出计谋;
  • function Generate:可以通过编码的方式界说生成的消息内容与格式。函数入参包罗prevMsg(上条消息主体)、prevMetadata(上条消息元数据)、prevMsgType(上上条消息类型),函数返回值应为{ msg: msg, metadata: metadata, msgType: msgType }格式,其中的值 msg、metadata、msgType 均为对象;
  • 说明:非必填项,附加说明;
根据实行环境,该规则节点存在Success和Failure两个出口。
简单的使用示例如下:

log

该节点用于将流出的消息通过编码的方式转换为字符串并记录在体系的日记文件当中。其可设置的内容包罗:


  • 名称:必填项,表明该节点的名称;
  • function ToString:可以通过编码的方式界说日记记录的格式。函数入参包罗 msg(消息主体), metadata(消息元数据), msgType(消息类型),函数返回值应为字符串类型;
  • 说明:非必填项,附加说明;
根据实行环境,该规则节点存在Success和Failure两个出口。
外部

kafka

该节点可以将传入的消息的消息主体转发至 Kafka,其本质就是设置一个 Kafka 生产者客户端。可设置的内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Topic pattern:必填项,指定消息发送的主题,使用${metadataKey}获取元数据中对应属性的值作为 topic,使用$[messageKey]获取消息主体中对应属性的值作为 topic;
  • Key pattern:非必填项,用于指定消息的 Key,相同 Key 的消息会被划入同一个分区;
  • Bootstrap servers:必填项,指定 Kafka 服务的地点;
  • Automatically retry times if fails:非必填项,用于指定消息发送失败时重试的次数,默认为 0;
  • Produces batch size:非必填项,用于指定以字节为单位的批处理大小,默认为 16384;
  • Time to buffer locally:非必填项,用于指定最大的当地缓冲窗口持续时间,默认为 0;
  • Client buffer max size:非必填项,用于指定发送消息的最大缓冲区大小(以字节为单位),默认为 33554432;
  • Number of acknowledgments:必填项,用于指定分区中有多少副本收到该消息时生产者就认为该消息已经乐成写入。设置为 0 可以包管最大的吞吐量;acks 设置为 -1 或 all 可以包管最强的可靠性;asks 设置为 1 时消息可靠性和吞吐量之间的折中方案;
  • Key serializer:必填项,默认是 org.apache.kafka.common.serialization.StringSerializer;
  • Value serializer:必填项,默认是 org.apache.kafka.common.serialization.StringSerializer;
  • Other properties:可以为 kafka 客户端连接提供任何其他属性,以键值对的情势进行添加,可添加多对;
  • Add Message metadata key-value pairs to Kafka record headers:可选项,勾选后,消息的元数据将以键值对的情势添加到 Kafka 客户端连接的 Headers 当中;
  • 说明:非必填项,附加说明;
根据转发环境,该规则节点存在Success和Failure两个出口。
简单的设置示例如下:


mqtt

该节点可以将传入消息的消息主体转发至 Mqtt 服务器。其可设置内容包罗:


  • 名称:必填项,表明该节点的名称;
  • Topic pattern:必填项,用于设置 topic,可以是静态字符串,也可以通过${deviceType}使用消息元数据属性;
  • Host:必填项,用于设置 Mqtt 署理服务器地点;
  • Port:必填项,用于设置 Mqtt 署理服务器端口,默认为1883;
  • Connection timeout:必填项,用于设置连接到 Mqtt 服务器的超时时间(以秒为单位),默认为 10;
  • Client ID:非必填项,用于设置客户端 id。如果没有指定,将使用默认生成的 clientId;
  • Add Service ID as suffix to Client ID:可选项,在设置 Client ID 后才可勾选,勾选后会将 Service ID 作为后缀添加至 Client ID;
  • Clean session:可选项,可设置是否删除 session,默认勾选;
  • Retained:可选项,可设置消息是否保留,默认不勾选;
  • Enable SSL:可选项,用于启用/禁用安全通信,默认不勾选;
  • Credentials:Mqtt 连接凭据。体系提供三种连接凭据验证方式,即 Anonymous(不验证)、Basic(用户名密码验证)、PEM(凭据文件验证);
  • 说明:非必填项,附加说明;
根据转发环境,该规则节点存在Success和Failure两个出口。
简单的设置示例如下:


rest api call

该节点可以将传入消息的消息主体转发至外部的 API 接口。其基本设置包罗:


  • 名称:必填项,表明该节点的名称;
  • Endpoint URL pattern:必填项,设置外部 API 接口路径;
  • Request method:必填项,用于设置哀求方式;
  • Enable proxy:可选项,用于设置署理,默认不勾选;
  • Use simple client HTTP factory:可选项,使用简化 http 客户端工厂,默认不勾选;
  • Message without quotes:可选项,勾选后发送的消息不使用双引号括住,默认不勾选;
  • Without request body:可选项,勾选后不含哀求体;
  • Read timeout in millis:非必填项,用于设置读取超时时间,默认为 0 表示无穷超时时间;
  • Max number of parallel requests:非必填项,用于设置最大并行哀求数,默认为 0 表示无穷制;
  • Headers:非必填项,用于设置哀求头的信息,可添加多个;
  • Credentials:连接凭据,体系提供三种连接凭据验证方式(同 Mqtt 规则节点设置);
  • 说明:非必填项,附加说明;
根据转发环境,该规则节点存在Success和Failure两个出口。
简单的设置示例如下:


队列

队列可设置消息的提交计谋和处理计谋,以包管消息处理、削峰以及体系在极端负载下正常运行。体系默认提供了 HighPriority、Main、SequentialByOriginator 三种队列供用户使用。其中,Main 队列作为默认队列,只可修改,不可删除。
队列创建

按照如下操作可以进行新队列的创建。

其中:


  • 名称:设置队列的名称,添加后不可修改;
  • 提交设置用于设置消息的提交计谋(Strategy type),可从下列计谋中进行选择:

    • 按发起者次序处理(SEQUENTIAL_BY_ORIGINATOR):消息在特定实体(消息发起者)内按次序提交消息;
    • 按租户次序处理(SEQUENTIAL_BY_TENANT):消息在租户(消息发起者的所有者)内按次序提交消息;
    • 次序处理(SEQUENTIAL):较慢的消息处理,消息按次序提交,在确认上一个消息之前不会提交新消息;
    • 突发处理(BURST):所有消息按到达的先后次序提交到规则链;
    • 批量处理(BATCH):在确认前一批消息之前,不会提交下一批消息;

  • 重试处理设置用于设置消息的处理计谋(Processing type),可从下列计谋中进行选择:

    • 失败与超时重试(RETRY_FAILED_AND_TIMED_OUT):重试处理所有失败和超时的消息;
    • 跳过所有失败(SKIP_ALL_FAILURES):忽略所有故障,会导致失败的消息丢失;
    • 跳过所有失败和超时(SKIP_ALL_FAILURES_AND_TIMED_OUT):忽略所有故障和超时,会导致失败与超时的消息丢失;
    • 全部重试(RETRY_ALL):重试处理所有消息。如果 100 条消息中有 1 条失败,计谋将重新处理全部 100 条消息;
    • 失败重试(RETRY_FAILED):重试处理所有失败的消息。如果每 100 条消息中有 1 条失败,计谋将仅重新处理 1 条消息。此外,超时的消息将不会重新处理;
    • 超时重试(RETRY_TIMED_OUT):重试处理所有超时消息。如果每 100 条消息中有 1 条超时,计谋将仅重新处理 1 条消息。此外,失败的消息将不会被重新处理;
    重试设置中的重试次数、跳过重试的失败消息百分比、重试隔断以及最大重试隔断参数可以根据必要进行设置。

  • 轮询设置可以设置消耗者的轮询计谋:

    • 轮询隔断:用于设置没有新消息到达时两次轮询之间的隔断时间(以毫秒为单位);
    • 分区:用于设置队列关联的分区数,用于扩展并行处理的消息数;
    • 处理超时:用于设置处理消耗者返回的特定消息包时间隔断(以毫秒为单位);
    • 每个分区消耗者单独轮询消息:建议勾选;

  • 说明:队列说明;
队列修改

按照如下步骤可以实现队列设置计谋的修改(注:名称不可修改,仅可修改队列计谋)。


队列删除

按照下列操作可以实现队列的删除(注:体系提供的默认 Main 队列不可删除)。

装备设置

装备设置可以为某一类装备设定共同的一些消息处理方式,比如规则链、消息传输队列、传输协议设置、告警规则设置等。
装备设置创建

装备设置创建过程中,必要分别设置装备设置详情、传输设置、告警规则以及装备预设置,其创建过程如下。

装备设置详情

在详情中,可以进行如下内容的设置:


  • 名称:必填项,装备设置的名称;
  • 默认规则链:选填项,可以指定使用哪一套规则链,若不填则使用默认的根规则链;
  • 移动端仪表盘:选填项,指定被移动端应用用作装备详情的仪表板;
  • 队列:选填项,可以指定消息提交和处理的计谋,默认为 Main;
  • Default edge rule chain:无需设置;
  • 装备设置图片:选填项,可以上传装备图片;
  • 说明:选填项,装备说明;
传输设置

传输设置中,可以设置装备数据上传的协议,体系提供以下几种协议:


  • 默认:支持基本 MQTT、HTTP 和 CoAP 传输,无特别需求一样平常选择默认即可;
  • MQTT:启用高级MQTT传输设置,可进行高级设置;
  • CoAP: 启用高级 CoAP 传输设置,可进行高级设置;
  • LWM2M:LWM2M传输类型,可进行高级设置;
  • SNMP:指定 SNMP 传输设置,可进行高级设置;
告警规则

在装备设置的告警规则中,可以对警报创建和消除的条件进行设置(与在规则引擎中进行设置效果相同,此处设置可避免编码)。
进入告警规则设置页签,点击添加告警规则,进入告警规则设置页面。

告警创建规则设置

通过“添加创建条件”按钮可创建多个。
严肃程度
体系提供了五种告警的严肃程度供设置人员选择,分别为伤害、紧张、次要、告诫、不确定,根据环境选择即可。
条件
条件即必要设置告警的创建逻辑,点击添加告警规则条件按钮,按照下列步骤完成一个告警规则条件的创建。





其中:
步骤 2 进行筛选器设置时,体系提供三个键类型供选择,分别为属性、Timeseries(时序数据)、常量。选择前两者时,键名为下拉框,选择相应的属性名即可;选择常量时,键名为输入框,必要自行输入。值类型为下拉选择框,包罗字符串、数字、布尔值、日期时间四种类型可选。
步骤 5 设置筛选器时,可以通过添加按钮添加多个逻辑;操作为下拉选择框,提供各种比较逻辑;值则为比较的阈值。可以通过下列操作实现动态比较阈值的设置。注意,此处必要提前创建所选择的动态源类型所填源属性(设置方法在规则链库-规则链设置-属性集-customer attributes以及tenant attributes中有介绍,装备属性设置操作相同,此处不再赘述)。


步骤 6 设置条件类型时,体系提供简单、持续时间以及重复三种类型。当选择持续时间时,必要设置持续时间的值以及时间单位,此处同样可以使用动态源进行设置;当选择重复时,必要设置重复出现的次数,此处同样可以使用动态源进行设置。


启用规则
启用规则可以设置告警创建规则启用的时间范围,体系提供始终启用、定时启用以及自界说启用三种规则,选择对应规则进行设置保存即可。
详情模板
用于设置警报的详情内容,即在规则链中 Details 函数返回的 details 对象。
移动仪表盘
用于警报详细报告。
告警扫除规则设置

告警扫除规则的设置与创建规则步骤完全相同,只是设置内容的差别,此处不详细睁开。
装备预设置

ThingsBoard 可以根据装备生产厂商提供的装备唯一凭据实现装备的自动注册。此处将解说如何使用预设置进行装备的自注册,即不必要手动创建装备,装备通过预设置内容连接 thingsboard 平台并自动注册获取 accessToken。
要启用装备预设置的功能,在进行装备设置创建时,将装备预设置标签页进行如下设置,其中密钥名与密钥可手动设置:

装备自注册流程演示(以 MQTT 协议的装备为例):
装备起首必要设置 thingsboard 平台的连接地点,首次连接时将 username 设置为provision。

此时装备可以不通过 accessToken 连接至 thingsboard 平台,但是装备并不会完成注册,装备必要向/provision/request发送以下数据,表明装备的名称以及预设置密钥。
  1. {
  2.   "deviceName": "DEVICE_NAME",
  3.   "provisionDeviceKey": "YOUR_PROVISION_KEY_HERE",
  4.   "provisionDeviceSecret": "YOUR_PROVISION_SECRET_HERE"
  5. }
复制代码
其中:


  • deviceNam:装备自注册的名称;
  • provisionDeviceKey:对应装备设置中预设置的密钥名;
  • provisionDeviceSecret:对应装备设置中预设置的密钥;
如下图所示,发送相应的数据后,装备将会收到来自平台的相应消息,同时装备将在平台中完成注册。


平台返回给装备的信息如下所示,其中credentialsValue字段即为装备对应的密钥,将装备的 username设置为相应值,按照前文叙述的方法即可进行数据的上传。
  1. {
  2.     "credentialsValue":"WS3V5htF7brTK17JTKZj",
  3.     "credentialsType":"ACCESS_TOKEN",
  4.     "status":"SUCCESS"
  5. }
复制代码
装备设置修改

按照如下步骤可以实现对装备设置的修改操作。


装备设置删除

按照下列步骤即可实现装备设置的删除操作。

装备设置使用

本小节主要叙述如何将设置好的装备设置分配给装备进行使用,并通过仪表盘部件进行验证。
起首,按照下列操作步骤,将新创建的装备设置分配给之前创建的装备。

设置完成后,我们在仪表盘中引入一个告警展示的部件,来检察我们设置的告警规则是否已经生效,从而验证装备设置是否乐成。
按照下列步骤在仪表盘中设置一个告警部件。



重新上传数据,检察告警是否正常创建和扫除。

资产设置

资产设置用于划定某一种资产的分配。
资产设置创建



资产设置修改

按照下述步骤可以实现资产设置的修改。


资产设置删除

按照下列操作可以删除相应的资产设置。

资产设置使用

下述操作将资产的设置绑定到资产,让资产拥有一类的公共设置。

实体视图

实体视图用于对数据的检察权限进行进一步的细分,由于某些装备或资产大概存在不止一个属性或者遥测数据,但是某一个装备或资产只能分配给某一个客户,即某个客户可以检察对应实体的所有数据,因此无法进一步控制数据的检察权限。
通过创建实体视图,可以对数据进一步细分,将实体视图分配给某个客户以实现数据检察权限的划分。
实体视图创建及使用

在创建实体视图之前,存在一个装备,其包含多个服务端属性与遥测数据,如下所示:


在该装备的基础上,按照下述操作进行视图的创建操作:

创建时可以进行属性传播设置与时间序列数据的设置,并可以按照时间进行限制:


  • 属性传播:可以对视图的属性进行分配,规定视图可以检察对应实体的哪些属性;
  • 时间序列数据:可以对视图的遥测数据进行分配,规定视图可以可以检察实体对应的哪些遥测数据;
  • 开始时间、结束时间:按时间对数据进行限制,该视图只能看到限定时间范围内的对应数据;
创建完成后,可以点击视图检察详情,检察对应数据的环境。将视图分配给对应客户即可时间数据更小粒度的检察权限限制。
实体视图修改

按照下述操作可以实现对实体视图的修改操作。

实体视图删除

按照下述操作可以实现对实体视图的删除操作。

版本控制

版本控制功能可以将体系中所有的实体、设置、客户、规则链库等以 json 的方式通过 git 堆栈进行版本控制,可用于对相应的设置进行存档、回退或对设置进行差别环境的迁移。
版本控制堆栈设置

如果要使用版本控制的功能,起首必要对堆栈进行设置,如下所示:

注:v3.6.2 版本测试时,在查抄访问权限时大概会出现Integer value http.postbuffer out of range报错,这是由 git 设置中 http.postbuffer 参数设置过大所导致的,处理方式:
检察 http.postbuffer 的大小:
  1. $ git config --get http.postBuffer
  2. 2G
复制代码
设置 http.postbuffer 的大小:
  1. git config --global http.postBuffer 1G
复制代码
点击保存后,版本控制功能页面将展示各个提交版本:

若不在必要使用版本控制的相关功能,则按照下列操作惊醒设置删除:

版本控制的基本使用

全局版本控制

在控制菜单中,可以实现对全局设置的版本控制,可自界说要进行版本控制的实体,详细操作如下所示:

在设置要保存的实体时,点击对应实体可睁开详细设置,可以对各个实体进行更详细的设置:


  • 同步计谋:下拉选择项,体系提供归并、覆盖两种同步计谋;

    • 归并:创建或更新选定的实体,堆栈其他实体均不修改;
    • 覆盖:创建或更新选定的实体,堆栈其他实体将被删除;

  • 导出属性:单选项,勾选后会将对应实体的属性作为该版本的数据进行保存;
  • 导出关联:单选项,勾选后会对对应实体的关联关系作为该版本的数据进行保存;
  • 所有实体:开关项,开启后将保存对应实体的所有内容作为该版本数据;关闭后,右侧将出实际体列表设置输入框,可选择要保存为该版本数据的对应实体内容;
设置完成后,点击创建,等候创建完成后,在列表中可以看到一条新的版本记录。若在体系操作过程中,实行了错误操作必要回退版本,则按下列操作实行:

单实体版本控制

在各个实体对应的功能菜单当中,提供了对单实体的版本控制功能,以装备为例,按如下操作可以对单实体创建版本控制:

点击创建后,在对应实体的版本控制页签中可以看到当前实体的所有版本信息,如果在进行全局版本控制时对该实体也进行了保存,此处也会同步表现出全局的控制版本。点击第一个按钮,还可以将当前信息与对应版本信息进行比较。
若必要进行单实体的版本还原,可以按照以下操作进行:

至此,关于 Thingsboard 平台的基本设置和使用方法介绍完毕,感谢您阅读本文。如果您在阅读过程中发现了任何错误或不正确的内容,请与我联系并提供反馈,我将尽快进行更正和修正。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表