MQTT topic设计

翻译自:https://harizanov.com/2014/09/mqtt-topic-tree-structure-improvements/

我已经很久没有对我的旧MQTT主题树结构感到不满,并对如何改进它做了一些思考/研究。谷歌向我指出了Tinkerman  关于类似主题文章,我开始计划改进。

我将重复我在一篇文章中使用的引用“如果你无法衡量它,你就无法改进它”,只有这次重新将其称为“如果你无法想象它,你就不能改进它”。是的,我的第一个努力是可视化我的MQTT主题树,其余的应该相当容易。

Ben Hardill在这个主题上 做了一些出色的工作,他的D3 MQTT主题树可视化工具正是我所需要的。让它发挥作用是非常棘手的。我想使用新的Mosquitto MQTT支持websockets,所以我不得不升级到新版本。在构建Mosquitto时必须明确启用Websocket支持,幸好  Jeremy Gooch已经创建了*优秀*指令  ,如果没有这些,我无法做到。

最后,我不得不修改Ben的  mqttws31.js文件以使用Mosquitto 1.4,我的固定版本在Github上

随着可视化工作,我做了大约1003次迭代以获得以下结构,仍然有许多节点要添加并且形状粗糙:

根

 

根包含三个文件夹,用于将我连接的东西分组为“places”,“cloud”和“people”。我计划在那里添加更多类别,例如,跟踪车辆的“对象”。

“地点”将包含属于我的物联网家庭自动化系统的地点和属性,从“我们的地方”开始:

 

我们的地方

“我们的地方”是一个有花园的房子,所以我打破了两个:“房子”和“外面”。“房子”分为三个子类别:“普通”,“一楼”和“二楼”。“common”部分将包含无法以其他方式分组的公共组件。“外面”显然会在花园里组合任何东西,如外部条件,温室,前门等(所有WIP)

“Common”类别目前有这些叶节点:

 

共同

 

“raspberry pi”分支扩大了:

 

覆盆子pi

该“rfm2pi”叶子代表rfm2pi板处理该无线传输,它到来,走出去的叶子。“out”主题用于传输,例如,我用它每5分钟发送一次时间包,并将控制包发送到远程节点。Node-RED  订阅“in”主题中的不同NodeID叶子以处理原始数据包并进一步处理它,向其他分支提供处理过的数据。

这个分支中的其他叶子是:

other_common

 

“功率监视器”节点数据由我的传感屏蔽项目提供,仍然可以很好地工作。

“太阳能”节点数据由这里描述的热水箱控制器提供,固件从那时起显着改变,但硬件是相同的。请注意,它是一个带有“in”和“out”叶片的双向节点,因为它可以控制水箱中的加热器元件,如果阳光少于加热水所需的阳光。

“门铃”节点由我的IoT门铃项目提供

“安全系统”节点由我的家庭安全系统接口项目提供

“热泵”节点仍在进行中,我计划同时具有“进入”和“出”子主题,因为它可以控制和提供有关热泵状态的信息。在那里使用我的Daikin控制器项目

 

“一楼”分支具有以下结构:

第一层

 

 

我的朋友,OpenEnergyMonitor的 Glyn Hudson 给我发了一个EmonGLCD单元作为礼物,这是“厨房”节点温度的数据提供者。

我有一个火灾传感器报警项目,正在为“厨房”分支中的“火警”节点供电。

房子的门,窗和PIR状态由我的安全系统接口项目提供。这些数据有助于中央供暖系统,我计划在窗户打开时停止房间温控器。

客厅温度由Funky + DS18b20项目提供

电视状态由设备跟踪项目提供。我也可以使用LG TV控制器项目控制其状态。

 

 

“二楼”分支有很多待办事项,但目前的形状如下:

二楼

 

室温数据提供商是   Funky + DS18b20项目

PS3游戏控制台状态由  设备跟踪项目提供

 

“Outside”分支看起来像这样,我还有更多分支要添加:

外

 

 

我有两个软件机器人来提供WeatherUnderground的预测和当前的天气数据,非常实用,因为我没有雨/压力/风传感器。我使用预测数据向自己发送霜冻警报并为此类活动准备花园。仍然需要博客关于这些,因为我现在在Node-RED中做这一切。

惊恐+ DHT22项目为外部温度/湿度的数据提供者。通过增加计算的露点也可以丰富这些数据。

 

“云”分支自然地将所有与云连接的“事物” 分组,例如EmonCMSPushbulletTwitter,电子邮件,Twilio等。仍然是WIP。

云

 

Node-RED流程监视emoncms / out主题并将该数据发送到EmonCMS

twitter / out主题是发布到我家的Twitter帐户的内容。跟着它?

 

 

..最后是“人民”分支:

人

 

存在检测项目为我和妻子在家庭主题的存在提供了支持。

我的键盘项目正在跟踪重量。

我的位置正在使用OwnTracks进行跟踪,仍然需要关于该项目的博客。

 

这大致是我现在在MQTT主题树重组项目上的立场。我喜欢看D3的可视化器,它是动画的,数据随着它的到来而飞,非常漂亮。我喜欢将它想象成我家的中枢神经系统可视化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值