感谢n大!ESP Home基于蓝牙网关

您所在的位置:网站首页 蓝卡设备 感谢n大!ESP Home基于蓝牙网关

感谢n大!ESP Home基于蓝牙网关

2024-07-15 06:35| 来源: 网络整理| 查看: 265

本帖最后由 XCray 于 2021-5-27 12:50 编辑

20210527更新:

n大已近乎完美地实现了这个思路!   ESPHOME通过创米小白TTL输出接入米家蓝牙设备   https://bbs.hassbian.com/thread-11351-1-1.html

我去年11月底看到之后就下载了n大的代码,只不过当时沉迷于雪场,竟然就把这件事儿给忘了。今天又看到,干脆动起手来!

简单修改一下代码,主要是mqtt消息topic,这样ha侧的配置就不用动了,无缝切换,爽!

代码已上传至我原来的帖子: [新奇玩法] (多个)蓝牙网关 TTL->MQTT,支持任意米家蓝牙设备接入HA/NR

下面是以前的内容,基本不用看了: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 说在前面:这个思路只是试验性质的,意在摸清ESPHome实现TTL转发的思路。实际上我自己也没有正式用过。

简单归纳一下,用ESP转发TTL有3个实现的思路:

1、killadm大神的LOCK2MQTT,我自己改造过代码以适应我手上的硬件。这个思路的主要特点是在ESP模块上完成消息的筛选和各种转换(实现对蓝牙设备的适配)。显然,写代码前必须对每种蓝牙设备的消息都了如指掌才行,现在这个思路我已经不用了。

2、就是本贴,还是上一个思路,用ESPHome完成,试验性质,已不再发展。

3、个人认为最合理最科学的思路,就是我的签名贴里说的,主要特点是ESP模块只做最少的工作,只是把消息转发出来,天然适配所有类型的蓝牙设备,一切适配工作都在HA或NR里完成。你有什么设备,就针对什么设备编辑yaml文件就可以了。ESP模块可以和蓝牙网关1:1贴身配置。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

参见我发的其他帖子,之前尝试了用树莓派+python、ESP8266+C的方法(源自killadm大神的LOCK2MQTT),完成蓝牙网关TTL消息的接收、整理以及向mqtt的转发,实现了蓝牙智能门锁(以及花花草草、蓝牙温湿度2)的HA接入。

树莓派跑这么简单的任务确实浪费,ESP8266采用C语言程序(LOCK2MQTT),虽然可以完成任务,但和esp home毫无关系,感觉有点格格不入。

初步体会到ESP Home的强大和方便之后,便想着如何把这个任务在ESP Home下实现,经过研读官方文档、参考已有案例,终于初步实现了这个想法。

这个方案相比LOCK2MQTT的好处或优势(其实是esphome原生api相对于mqtt的好处):

0、思路更简洁,TTL消息直接转化成传感器状态 1、不依赖于MQTT 2、配置改变无需重启HA 3、ESP Home统一管理 4、无需安装Arduino IDE等任何开发环境5、hass侧配置更简单(实际上,根本不需要配置,一切都在ESPHome这里搞定)。 6、据说效率更高、更稳定、延迟更低

实施方法: 0. 安装好ESP Home 1. 编辑保存ttlsensors.h文件(保存到HA的/config/esphone目录里) 2. ESP Home里新建结点(参考压缩包里的yaml文件) 3. upload(esphome会自动编译上传,当然如果是模块第一次刷固件,还得usb)

我这里提供的代码针对的是我使用的榉树门锁、花花草草监测仪、蓝牙温湿度2,需要根据各自的情况和需要修改,注意yaml和.h的匹配

已知问题: 1. 时间戳未转换成可读格式   哪位编程高手给指点一下,在这个环境下如何把时间戳转换成可读的格式? 2. 每次接收ttl消息会有个错误提示,不影响正常工作。   提示内容:[E][uart:096]: Reading from UART timed out at byte 0!   我也不知道这个错误提示是咋回事~~~所以也不知道怎么消除,等高手出手吧。。。

TTL_sensors-on-ESPHome-master.zip (3.02 KB, 下载次数: 249) 2020-6-19 19:40 上传 点击文件名下载附件 第114行是个错误语句,上传时忘记删除了,用之前需要把它注释掉或者删掉。。。否则编译报错

ESP_LOGD("TTLSensor", topic.c_str()); esphome我也是初学乍练,让大家见笑了

有图有真相: esphome.png 登录/注册后可看大图

esphome.png (127.09 KB, 下载次数: 0)

下载附件

2020-6-19 20:09 上传

熟悉ESP Home的朋友一看便知。

另外,任务很简单,ESP8266/ESP32都可以运行。

期待编程高手完善代码,C++我就没好好学过,arduino也没玩过,编程能力明显跟不上。 https://github.com/xcray/TTL_sensors-on-ESPHome



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3