概述
Azure Service Bus集成可从Azure Service Bus向ThingsBoard流式传输数据,并将设备负载转换为ThingsBoard格式。

配置Azure Service Bus
要创建ThingsBoard Service Bus集成,您需要在Azure门户中创建两项内容:topic(主题)和该主题的subscription(订阅)。 您还需要找到并保存Service Bus命名空间的connection string(连接字符串),后续步骤中会用到。
创建上行转换器
您可以在Data converters部分创建Uplink converter(上行转换器),也可以直接在集成中创建。上行转换器用于将来自设备的传入数据转换为ThingsBoard所需的显示格式。点击“加号”按钮,然后点击“Create new converter”。要查看事件,请启用Debug模式。 在函数解码器字段中,指定用于解析和转换数据的脚本。
调试模式
启用调试模式可追踪与integrations执行相关的事件、状态及潜在错误,便于开发和排障。
调试模式设置可组合使用或完全关闭。
以下是来自Service Bus主题的示例上行消息:
1
2
3
4
5
6
7
{
"devName": "Sensor A1",
"msg": {
"temp": 23,
"humidity": 40
}
}
可使用 TBEL(TBEL)或 JavaScript 开发用户自定义函数。 建议使用 TBEL,其在ThingsBoard 中的执行效率远高于 JS。
可使用以下代码,将其复制到 decoder function 区域:
|
可使用以下代码,将其复制到 decoder function 区域:
|
在ThingsBoard中创建集成
现在我们已经在Azure门户中创建了一个topic,并且创建了上行转换器,可以开始创建集成了。
1) 进入Integrations center -> Integrations页面,点击“加号”按钮创建新的集成。将其命名为Azure Service Bus Integration,选择类型为Azure Service Bus,然后点击“Next”;

2) 在此步骤中,您可以选择之前创建的转换器,也可以直接在此窗口中创建新的上行转换器。选择之前创建的Service Bus Uplink Converter,然后点击“Next”;

3) 在添加下行转换器的步骤中,您同样可以选择之前创建的或创建新的下行转换器。但目前请将“Downlink data converter”字段留空,点击“Skip”;

4) 填写Service Bus命名空间的connection string(连接字符串)、topic(主题名称)和subscription(订阅名称);

5) [可选] 点击Check connection按钮检查与Service Bus主题的连接。点击Add按钮创建集成。

测试一下!
要发送测试消息,请使用Azure Service Bus的附加功能——Service Bus Explorer。
登录Azure门户并选择您的namespace(命名空间)。选择用于上行的topic(主题)。 在左侧面板中选择”Service Bus Explorer“选项卡。 点击”Send message“,根据上行转换器选择数据载荷类型,然后发送测试消息。

数据载荷示例:
1
2
3
4
5
6
7
{
"devName": "Sensor A1",
"msg": {
"temp": 23,
"humidity": 40
}
}
要检查消息是否已到达Service Bus集成,请打开集成的“Events”选项卡。

接收到的数据可以在上行转换器中查看。在“Events”选项卡的“In”和“Out”区域中:
发送上行消息后,系统会自动创建一个新设备。您会收到相关通知。要查看通知,请点击屏幕右上角的铃铛图标。 通知中会包含指向已创建设备的链接,点击进入该设备。

在这里您可以看到新设备的信息,以及我们发送到该设备的遥测数据。

了解更多关于通知及其配置方法,请参阅此处。
高级用法:下行消息
要向设备发送消息,您需要配置下行设置,包括下行转换器以及接收消息的Service Bus主题信息。 在Azure门户中创建topic用于下行消息传递。 (建议同时为该主题创建subscription,以便稍后在Azure门户中检查消息)。
现在,创建downlink converter(下行转换器)(步骤与创建上行转换器相同,但需选择Downlink并指定不同的函数)。
可使用我们的 downlink converter 示例,或根据您的配置自行编写:
|
您可以使用我们的下行转换器示例,或根据您的配置编写自己的转换器:
|
进入集成页面并指定已创建的downlink converter(下行转换器)。然后打开Advanced settings,指定Service Bus命名空间的Downlink topic和Downlink connection string (如果下行使用相同的命名空间,可以从上行设置中复制连接字符串)。

好了,下行转换器和集成都已准备就绪。让我们通过downlink节点来测试集成。
发送测试上行消息后,集成已在ThingsBoard中创建了设备。让我们检查该设备连接到了哪个规则链。 为此,请在ThingsBoard菜单中进入Entities -> Devices页面,找到我们在上行消息中使用的设备名称对应的设备。找到并进入该设备使用的device profile(设备配置)。

找到该设备配置所使用的rule chain(规则链)名称。

进入Rule chains页面。在”Search nodes”字段中输入”downlink”,在菜单中选择”integration downlink“节点并将其拖放到画布上。 在弹出窗口中,指定规则节点的名称并选择您的集成。

然后,点击“message type switch”规则节点右侧的灰色圆圈,将其拖动到“integration downlink”节点的左侧。在此选择“Post attribute”和“Attributes update”,点击“Add”链接并保存规则链。

进入“Entities” -> “Devices”页面,选择我们的设备。切换到Attributes选项卡。在”Entity attributes scope”列表中选择Shared attributes。 点击”加号”创建新的属性。在弹出窗口中指定属性的键名、值类型和具体值,然后点击”Add”。

进入Integrations页面查看下行结果。

如您所见,集成已成功生成下行消息并发送到了Azure Service Bus。
要在Azure Service Bus中检查消息,您需要进入Azure门户,选择用于下行的topic及其订阅。 选择Receive mode,然后点击Receive messages。在弹出窗口中点击”Receive“按钮。


总结
以上就是全部内容!祝您在配置IoT设备和仪表板时一切顺利!



