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

 找回密码
 立即注册
查看: 12561|回复: 11

[经验分享] 榉树门锁网关 + esp8266接入HA固件

[复制链接]

11

主题

108

帖子

833

积分

论坛技术达人

积分
833
金钱
715
HASS币
50
发表于 2020-7-22 20:42:38 | 显示全部楼层 |阅读模式
本帖最后由 iwha 于 2020-7-22 21:03 编辑

感谢XCray 的帖子 https://bbs.hassbian.com/thread-10055-1-1.html
ESP8266-01s 比较简单小巧,正好放得下
IMG_4857.jpg

电工胶布或者热缩管包一下以免意外短路, 这个位置正合适
IMG_4858.jpg


在此贴的基础之上重新编写了固件, 加入web页面操作, 第一次刷完固件接电 会开启wifi热点, 网段192.168.10.0, 网关地址192.168.10.1  wifi名称为ESP_XXXXXX (x为mac地址其中3位), 已在 ESP8266 12s和01s 完成测试

连接wifi后浏览器访问 http://192.168.10.1


页面会搜索可用wifi, 选择你所在wifi 并加入, wifi连接成功后会关掉ESP8266本身的wifi热点 然后自动跳转到新获得的IP地址, 大概是这样的。
(页面已经添加了中文, 如果浏览器是中文的则会显示中文)

Screen Shot 2020-07-22 at 8.29.03 PM.png

然后在mqtt部分填写你的mqtt信息
Topic Prefix (主题前缀) 可以自己定义 主题名称
勾选  “Publish Raw Message“ 允许推送原始信息  会把收到相关的榉树网关串口信息 发送到mqtt 服务器

管理部分(Admin) 是为了设置 刷机更新 的用户名和密码, 默认用户 admin 无密码

点击 “Update Firmware” 更新固件 刷机


固件(这是1M版本的,适合最基本的01s以及4M的12s, 如需要4M版本的可以自行编译)

zelkovalock-esp8266.bin.zip (287.22 KB, 下载次数: 13)

固件代码下载,包含arduino文件和所需的html、javascript 文件。 有条件的可以自己修改编译
zelkovalock-esp-src.zip (15.75 KB, 下载次数: 8)


HA 自定义sensor部分
sensor:
#榉树智能门锁
  - platform: mqtt
    name: Jvshu
    icon: 'mdi:door-closed-lock'
    state_topic: 'mqttl/设备did/4110' #替换成正确的did和eid
    value_template: >-
       {% if value == '00' %}
         门未关!
       {% elif value == '01' %}
         已关,未闩
       {% elif value == '02' %}
         已上闩
       {% endif %}
  - platform: mqtt
    name: LockOpera
    icon: 'mdi:lock-smart'
    state_topic: 'mqttl/设备did/5' #替换成正确的did和eid
    value_template: >-
       {% if value[16:20] == '0200' %}
         指纹
       {% elif value[16:20] == '0100' %}
         密码
       {% elif value[16:20] == '0000' %}
         蓝牙
       {% endif %}
  - platform: mqtt
    name: KeyID
    icon: 'mdi:human-handsdown'
    state_topic: 'mqttl/设备did/5' #替换成正确的did和eid
    value_template: "{{ value[8:16] }}"
  - platform: mqtt
    name: OpTime
    icon: 'mdi:clock-in'
    state_topic: 'mqttl/设备did/5' #替换成正确的did和eid
    value_template: "{{  value[0:8]|int(0,16)|timestamp_local }}"

  #蓝牙温度/湿度计
  - platform: mqtt
  name: BLE Temperature
  icon: 'mdi:temperature-celsius'
  unit_of_measurement: "°C"
  state_topic: 'mqttl/设备did/4100'
  value_template: >
    {{ value | int(base=16) / 10 }}

  - platform: mqtt
  name: BLE Humidity
  icon: 'mdi:water'
  unit_of_measurement: "%"
  state_topic: 'mqttl/设备did/4102'
  value_template: >
    {{ value | int(base=16) / 10 }}

  - platform: mqtt
  name: BLE Battery
  icon: 'mdi:battery-charging'
  unit_of_measurement: "%"
  state_topic: 'mqttl/设备did/4106'
  value_template: >
    {{ value | int(base=16) }}



也可以使用原始信息
  - platform: mqtt
    name: BLE Temperature
    icon: 'mdi:temperature-celsius'
    unit_of_measurement: "°C"
    state_topic: 'mqttl/raw'
    value_template: >
      {% set params = value.params %}
      {% if params.dev.did == '设备did' %}
        {% if (params.evt |length > 0) and (params.evt[0].eid==4100) %}
          {% set t = params.evt[0].edata %}
          {{ (t[2:] + t[:2]) | int(base=16) / 10 }}
        {% endif %}
      {% endif %}



评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
+ 20 + 20 大神666!

查看全部评分

回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2020-7-22 21:34:53 | 显示全部楼层
本帖最后由 XCray 于 2020-7-22 21:40 编辑

软件更强大更灵活了

只是把esp模块这样摆放会不会散热不好导致丢消息?平时还盖上榉树网关的盖子吗?

你用的也是榉树门锁?可以利用每70秒左右一次的状态报告(eid4110)间接监测丢消息现象,具体可参考我的另一个帖子。
回复

使用道具 举报

11

主题

108

帖子

833

积分

论坛技术达人

积分
833
金钱
715
HASS币
50
 楼主| 发表于 2020-7-22 21:38:12 | 显示全部楼层
本帖最后由 iwha 于 2020-7-22 21:41 编辑
XCray 发表于 2020-7-22 21:34
这样会不会散热不好导致丢消息?

你用的也是榉树门锁?可以利用每70秒左右一次的状态报告(eid4110)间接 ...

散热不是大问题, 我试了几天12s, 没发现特别热。
(我理解错了, 你指的是胶布缠的地方? 应该不会, 芯片没有被包裹, 只是把接线柱包裹着以防意外接触)

是的, 我也是榉树门锁, 我去看看你的那个帖子。 感谢
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2020-7-22 21:42:59 | 显示全部楼层
iwha 发表于 2020-7-22 21:38
散热不是大问题, 我试了几天12s, 没发现特别热。
(我理解错了, 你指的是胶布缠的地方? 应该不会,  ...

客气了!有幸能一起玩也是值得高兴的事情。

可能12s有屏蔽罩散热会更好?

反正我用01s都不放在榉树网关里面了,露在外面图个凉快。。。
回复

使用道具 举报

11

主题

108

帖子

833

积分

论坛技术达人

积分
833
金钱
715
HASS币
50
 楼主| 发表于 2020-7-22 21:42:59 | 显示全部楼层
XCray 发表于 2020-7-22 21:34
软件更强大更灵活了

只是把esp模块这样摆放会不会散热不好导致丢消息?平时还盖上榉树网关的盖子吗?

明天观察一下, 如果发热导致丢包,可以在壳子四周打几个眼儿 通风散热
回复

使用道具 举报

8

主题

206

帖子

2171

积分

论坛技术达人

积分
2171
金钱
1965
HASS币
0
发表于 2020-7-22 22:22:14 | 显示全部楼层
一直想找一个可以一键布防能对接的门锁,找了好多都没找到
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2020-7-23 07:16:13 | 显示全部楼层
kenlau 发表于 2020-7-22 22:22
一直想找一个可以一键布防能对接的门锁,找了好多都没找到

基于蓝牙网关、TTL这种方式,基本上可以完美解决自动撤防的要求(我就是这么用的,这也是我搞这个程序的最主要的目的)。本地联动、低时延。

另外,有的门锁可以提供“门外反锁”的事件,用于触发一键布防大致可行(例外是家里还有别人但出去的人习惯性在门外反锁),还有的在门外面板上提供了外出按钮,也是一种解决方案。

但这种方案总是需要人工去触发,难免遗忘,且需要更复杂的判断方法避免误判。我个人更喜欢可以准确的自动布防的办法——我试过多种方案后最终选择的是用树莓派对我和家人用的手机BLE蓝牙进行监测,自动判断离家回家,从而自动布防、自动撤防(和门锁的动作触发同时应用,更稳妥)。具体可以参考我另外的帖子。
回复

使用道具 举报

11

主题

108

帖子

833

积分

论坛技术达人

积分
833
金钱
715
HASS币
50
 楼主| 发表于 2020-7-23 15:10:55 | 显示全部楼层
XCray 发表于 2020-7-23 07:16
基于蓝牙网关、TTL这种方式,基本上可以完美解决自动撤防的要求(我就是这么用的,这也是我搞这个程序的 ...

榉树智能锁是支持蓝牙开锁的, 不知道串口会不会同时也可以接收相同的指令
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2020-7-23 15:52:19 | 显示全部楼层
本帖最后由 XCray 于 2020-7-23 21:13 编辑
iwha 发表于 2020-7-23 15:10
榉树智能锁是支持蓝牙开锁的, 不知道串口会不会同时也可以接收相同的指令 ...

首先,蓝牙开锁是手机直接和门锁交互,应该是不经过蓝牙网关的。TTL口能看到蓝牙开锁的事件,只是执行的结果。

其次,我们现在使用的、板子上提供针脚的TTL接口,其实是个DEBUG口,我们利用的消息,其实是厂家开发人员用于调试的debug消息,这些消息和设备本身的工作所用的消息比,只能算是一个子集吧,很多挺重要的消息都不会出现在debug口

事实上,在蓝牙网关内部,蓝牙网关自身的功能实现方式,也是串口,用的是另外一个,称为主控串口的(所有有用的消息都会出现)。

如果动手能力强,把这个主控串口上的消息利用两个串口给转发出来(ESP32就很理想),就可以把蓝牙网关彻底搞透了——猜测这个主控串口上跑的还是明文。

这么做能实现的效果,虽然和蓝牙开锁还有差距,但可以让HA下发临时开锁密码给门锁。

要实现蓝牙开锁的话,分析,应该弄清手机和门锁之间的加密方式、并把手机发给门锁的蓝牙指令解密出来才行,蓝牙抓包?这个难度似乎就比较大了,我只是瞎想,自己并没有这个能力~
回复

使用道具 举报

11

主题

108

帖子

833

积分

论坛技术达人

积分
833
金钱
715
HASS币
50
 楼主| 发表于 2020-7-23 19:23:40 | 显示全部楼层
XCray 发表于 2020-7-23 15:52
首先,蓝牙开锁是手机直接和门锁交互,应该是不经过蓝牙网关的。

其次,我们现在使用的、板子上提供针脚 ...

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 04:26 , Processed in 0.059908 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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