找回密码
 立即注册
查看: 728|回复: 14

两个esphome设备脱离ha直控方法分享(手拉手教程)

[复制链接]

174

主题

2598

回帖

8651

积分

元老级技术达人

积分
8651
金钱
5874
HASS币
30
发表于 2025-5-8 14:36:46 | 显示全部楼层 |阅读模式
本帖最后由 bugensui 于 2025-5-8 23:53 编辑

之前一直在研究2个esp设备可以在脱离homeassist(或者说ha系统出问题的时候)互控或者说直控,使用场景:我目前想到的最实用的可能就2个吧!

1,卧室的双控开关,一般进卧室有个开关(我们暂定他是主开关),卧室床头柜这里有另外1个开关(我们暂定是辅开关),假设主开关是esphome的,辅开关也可以用无线开关代替(很多协议:比如zigbee,蓝牙等),缺点:无线开关一般都是电池,要换电池,并且需要接入ha。这样双控,可能会有延迟。如果辅开关是装esphome的,副开关只需要接零火线即可,可以不用接入ha,双控开关灯效果跟有线一样,没有延迟,不用更换电池,并且辅开关可以加装其他传感器:比如温湿度,做蓝牙网关等,我用的是sonoff实体开关改装模块。主开关是包含灯控线,辅开关不包括灯控线只有零火线。

微信图片_20250508143710副本.jpg



2,人来开灯人走关灯脱离ha,前提是人体存在传感器和灯(或者开关模块)都是esphome的,这里灯(或者开关模块)是主设备,人在传感器是辅设备。

使用场景可能不适合所有人,但是大家可以用这个方法也可以控制其他的一些场景,当然可能大家会说ha很稳定,很少宕机,没有必要,但是这种方法是给有这方面需要的,只是一种思路,并不特指这2种场景。

实现方法用的是esphome的udp组件(可能是esphome 2024年7月版后的才支持这个组件),详细情况可以去官方文档了解。2个esp设备通过udp通信。此组件的目的是允许 ESPHome 节点通过 IP 网络直接相互通信。它允许传感器和二进制传感器的状态通过 UDP 数据包广播到同一 LAN 上的其他节点,或广播到特定的 IP 地址(这些 IP 地址可能位于远程但可访问的网络中)。节点可以是广播传感器数据的提供者,也可以是接收来自一个或多个提供者的传感器数据的消费者。一个节点可以同时是提供者和消费者。


以下是2个设备的主要udp代码(esphome),通过辅开关来控制主开关上的灯(类似无线开关的效果)

主设备


udp:

output:
  # the 3 lines below control the main relay
  - platform: gpio
    pin: GPIO4
    id: main_light_relay  

light:
  - platform: binary
    name: "shufangdeng"
    output: main_light_relay  
    id: light_id

binary_sensor:
  - platform: gpio
    name: relay_toggle
    pin:
      number: GPIO12
      mode:
        input: true
        pullup: true
    id: gpio_light_id
    on_press:
      then:
        - light.toggle:
            id: light_id
    on_release:
      then:
        - light.toggle:
            id: light_id

  - platform: udp
    provider: esp32kf2
    id: relay2_sensor
    on_press:
      light.toggle: light_id
    on_release:
      light.toggle: light_id



辅设备(理解成1个按钮传感器的作用,把状态通过udp传递到主开关上,好做条件触发)


esphome:
  name: esp32kf2
  friendly_name: esp32kf2

udp:
  binary_sensors:
    - relay2_sensor



binary_sensor:

  - platform: gpio
    name: relay_toggle
    pin:
      number: GPIO25
      mode:
        input: true
        pullup: true
    id: relay2_sensor












评分

参与人数 2金钱 +15 收起 理由
TianYa + 5 论坛有你更精彩!
tianzhuang55 + 10 高手,这是高手!

查看全部评分

回复

使用道具 举报

0

主题

45

回帖

477

积分

中级会员

积分
477
金钱
432
HASS币
0
发表于 2025-5-8 17:23:27 | 显示全部楼层
我家里是用的16路esphome控制器,做全屋灯的控制,一少旦停电重启ha,最要3-5分钟才能控制灯(因为ha是装在软路由里的),所以也想研究一个esphome的开关面板,能脱离ha直接控制16路灯的。不知道espnow能否实现,继续蹲楼主的后续。
回复

使用道具 举报

174

主题

2598

回帖

8651

积分

元老级技术达人

积分
8651
金钱
5874
HASS币
30
 楼主| 发表于 2025-5-8 17:31:20 | 显示全部楼层
本帖最后由 bugensui 于 2025-5-8 17:34 编辑
TianYa 发表于 2025-5-8 17:23
我家里是用的16路esphome控制器,做全屋灯的控制,一少旦停电重启ha,最要3-5分钟才能控制灯(因为ha是装在 ...

我的这个也是要网络的,但是内网就行,哪怕外网不通也可以,走的是内网协议。停电其实在城市里比较少的,如果用我的这个,停电的话,估计来电后,可能会影响30秒吧,来电后路由器重启,到esp设备端连上路由器,预计30秒内。

但是刷了esphome的智能开关(主开关)是本地执行的,不需要网络,我是传统机械开关加装的sonoff开关模块,断内网也不影响机械开关的开关灯,但是会影响辅开关的操作,因为辅开关走的是udp网络控制灯的。espnow我没有研究过。

你的16路esphome控制器,和灯,开关是怎么接线的呢?
回复

使用道具 举报

2

主题

22

回帖

527

积分

高级会员

积分
527
金钱
503
HASS币
0
发表于 2025-5-8 21:02:48 | 显示全部楼层
在黑51论坛看到一用ESP8266做MQTT服务器,手机或其它ESP8266做MQTT客户端这就只需要内网,脱离开HA了.
回复

使用道具 举报

174

主题

2598

回帖

8651

积分

元老级技术达人

积分
8651
金钱
5874
HASS币
30
 楼主| 发表于 2025-5-8 22:59:42 | 显示全部楼层
sdvic 发表于 2025-5-8 21:02
在黑51论坛看到一用ESP8266做MQTT服务器,手机或其它ESP8266做MQTT客户端这就只需要内网,脱离开HA了. ...

那你这样不是还得配置个mqtt呀,我连mqtt都不需要,esphome原生支持
回复

使用道具 举报

44

主题

1810

回帖

7780

积分

元老级技术达人

积分
7780
金钱
5901
HASS币
146
发表于 2025-5-8 23:19:03 | 显示全部楼层
我来回复一个,辛苦折腾一下tasmota,想要的效果就都OK了。
1、离线自工作。可web控制。
2、同样可以接入ha
冬瓜版HAOS从现在开始!
回复

使用道具 举报

174

主题

2598

回帖

8651

积分

元老级技术达人

积分
8651
金钱
5874
HASS币
30
 楼主| 发表于 2025-5-8 23:41:53 | 显示全部楼层
冬瓜HA 发表于 2025-5-8 23:19
我来回复一个,辛苦折腾一下tasmota,想要的效果就都OK了。
1、离线自工作。可web控制。
2、同样可以接入ha ...

esphome也可以web控制的,也可以自己做个web页面来控制esp,不用ha
回复

使用道具 举报

55

主题

1407

回帖

6379

积分

论坛DIY达人

积分
6379
金钱
4917
HASS币
30
发表于 2025-5-9 07:16:04 | 显示全部楼层
本帖最后由 sorrypqa 于 2025-5-9 07:58 编辑
TianYa 发表于 2025-5-8 17:23
我家里是用的16路esphome控制器,做全屋灯的控制,一少旦停电重启ha,最要3-5分钟才能控制灯(因为ha是装在 ...

你这种情况其实搞315M、433M和Lora这类的开关面板与控制器直连通讯才最简单好用
回复

使用道具 举报

19

主题

265

回帖

2454

积分

论坛DIY达人

积分
2454
金钱
2165
HASS币
20
发表于 2025-5-9 09:30:29 | 显示全部楼层
您可以采用ESP-NOW协议直接通讯(这个需要一些开发能力),也可以使用ESP32的蓝牙连接(这个比较简单)。但如果您仅是应用于双控开关,采用单刀双掷继电器,通过常规的双控线路就可以实现了(HA搞个自定义开关模板就OK了)。
回复

使用道具 举报

174

主题

2598

回帖

8651

积分

元老级技术达人

积分
8651
金钱
5874
HASS币
30
 楼主| 发表于 2025-5-9 10:07:47 | 显示全部楼层
sorrypqa 发表于 2025-5-9 07:16
你这种情况其实搞315M、433M和Lora这类的开关面板与控制器直连通讯才最简单好用 ...

是的,你这个也是很好的方案,每个家里的情况不一样。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-1 12:28 , Processed in 0.303531 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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