请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
楼主: XCray

[新奇玩法] (多个)蓝牙网关 TTL->MQTT,支持任意米家蓝牙设备接入HA/NR

  [复制链接]

0

主题

150

帖子

910

积分

高级会员

Rank: 4

积分
910
金钱
760
HASS币
0
发表于 2020-7-24 20:33:38 | 显示全部楼层
本帖最后由 charles0568 于 2020-7-24 20:38 编辑
XCray 发表于 2020-7-24 17:00
两个办法:
1、使用ha内置的mqtt客户端或任意其他mqtt客户端,订阅“/mqttl/#”主题,就可以看到所有蓝牙 ...

你好~did eid码大概是长怎样的?我在telnet里没看到任何讯息~订阅/mqttl/#也没看到什么讯息~只有在log里看到这些~这个是否为DID EID?
New client connected from 192.168.1.170 as mqttl_1297 (p2, c1, k15, u'charles').

New client connected from 172.30.32.1 as auto-86FDE5EB-1500-1785-994E-A2CEE3743824 (p2, c1, k60, u'homeassistant').

New client connected from 192.168.1.164 as DVES_8D95F3 (p2, c1, k30, u'charles').




回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11427
金钱
8496
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-24 20:58:37 | 显示全部楼层
本帖最后由 XCray 于 2020-7-25 16:24 编辑
charles0568 发表于 2020-7-24 20:33
你好~did eid码大概是长怎样的?我在telnet里没看到任何讯息~订阅/mqttl/#也没看到什么讯息~只有在log里 ...

显然,192.168.1.170就是你的ESP模块的地址,就应该用telnet登录这个地址。当然,你得先把线接好(网关的TTL TX和GND接到ESP模块的RX和GND,如果需要网关供电的话还要接3v3)。
登录后,ESP模块收到蓝牙网关TTL发过来的消息后,就会打印出来,像这样:
* Please type the command and press enter to execute.(? or h for this help)
***
(D) topic: mqttl/1111111/4110; payload: 02
(D) topic: mqttl/1111111/4110; payload: 02
(D) topic: mqttl/22222222/4100; payload: 0139
(D) topic: mqttl/11111111/4110; payload: 02

前面两行是Debug功能模块的提示语,前面还有很多行。后面(D)topic:mqttl开头的就是我们要看的消息,其中111111和222222那两串就是did,即设备识别码(为保密,我替换成了11111和22222,你自己的肯定是别的一串字符,就是两个斜杠之间的那部分)第二个斜杠之后、分号之前的,就是eid,即事件识别码。4110是我用的榉树门锁的状态报告,4100那个是花花草草报告的温度。payload后面的数值就是edata。

如果是mqtt订阅的话,主题最前面的那个/去掉吧,即“mqttl/#”,这个固件用的主题前面是没有“/”的,我当时受另一个应用的影响,多加了一个斜杠。。。



回复

使用道具 举报

3

主题

145

帖子

3517

积分

论坛元老

Rank: 8Rank: 8

积分
3517
金钱
3367
HASS币
30
发表于 2020-7-25 13:35:07 | 显示全部楼层
这个要好好研究一下
回复

使用道具 举报

14

主题

653

帖子

3788

积分

论坛元老

Rank: 8Rank: 8

积分
3788
金钱
3130
HASS币
10
发表于 2020-7-25 21:50:25 | 显示全部楼层
XCray 发表于 2020-7-24 13:27
OTA用的用户名和密码都是沿用killadm最初的代码定义的admin/admin,没改过,主贴里0718补充内容里有说明, ...

确实是没有看到,Thanks♪(・ω・)ノ
回复

使用道具 举报

0

主题

7

帖子

146

积分

注册会员

Rank: 2

积分
146
金钱
139
HASS币
0
发表于 2020-7-25 23:20:14 来自手机 | 显示全部楼层
楼主你好,我正在用你提供的方法尝试将榉树自带的网关接入homeassistant。前面的步骤一切正常,当我用mqttl/#命令去监听相关信息时发现没有任何反馈,于是我尝试使用telnet直接连接ESP发现依然没有相应。接着我尝试用串口助手直接读取网关信息,我发现在115200的波特率下收到的信息是乱码。不知接下来有什么解决办法,求指教!
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11427
金钱
8496
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-26 08:03:22 | 显示全部楼层
本帖最后由 XCray 于 2020-7-26 08:18 编辑
XFSRZERO 发表于 2020-7-25 23:20
楼主你好,我正在用你提供的方法尝试将榉树自带的网关接入homeassistant。前面的步骤一切正常,当我用mqttl ...

你给的信息太少,无法判断到底是哪儿的问题。

1、“前面的步骤一切正常”——我的理解是你已经成功刷入我提供的固件,没错吧?

2、 你的榉树网关和门锁是米家款的还是非米家款的?具体型号及软件版本?你的榉树网关都连接了哪些蓝牙设备?

3、mqttl/#是订阅的mqtt主题,不是命令,不知道这儿是不是有误会

4、 telnet到ESP没有响应?是什么输出都没有?debug提示信息也没有?输入个v回车看看

如果固件刷入正常的话,telnet连接之后首先会看到这些提示信息:
telnet.png


5、用串口直接连网关,115200收到的是乱码,其他设置如8N1、无流控等修改确认一下?试试其他的波特率?

我提供的固件用的也是115200的波特率,如果你手上的网关用的是别的速率,需要你确认之后自己修改源码重新编译。

回复

使用道具 举报

0

主题

7

帖子

146

积分

注册会员

Rank: 2

积分
146
金钱
139
HASS币
0
发表于 2020-7-26 09:40:41 | 显示全部楼层
XCray 发表于 2020-7-26 08:03
你给的信息太少,无法判断到底是哪儿的问题。

1、“前面的步骤一切正常”——我的理解是你已经成功刷入我 ...

感谢楼主的回复,我把我这里目前的情况描述一下:
1.  之前我已将你提供的固件刷入ESP-01S,并连接mqtt_XXXX热点完成了WiFi和MQTT设置,MQTT服务器这边之前用MQTT.fx尝试连接过可以连接。不过我发现设置完成后原来的mqtt_XXXX热点会转为ESP_xxxx热点,楼主是否有同样的情况?另外我已尝试 ping ESP-01S的ip地址确认联网是否正常,显示连接是正常的。
2. 我这边的环境情况应该和楼主的一样,使用榉树kx的锁连接榉树自带的网关(此网关可以接入米家app),网关目前只连接了门锁,其他设备未接入。网关软件版本为V1.6.4_0107,锁的固件版本为2.0.0_0112。不知道楼主用的是什么版本?
微信图片_20200726093802.jpg
3. 我确实是在homeassistant的mqtt配置界面订阅了mqttl/#,并在log日志中查看信息,确实没有任何有关的消息。

4. telnet ESP-01S 的IP地址后无任何输出,只有首字节光标,我理解为应该连接不正常,但无任何报错提示。
微信截图_20200726094002.png
5. 串口的设置是和你在回复的描述中一样的,输出就是乱码,蛮奇怪的。我同时试验了其他所有的波特率,没一个能正常显示的。
微信截图_20200726093518.png

感觉我的应用环境应该和楼主是几乎相同的。但连接过程中出现的问题还是不少,不知道是哪一步我做错了?麻烦楼主提供些帮助,谢谢!
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11427
金钱
8496
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-26 10:12:11 | 显示全部楼层
本帖最后由 XCray 于 2020-7-26 10:14 编辑
XFSRZERO 发表于 2020-7-26 09:40
感谢楼主的回复,我把我这里目前的情况描述一下:
1.  之前我已将你提供的固件刷入ESP-01S,并连接mqtt_X ...

是有点儿奇怪~~~
1. 刷写后模块重启,连接mqttl_xxxx热点完成设置后,热点应该消失。这块一直沿用killadm的源码,初期确实配网后热点会继续存在,但后来的版本不会。你不妨再重刷一下最新的版本(主贴最下边)。
2. 设备应该不是问题,我的锁型号是K1,版本号略有差异(2.0.0_0110)。
3. homeassistant订阅mqtt消息,就在订阅那个界面看,不能离开,log日志里是看不到的。
4. 最明显的就是telnet后没有任何输出,和第一点一样,不妨重刷一次看看(线刷)。
5. 会不会是你这个ttl转rs232的问题?我一直用的USB转TTL,PL2303和CP2104的都用过没问题。根据小米的文档,波特率就应该是115200
问题可以分解成两个:一是网关TTL输出的问题,二是模块固件的问题(telnet输出等)
回复

使用道具 举报

0

主题

7

帖子

146

积分

注册会员

Rank: 2

积分
146
金钱
139
HASS币
0
发表于 2020-7-26 13:33:48 | 显示全部楼层
本帖最后由 XFSRZERO 于 2020-7-26 13:45 编辑
XCray 发表于 2020-7-26 10:12
是有点儿奇怪~~~
1. 刷写后模块重启,连接mqttl_xxxx热点完成设置后,热点应该消失。这块一直沿用killadm ...

关于第二个怀疑模块固件的问题,我尝试了分别刷入20200717以及20200719版本的固件,但问题依旧没有变化,我发现不应该存在的热点ESP-xxxx是在重启后才会出现,配置完不重启是不会出现的。另外我尝试更换ESP-01S,同样刷入这两个版本但问题依旧。是否可能是ESP连接不上MQTT服务器所引起的?
1595740975(1).png
关于第一个问题,我这里采用的转换芯片是FT232的,我发现问题在接线上,我这里按照电路板丝印显示,应该是TX-->TX。现在用串口已经能够正常读取信息了。

回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11427
金钱
8496
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-26 15:12:02 | 显示全部楼层
XFSRZERO 发表于 2020-7-26 13:33
关于第二个怀疑模块固件的问题,我尝试了分别刷入20200717以及20200719版本的固件,但问题依旧没有变化, ...

你说的问题里透着邪。

现在弄清楚了串口线上的TX和RX是反的,那么之前错误接线时,实际上串口的RX接的就是网关TTL的RX,那应该读不到任何数据啊?那之前看到的乱码就不可理解了。

看烧写的log,应该是成功了,我有点好奇烧写固件时你用的还是这个TX/RX标反的串口线?线又是怎么接的?

可以确信的是:如果固件烧写没问题,配网后是不会出现任何热点的(你是不是还有别的ESP模块在发射热点信号?)即便连不上mqtt服务器,也只是在那儿反复尝试连接,不会出现ESP-xxx的热点(因为代码里就没有)。代码我反复看过很多遍,我也用不同的模块刷写过很多遍,其他朋友也没碰到你说的这个问题。

你再看看telnet上去有没有输出?或者连着串口线重启看看串口线的输出是啥?

那个ESP-xxxx的热点,我怀疑两个:你那儿还有别的模块在发射这个热点信号、你的刷写过程没有真正成功。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-3-28 20:46 , Processed in 0.087962 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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