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

 找回密码
 立即注册
查看: 9162|回复: 30

[修仙教程] 我彻底弃用MQTT了,不是因为MQTT不好,而是环节越少越好!

[复制链接]

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2022-4-15 10:20:06 | 显示全部楼层 |阅读模式
本帖最后由 XCray 于 2022-6-10 16:43 编辑

MQTT确实是一个很好的协议,之前用着也确实挺舒服的。

不过我这人有点儿完美主义,多一个mqtt服务器的环节总觉得不太爽。

其实我用到的使用这个协议的组件只有两个,并且都有了实际效果更好的替代方案,于是不再犹豫。

1. 曾经接近完美的 mqttl 项目,就是把小米蓝牙网关的TTL接口的消息转换为MQTT以便接入HA的那个,包括在下在内的多人接力,终于让这个项目成熟好用了。只不过后来又实现了效果更好的直接解密蓝牙消息的方案,经过长期使用效果很稳定,所以 mqttl 项目可以说完成了历史使命,光荣退休吧。

2. 路由器WAN接口状态和CPU温度监控。之前部署有mqtt,所以可以很简单的基于mqtt实现。现在想取消mqtt服务器,翻了翻ha文档,找到了一个更好的方案:HA自有的、很强大的REST API。

  2.1 HA中创建长期令牌
  2.2 修改路由器上的脚本,把mosquitto_pub替换为curl

少了一个环节,感觉清爽了很多

附:上传cpu温度的脚本:
#!/bin/sh
temp=`cat /sys/class/thermal/thermal_zone0/temp`
json="{"state":"$temp", "attributes": {"unit_of_measurement": "°C"}}"
curl -X POST -H "Authorization: Bearer XXXXXXX" -H "Content-Type: application/json" -d "$json" http://homeassistant:8123/api/states/sensor.rttemp
XXXXXXX即为长期令牌
回复

使用道具 举报

46

主题

1654

帖子

6678

积分

论坛元老

Rank: 8Rank: 8

积分
6678
金钱
5014
HASS币
40
发表于 2022-4-15 10:38:39 | 显示全部楼层
mqtt作为物联网协议其中的一条腿,地位可想而知,mqtt主要是外部设备与ha交互,可以说只要设备能上网,那么万物皆可mqtt,个有个的优势
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

40

主题

2176

帖子

8286

积分

元老级技术达人

积分
8286
金钱
6095
HASS币
110
发表于 2022-4-15 10:46:33 | 显示全部楼层
我还保留MQTT有以下原因:
1、有的设备固件本身就只支持mqtt(论坛模块、大方摄像头hack、zip大佬的DC1 TC1 M1 A1等项目、你发的那个esp01可以TTL的项目),这些有的可以改固件 比如论坛模块刷esphome,有的不好改 比如TTL那个
2、HA挂了理论还是可以控制这些设备(不过没界面我估计也不会这么干)
3、MQTT可以开放端口出去  让异地的设备接入(我家有公网IP)

PS:最近在用esp01 TTL那个固件刷到12块的RF模块里,发声倒是可以了,不过声音很低,我替换了8Ω2W的 声音并没有变大,我也不会修改固件去增益(12块 esphome方案里作者做了增益,据说效果很好,但是只能播放wav格式 不好和微软TTL配合)
然后我又购置了功放模块(参考另一个作者的https://bbs.hassbian.com/thread-14248-1-1.html),等到货试试

PPS:esphome升级后 重新编译米家门锁项目,改了里面的一个参数(你代码里注释需要改的),操作人、操作方式、门事件、门事件更新时间都不正常了,只有门状态和其更新时间是对的,我还没顾得上看...
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2022-4-15 10:48:07 | 显示全部楼层
MQTT还是有他的优势的 包括出错重连等底层逻辑都帮写好了,CURL失败之后就完啦
回复

使用道具 举报

0

主题

15

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
41
HASS币
0
发表于 2022-4-15 11:03:44 | 显示全部楼层
好像有不少设备需要mqtt吧?
回复

使用道具 举报

0

主题

201

帖子

2713

积分

金牌会员

Rank: 6Rank: 6

积分
2713
金钱
2512
HASS币
0
发表于 2022-4-15 11:06:26 来自手机 | 显示全部楼层
mqtt挺好用 我是能走mqtt就不走ha。特别没有公网外网用。ha会经常折腾,mqtt相对不会怎么动。
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-4-15 11:09:39 | 显示全部楼层
jjcs 发表于 2022-4-15 10:38
mqtt作为物联网协议其中的一条腿,地位可想而知,mqtt主要是外部设备与ha交互,可以说只要设备能上网,那么 ...

是的,mqtt确实很了不起,只是对我现在的使用场景来说用不到,或者说不用更好,更简洁。
回复

使用道具 举报

18

主题

218

帖子

1822

积分

论坛技术达人

积分
1822
金钱
1604
HASS币
10
发表于 2022-4-15 11:19:31 | 显示全部楼层
蓝牙解密放案可有教程
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-4-15 12:52:04 来自手机 | 显示全部楼层
nanoivy 发表于 2022-4-15 11:03
好像有不少设备需要mqtt吧?

我现在用的没有非mqtt不可的,也许以后会有吧
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-4-15 12:53:38 来自手机 | 显示全部楼层
lhy741059930 发表于 2022-4-15 11:19
蓝牙解密放案可有教程

我觉得你这么问是在侮辱我……用手机看的贴?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 13:42 , Processed in 0.172483 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表