Thingsboard;有关同一传感器的数据,但来自不同的(多个)网关

时间:2018-02-18 08:43:47

标签: sensor gateway thingsboard

我刚刚开始使用Thingsboard,并且在理解一些基本内容如何工作方面取得了一些进展(主要是使用mqtt发送传感器数据)。但是我已经完全停顿了一下。这是对问题的解释。 Thingsboard版本是1.3.1

我的设置:

  • 4x RPi(Raspberry Pi)用作从蓝牙收集数据的网关 信标
  • 一组蓝牙信标

这是系统应该做的事情: 从网关(RPi)发送定期数据,以通知网页网关处于活动状态 以上部分工作正常。我已经设置了使用访问令牌连接到thingsboard的网关,并发布了数据(属性和遥测)。对于发送属性,我使用“v1 / devices / me / attributes”,对于遥测数据,我使用“v1 / devices / me / telemetry”,如文档中所述。

来自网关的典型字符串表示它处于活动状态

{"gwA.macid": "00:00:00:00:00:00", "gwA.timestamp": "2018-02-16T19:20+01:00"}

以上部分运作良好。这仅用于表明网关能够很好地与Thingsboard服务器通信。所有网关都使用它自己的访问令牌连接到thingboard并发布上述数据。

现在问题部分(或我停止的地方)

网关收集有关附近蓝牙信标的数据并发布。 网关发布信标数据的数据格式是

{"bcn000001.mac": "00:00:00:00:00:00", "bcn000001.timeepoch": 1518939044}

网关确保每个信标数据都具有正确的前缀。例如

{"bcn000001.mac": "50:80:25:AA:BB:CC", "bcn000001.timeepoch": 1518939044}
{"bcn000002.mac": "50:80:25:RR:AA:DD", "bcn000002.timeepoch": 1518939039}
{"bcn000003.mac": "50:80:25:GG:33:EE", "bcn000003.timeepoch": 1518939020} 

但是有关同一传感器的数据也可能来自另一个网关。如何在单个小部件上显示它,而不管数据来自哪个网关。如果我选择“实体列表”,则它不起作用,或者显示小部件上的所有4个RPi网关。这不是我想要的。我附上了一张图片。我不确定我是否能够很好地解释这一点,但如果我能提供其他信息,请告诉我。我正在添加一个图像来指出我刚才提到的一些事情。我甚至通过使用前缀(如之前的SO posts之一中所述)将数据分离出来。我已经花了将近几天的时间。这不应该是困难的。至少那是我开始时的想法。

enter image description here

注意:在我探索时,我刚刚学习(实现)了一件事。我觉得这部分有点令人困惑,所以我想我应该告诉别人。当在Thingsboard中添加设备时,可以选择指定设备“是否为网关”。它试图告诉(问?)是该设备上是否安装了thingboard网关服务。在我的情况下,我犯了一个错误(?),认为从传感器收集数据并将其发布到服务器的设备是网关设备。我想我会尝试在覆盆子pi上安装thingboard网关服务,然后看看它是怎么回事。我会在完成后发布更新,但同时发布任何有用的意见或建议 - 请保持即将到来。

我见过其他人在SO上提出非常相似的问题。像这样的基本事情不应该那么困难。如果没有明确说明设置物联网后端/仪表板的大多数基本步骤,那么就有一百页文档没有意义。我想做的就是显示来自“任何一个设备”的相同传感器数据(比如传感器A),以显示在同一个小部件上。如果我选择单个实体,如果数据来自其他设备,则小部件将不会更新。如果我选择实体列表,并启用“Resolve as multiple entities”,那么我最终会显示所有设备的小部件

enter image description here

1 个答案:

答案 0 :(得分:1)

您使用的是错误的API。您正在寻找的API是网关API,它允许代表其他设备推送遥测和其他消息。请在Raspberry Pi网关上使用此API https://thingsboard.io/docs/reference/gateway-mqtt-api/。您还可以使用我们的Gateway项目并根据您的需要进行修改。