『瀚思彼岸』» 智能家居技术论坛

标题: 关于MQTT的理解 [打印本页]

作者: misLia    时间: 2024-7-31 14:43
标题: 关于MQTT的理解
HA已经玩了,半年多了。之前折腾的方向主要还是基础的集成,自动化为主,这些都是全球的大佬已经做好的现成的东西。最近才有时间想看看一些更深入的东西。昨天看MQTT的官方文档,作为网络知识的小白,看的一头雾水,字都认识,但放在一起就不懂什么意思了。所以特来请教各位大佬,看看小弟理解的对不对。
      1. HA里可以通过mosquitto broker搭建个本地MQTT代理。看了一些视频教程也有通过网络云,搭建一个网络MQTT平台。
      2. 首先得有个支持MQTT的设备。设置好本地的MQTT地址。
      3. 然后在[size=0.8em]configuration.yaml里设置监听

作者: DDDear    时间: 2024-7-31 16:42
看起来是这样的。
还有个mqtt集成,你装了以后,配置那里可以发布和订阅主题,调试很方便。
搞清楚怎么用了以后,可以看ha官方的mqtt文档,可以实现mqtt自发现,就是在特定的主题发特定的消息,就不用到configuration.yaml去配置了。
作者: kkk123    时间: 2024-7-31 16:46
DDDear 发表于 2024-7-31 16:42
看起来是这样的。
还有个mqtt集成,你装了以后,配置那里可以发布和订阅主题,调试很方便。
搞清楚怎么用了 ...

我在tasmota控制台发指令可以控制开关灯,但是在mosquitto里如何发才能被识别呢?现在提示未识别
作者: misLia    时间: 2024-7-31 16:53
DDDear 发表于 2024-7-31 16:42
看起来是这样的。
还有个mqtt集成,你装了以后,配置那里可以发布和订阅主题,调试很方便。
搞清楚怎么用了 ...

额......MQTT集成装了。B站看视频装的。然后看了MQTT官方文档,看的一头雾水。在那个集成里,自发现配置里我什么都没改。有个主题,发布,监听什么都我都没写。我的理解像esp8266这种,如果装了MQTT固件,它可以自发现,其他的都要通过configuration.yaml,去配置。
作者: DDDear    时间: 2024-7-31 16:56
kkk123 发表于 2024-7-31 16:46
我在tasmota控制台发指令可以控制开关灯,但是在mosquitto里如何发才能被识别呢?现在提示未识别 ...

tasmota我没用过
作者: misLia    时间: 2024-7-31 17:00
DDDear 发表于 2024-7-31 16:42
看起来是这样的。
还有个mqtt集成,你装了以后,配置那里可以发布和订阅主题,调试很方便。
搞清楚怎么用了 ...

所以说只要装好,MQTT集成,它其实已经配置好了自发现功能。不需要额外的配置。接下来只要有MQTT设备连接到HA它就能自己发现咯。接触了解的设备少,不太清楚,除了ESP8266或者ESP32这种硬件还有什么设备是有MQTT功能的?
作者: DDDear    时间: 2024-7-31 17:05
misLia 发表于 2024-7-31 16:53
额......MQTT集成装了。B站看视频装的。然后看了MQTT官方文档,看的一头雾水。在那个集成里,自发现配置 ...

先不说自发现了。
就是发布订阅(监听)机制,比如,你去集成里面,主题和监听都填上 /test ,然后发布那里随便发,监听那里就出现你发的消息了。
简单实现的话,在8266上,对主题/8266/temperature发布消息26,然后去configuration.yaml解析/8266/temperature的主题的消息,就行了。
自己弄的话,主题可以任意设置,消息可以任意发,只要你知道哪些主题发的哪些消息代表什么就行了。
作者: DDDear    时间: 2024-7-31 17:08
任意设备也可以订阅和发布任意主题,你也可以在集成那里发布主题/8266/temperature,消息26,或者参开你看的视频的格式,配置好configuration.yaml应该就能解析出来了。
作者: DDDear    时间: 2024-7-31 17:11
misLia 发表于 2024-7-31 17:00
所以说只要装好,MQTT集成,它其实已经配置好了自发现功能。不需要额外的配置。接下来只要有MQTT设备连接 ...

自发现不是这样的,先不说他了。你去网上下载mqtt客户端就行,都能用,ha的集成就很好用,你先试一下,一试就明白了
作者: misLia    时间: 2024-8-1 10:41
DDDear 发表于 2024-7-31 17:05
先不说自发现了。
就是发布订阅(监听)机制,比如,你去集成里面,主题和监听都填上 /test ,然后发布那 ...

我按照官方文档测试了。MQTT集成内发布和监听,都没问题。也就是说我的MQTT代理已经设置好了呀。现在我茫然的是,如果要让HA能发现MQTT设备,是要在configuration.yaml上配置发布主题和订阅吗?MQTT设备的发布和订阅又是在哪里去配置?无论是HA还是设备,总需要知道我的MQTT代理的IP地址吧。

作者: DDDear    时间: 2024-8-1 14:07
misLia 发表于 2024-8-1 10:41
我按照官方文档测试了。MQTT集成内发布和监听,都没问题。也就是说我的MQTT代理已经设置好了呀。现在我茫 ...

HA集成的话,你再安装的时候肯定配置了mqtt地址了啊,设备的话,就需要配置ip port,账号,密码啥的才能连了。连上后再进行发布和订阅。
实现mqtt的实体的话,一种就是在configuration.yaml上配置,配置好就出来了https://www.home-assistant.io/integrations/switch.mqtt/

作者: misLia    时间: 2024-8-1 14:14
DDDear 发表于 2024-8-1 14:07
HA集成的话,你再安装的时候肯定配置了mqtt地址了啊,设备的话,就需要配置ip port,账号,密码啥的才能 ...

所以我的理解应该是对的。设备通过yaml配置ip port 设备ID一些列这些。然后再configuration.yaml里在配置发布和订阅主题。
作者: DDDear    时间: 2024-8-1 14:21
misLia 发表于 2024-8-1 14:14
所以我的理解应该是对的。设备通过yaml配置ip port 设备ID一些列这些。然后再configuration.yaml里在配置 ...

是的, 一般是设备进行主题的发布,ha去订阅。
作者: jjcs    时间: 2024-8-1 14:23
mqtt是物联网的万金油,可以说万物皆可mqtt,没有mqtt就没有物联网应用层通信
作者: jjcs    时间: 2024-8-1 14:25
misLia 发表于 2024-7-31 16:53
额......MQTT集成装了。B站看视频装的。然后看了MQTT官方文档,看的一头雾水。在那个集成里,自发现配置 ...

看视频看教程,尤其是开源项目,教程时长超过半年的,不要全相信
作者: misLia    时间: 2024-8-1 16:05
jjcs 发表于 2024-8-1 14:23
mqtt是物联网的万金油,可以说万物皆可mqtt,没有mqtt就没有物联网应用层通信 ...

其实我学习关于MQTT的一个重要的目的。家里有格力的塔扇。目前是通过gree climate 这个集成登录格力+账号接入HA的。问题是这个集成把这个塔扇当成一个空调来显示。只能实现“开和关”。摇头啊,风量加减这些都不能用。那像这种情况,能通过MQTT接入HA吗?想不通,塔扇都不知道我MQTT的IP地址,怎么接入?
作者: misLia    时间: 2024-8-1 16:14
kkk123 发表于 2024-7-31 16:46
我在tasmota控制台发指令可以控制开关灯,但是在mosquitto里如何发才能被识别呢?现在提示未识别 ...

tasmota有个集成的。我看在B站上看到了一些视频教程。控制台里要配置引脚号,要设置MQTT地址端口和账户密码的。然后在tasmota集成里就可以看到实体了。我理解的tasmota就是用控制台,帮你编写配置文件。具体的你还是看看视频。
作者: jjcs    时间: 2024-8-1 16:45
misLia 发表于 2024-8-1 16:05
其实我学习关于MQTT的一个重要的目的。家里有格力的塔扇。目前是通过gree climate 这个集成登录格力+账号 ...

用nodered转一下
作者: misLia    时间: 2024-8-2 07:59
jjcs 发表于 2024-8-1 16:45
用nodered转一下

改天有空试试。
作者: hunl1986    时间: 2024-8-3 23:33
misLia 发表于 2024-8-1 14:14
所以我的理解应该是对的。设备通过yaml配置ip port 设备ID一些列这些。然后再configuration.yaml里在配置 ...

可以不用在configuration.yaml里设置的,MQTT的流程是:1、设备或者node-red类的工具向MQTT服务器发送生成设备的信息。2、MQTT接收信息后会生成这个设备的订阅主题信息。3、HA向MQTT订阅这个主题,告诉MQTT服务器这需要使用这个设备,HA自身生成设备和实体。4、HA如果对设备进行操作会向MQTT服务发送设备更改的信息。5、MQTT服务器接收信息生更新设备的状态和信息,其它订阅的客户端会自动更新设备信息。

发个例子给你,可以参考一下[attach]62180[/attach]

作者: fay000fay    时间: 2024-8-5 08:48
基本上是这样。如果你把本地MQTT服务器映射到公网后,那么你外网的设备,通过mqtt相应的插件,可以将设备的一些数据转回到你的服务器,在yaml文件里设置好相应的主题就能生成mqtt实体了。
作者: schymatter    时间: 2024-8-5 17:37
有个设备使用vscode在ESP里上传的代码,不知道怎么通过mqtt接入homeassistant
作者: vin.chen    时间: 2024-8-5 18:09
本地MQTT代理如何安装呢?
作者: misLia    时间: 2024-8-6 08:46
vin.chen 发表于 2024-8-5 18:09
本地MQTT代理如何安装呢?

额,这个我会!在加载项里安装mosquitto broker。然后这样,再这样,最后那样。好吧,现在身边没有HA主机。流程记不住。B站上找了个视频,你自己按照视频做吧。https://www.bilibili.com/video/B ... 4d8d1b0a5cd616e8351
作者: vin.chen    时间: 2024-8-6 16:23
misLia 发表于 2024-8-6 08:46
额,这个我会!在加载项里安装mosquitto broker。然后这样,再这样,最后那样。好吧,现在身边没有HA主 ...

哈哈,感谢感谢。




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5