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

 找回密码
 立即注册
查看: 7024|回复: 2

[经验分享] LOCK2MQTT代码修复bug一处及ota操作方法

[复制链接]

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24360
金钱
22929
HASS币
290
发表于 2020-7-16 18:12:52 | 显示全部楼层 |阅读模式
填坑:killadm大神的LOCK2MQTT代码改造、编译、烧录
https://bbs.hassbian.com/thread-10218-1-1.html

米家智能门锁接入homeassistant
github.com/killadm/LOCK2MQTT

通过以上两个帖子及多处资料查找,研究了一下,购入小白遥控器和wemos d1 mini,折腾几天,发现几个坑,总算进入下一步了。

下载固件刷新,软件目前只发现 https://github.com/letscontrolit/espeasy/releases 中的刷机工具可以用自带的usb接口。

一开始下载 LOCK2MQTT项目中的固件,刷机成功,热点配置也都成功。就是没消息,OTA也无法打开。 热点模式下只能打开配置文件,IP下update页面无法访问。

于是自己修改代码自己编译,将两个代码拼出“米家智能门锁”+ “蓝牙温湿2”的组合

发现
(parse_result.Match("\{.*method.*\}") == REGEXP_MATCHED)
编译时有个警告,提示这句中的 } 不应该要转义符,查了几份资料这里应该是有问题的,应该要匹配 {method.}。这个错误导致没有任何匹配的消息发送到mqtt上。应该修如下:
(parse_result.Match("\{.*method.*}") == REGEXP_MATCHED)



05.jpg

自己编译的固件OTA在IP模式下正常打开。

06.jpg

但是上传固件如下提示:

07.jpg

查找资料发现
10.jpg
按了几次ES8266的rst键,终于可以了。奇怪的是之后接好线后装好盒子之后再试,竟然不用按rst也可以OTA了。
09.jpg

IP接入后能进/update 需要密码验证,无法进入配置页,LOCK2MQTT热点是关闭的。
如果把配置的wifi信号关掉,重启es8266就会出现LOCK2MQTT热点,即可进行配置网络。
原版这种设计还是不错的,安全性应该说也够了。主要是方便配置。

08.jpg




测试一下,终于hass后台mqtt有消息了。
11.jpg


这个东西USB刷机时要把vbus线断掉,一开始没消息不知问题在哪,刷机好多次,为此剪断焊接又剪断又焊接……
还好,现在ota能用了,后续固件有修改至少可不剪线了,有可能拆螺丝按rst键。

13.JPG

14.JPG

12.JPG

总结:

源文件 LOCK2MQTT.ino
(parse_result.Match("\{.*method.*\}") == REGEXP_MATCHED)
修改为:
(parse_result.Match("\{.*method.*}") == REGEXP_MATCHED)


需要配置模块网络就让模块失去之前的网络wifi,自身热点就会开启。
OTA有问题,可能是固件问题或需要按一次模块的rst键。

另外学习 XCray 代码,在最后

        else {
            //Debug.println("UNKNOWN");
        }
    }
        delay(1);  //增加这一句应该会更好
}


具体Pdid、eid之类的匹配参数后续再研究,目前锁买了还没装上去,只有蓝牙温湿2。折腾这个很费时间和精力呀。


评分

参与人数 2金钱 +36 HASS币 +10 收起 理由
magic900321 + 16 感谢楼主分享!
+ 20 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2020-7-16 18:50:40 | 显示全部楼层
嗯,最后那个delay语句确实非常有必要,我也是后来才从一位朋友的回帖中学到的。

刚刚发了一个帖子,esp代码实现了对所有米家蓝牙设备的适配(其实是把能甩的工作都甩给了ha),供参考。

之前k神的代码我没直接用,你开头说的那个bug我直接跳过了没发现,应该是具体设备消息格式的差异。

至于你说的OTA还需要按rst的事情,我还真没碰到过,一直是直接ota就可以(除了第一次必须线刷)。

k神的代码对于热点的处理确实还需要改进。
回复

使用道具 举报

0

主题

45

帖子

219

积分

中级会员

Rank: 3Rank: 3

积分
219
金钱
174
HASS币
0
发表于 2021-12-24 17:43:52 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 23:49 , Processed in 0.074264 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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