找回密码
 立即注册

微信扫码登录

搜索
查看: 3011|回复: 43

[技术探讨] 【ESPHome】 ESP-NOW网关可行性落地,8266/esp32全都有~

[复制链接]

82

主题

422

回帖

4890

积分

元老级技术达人

积分
4890
金钱
4346
HASS币
230
发表于 2026-8-17 01:10:43 | 显示全部楼层 |阅读模式

前言

蓝牙网关 zigbee网关 听得多了,ESP-NOW网关有没有搞头?有肯定是有的,但是当前有几个拦路虎

  1. 存在接入节点数量限制,中心设备的 peer 表上限在20个,除去一个广播peer,为19个。

  2. esphome官方(截止2026.8)没有对老旧的esp8266实现espnow支持。

  3. esphome官方(截止2026.8)的ESP-NOW Packet Transport平台只能传输浮点数和布尔值,字符串只能走裸消息收发,编写复杂的lambda来编解码裸消息显然不是容易维护的方案。

思考解决方案:

1、中心设备peer表限制,可以让一部分不重要的消息走广播来规避,但是广播缺少了单播的ACK机制。
考虑到单个ESP设备的信号覆盖范围不大,可以使用区域中心化方案来缩小服务范围和节点接入数,以该设备作为该区域的自动化中枢,实现完全离HA与离网可用的自动化方案。
espnow通讯是基于mac地址的,因此没有网关下属节点相互隔离一说,想跨网关调数据,也只是再加一个peer mac的事
image-20260817010513-ub9olsx.png

2、esp8266原生支持espnow,这个没有硬件级别的限制,只是8266只支持espnow v1,与esp32的espnow v2存在一些差异,但是v2是向下兼容v1的,因此主要工作是为esphome移植适配8266专用的espnow组件,并与esp32的官方espnow组件实现互通,同时兼容Packet Transport平台

3、复杂lambda编写这个好解决,使用宏接口来简化裸消息编解码即可

解决方案落地

  1. 针对esp8266开发了espnow外部组件,实现与官方版本的单播广播通讯,并且支持Packet Transport平台,配置方式与官方几乎无异
    image-20260817001605-jc6499f.png )

  2. 针对本文传感器的通讯,开发了简易通讯助手外部组件,大大简化了espnow 原始信息的编解码处理与路由发布,同时为espnow节点提供真实时间同步功能
    image-20260817001941-5metdpk.png

  3. 以上两个组件,因为说明文档字数过多,不便于此处发布,后续将另发帖子公布,有兴趣的可以关注一波

实验平台

节点设备

  • 最近刚好改造了几个智能开关,有c3的有8266的,刚好可以测试不同系列芯片的espnow互通性
    image-20260816234023-pv39v8t.png

网关设备

  • 拿出来之前做的一个带有线网口的esp32s3项目,这个s3无线信号很拉,刚好可以用来测试espnow失效的信号值边界,也可以同时验证有线网关的可行性

    image-20260816234258-sliuq7q.png

实验效果

  • 完成了esp32c3与esp8266的同时接入,同时接入4个节点,功能实体无异常,通讯反应灵敏。

  • 使用了esphome的sub device来组织节点与网关的结构,完美适配这种中心化设备的使用场景

    image-20260816234903-t46y38t.png

  • gateway端实体示列,目前只做了节点在线统计,与群控重启
    image-20260816235047-q1m5yh5.png

  • 由于4个插座节点实体基本一致,这里只展示一个,espnow的一大优点就是无连接通讯,因此节点的wifi默认都是不启动的,但是有时候需要调试或者更新固件,需要用到wifi,
    这里就设置了一个wifi开关,打开后,节点就会恢复wifi连接,同时不影响espnow通讯,关闭后,就会恢复为纯espnow节点。
    另外,长按物理键也可以打开wifi,作为一个兜底方案,防止节点失联。
    这套方案,很好地解决了纯espnow节点难以维护与调试的问题,毕竟不可能每次ota,都把节点拆下来线刷的,当然无线ota刷挂了,那就是你自己水平问题了~
    image-20260816235323-d4r0wyi.png

  • 因为esphome本身就没有运行时新增组件的能力,因此每加入一个节点,就要修改一次gateway的配置并ota固件,不过都玩到这份上了,编译刷写早已是家常便饭,嫌麻烦的我不知道你为什么要看到这里。

  • 目前这个实验平台,单个节点不到800行配置,网关不到1500行,每增加一个节点,网关需要增加300行左右配置,但是大部分都可以复用,工作量不会很大

部分配置示列


游客,如果您要查看本帖隐藏内容请回复


✅以上~

评分

参与人数 3金钱 +56 HASS币 +10 收起 理由
sorrypqa + 20 高手,这是高手!
admin + 20 + 10 虽然看不懂,但感觉很厉害的样子。 ...
polisher + 16 感谢楼主分享!

查看全部评分

全网同名,只发干货
回复

使用道具 举报

233

主题

3508

回帖

1万

积分

元老级技术达人

积分
11785
金钱
8024
HASS币
100
发表于 2026-8-17 01:23:17 | 显示全部楼层
好东西,空了研究
公众号:Home Assistant分享
回复

使用道具 举报

3

主题

193

回帖

1717

积分

金牌会员

积分
1717
金钱
1521
HASS币
0
发表于 2026-8-17 07:33:42 | 显示全部楼层
老大高产。学习了~
回复

使用道具 举报

0

主题

35

回帖

604

积分

高级会员

积分
604
金钱
569
HASS币
0
发表于 2026-8-17 07:55:11 | 显示全部楼层
学习学习
回复

使用道具 举报

69

主题

1811

回帖

2万

积分

元老级技术达人

积分
21570
金钱
19680
HASS币
80
发表于 2026-8-17 08:42:26 | 显示全部楼层
我记得以前的ESPHome,以太网和ESPNOW是不能同时启用的
回复

使用道具 举报

103

主题

695

回帖

3541

积分

论坛元老

积分
3541
金钱
2743
HASS币
50
发表于 2026-8-17 08:50:50 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

3

回帖

56

积分

注册会员

积分
56
金钱
53
HASS币
0
发表于 2026-8-17 08:57:22 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

55

回帖

792

积分

高级会员

积分
792
金钱
737
HASS币
0
发表于 2026-8-17 09:08:26 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

0

主题

50

回帖

544

积分

高级会员

积分
544
金钱
494
HASS币
0
发表于 2026-8-17 10:57:56 | 显示全部楼层
这个很棒啊,学习一下。
回复

使用道具 举报

82

主题

422

回帖

4890

积分

元老级技术达人

积分
4890
金钱
4346
HASS币
230
 楼主| 发表于 2026-8-17 11:09:55 | 显示全部楼层
sorrypqa 发表于 2026-8-17 08:42
我记得以前的ESPHome,以太网和ESPNOW是不能同时启用的

2026.8新增支持了wifi与ethernet组件的共存配置,但是espnow不依赖wifi组件,旧版本上espnow与ethernet共存也是没有问题的
全网同名,只发干货
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )|网站地图

GMT+8, 2026-9-16 05:53 , Processed in 0.018825 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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