设想
我希望部署将传感器数据发布到中央 MQTT Broker 的传感器节点,然后将此信息发送到 InfluxDB。
要求
向传感器节点添加元数据,同时向代理发布信息。这个要求代替了传感器节点将部署在特定房间,这些信息需要保存在 InfluxDB 中tags
,以便我进行后期处理。场景简化如下。
元数据
例子:
measurement: sensors
type: temperature, humidity
location: GATEA
此元数据可用作查询,如下所示:
SELECT * FROM "sensors" WHERE "type"='humidity' AND "location"='GATEA' LIMIT 100
上面提到的查询为我提供了来自 GateA 的所有湿度传感器值。
问题
使用标准 MQTT 发布信息时如何添加此类元数据?
初步理解建议:
我
topics
根据Gates
每个传感器节点向特定门主题发布信息的位置进行制作,例如GATEA
,GATEB
等等。我不确定这是否有意义,因为 InfluxDB 可能会将该主题作为度量,并且查询可能如下所示:SELECT * FROM "GATEA" LIMIT 100
然而,这并没有解决
type
可以作为元数据推送的标签。反之亦然是基于
type
传感器的主题创建,例如temp
,humidity
对于每个传感器节点
在这种场景下,MQTT 部署是否有任何标准实践或架构设计建议?或者关于在这种情况下应该选择什么路径的任何建议?
参考
MQTT、Docker、Grafana、InfluxDB、ESP32 博客文章是一篇很棒的博客文章,我想作为此类设置的基础开始