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

 找回密码
 立即注册
查看: 2812|回复: 21

[技术探讨] ESPHOME 与HA内的开关联动

[复制链接]

26

主题

169

帖子

652

积分

高级会员

Rank: 4

积分
652
金钱
483
HASS币
0
发表于 2021-12-15 06:45:18 | 显示全部楼层 |阅读模式
请问这样的代码可以与HA已存在的开关联动在一起吗。
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO1
      inverted: True
      mode: INPUT_PULLUP
    on_press:
      then:
        - switch.toggle:
            id: relay_1         这个id  可以修改成与已存在的开关ID联动吗?


想用一块ESP8266  来接4位点动开关的面板。每位开关控制不同的设备。意思差不多是想为这些设备增加个随意贴开关。

或者有没有别的代码可以实现这功能?




回复

使用道具 举报

23

主题

644

帖子

4444

积分

元老级技术达人

积分
4444
金钱
3785
HASS币
30

教程狂人

QQ
发表于 2021-12-15 08:28:37 | 显示全部楼层
对ESPhome不太熟悉,我用Tasmota是配合rule规则实现的,同理,ESPhome也可以使用Automations功能,开关动作触发后,使用mqtt.publish命令推送对应实体灯的MQTT消息
回复

使用道具 举报

3

主题

184

帖子

3102

积分

论坛元老

Rank: 8Rank: 8

积分
3102
金钱
2918
HASS币
0
发表于 2021-12-15 08:51:54 来自手机 | 显示全部楼层
https://esphome.io/components/api.html
回复

使用道具 举报

4

主题

260

帖子

2427

积分

金牌会员

Rank: 6Rank: 6

积分
2427
金钱
2167
HASS币
0
发表于 2021-12-15 09:09:29 | 显示全部楼层
不建议直接在这里处理,可以把esphome的设备作为一个trigger,然后接收到event后在HA里面或者node-red里面去写关联逻辑就行了,这样无论从维护或者升级的角度来讲都比直接搞在esphome的设备里面要方便的多
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2021-12-15 09:29:52 | 显示全部楼层
随意贴这种东西还是直接按钮到设备比较,经过网关或者服务器体验都不好。
Nero
回复

使用道具 举报

9

主题

250

帖子

2170

积分

金牌会员

Rank: 6Rank: 6

积分
2170
金钱
1920
HASS币
15
发表于 2021-12-15 10:44:27 | 显示全部楼层
可以,

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO16
      mode: INPUT
      inverted: True
    name: "${device_name}_1"
      
    on_multi_click:
    - timing:
        - ON for at most 0.5s
        - OFF for at least 0.2s
      then:
        - switch.toggle: load1
    - timing:
        - ON for at most 0.5s
        - OFF for at most 0.5s
        - ON for at most 0.5s
        - OFF for at least 0.2s
      then:
        - homeassistant.service:
            service: switch.toggle
            data:
              entity_id: switch.sonoff_s20b #魚缸燈
    - timing:
        - ON for 1s to 3s
        - OFF for at least 0.2s
      then:
        - homeassistant.service:
            service: switch.toggle
            data:
              entity_id: switch.sonoff_basic134 #魚缸過濾
回复

使用道具 举报

26

主题

169

帖子

652

积分

高级会员

Rank: 4

积分
652
金钱
483
HASS币
0
 楼主| 发表于 2021-12-15 12:30:49 | 显示全部楼层

你好,请问这些代码是放在哪里的。我放在ESPHOME里提示有错误。

Failed config

binary_sensor.gpio: [source /config/esphome/esp01s.yaml:30]
  platform: gpio
  pin:
    number: GPIO2
    mode: INPUT
    inverted: True
  name: ${device_name}_1
  on_multi_click:  [source /config/esphome/esp01s.yaml:38]
    - [source /config/esphome/esp01s.yaml:38]
      timing:
        - ON for at most 0.5s
        - OFF for at least 0.2s
      then:  [source /config/esphome/esp01s.yaml:42]
        - [source /config/esphome/esp01s.yaml:42]
         
          Unable to find action with the name 'switch.toggle'.
          switch.toggle: load1 [source /config/esphome/esp01s.yaml:42]
回复

使用道具 举报

43

主题

409

帖子

3657

积分

元老级技术达人

积分
3657
金钱
3243
HASS币
136
发表于 2021-12-15 12:33:12 | 显示全部楼层
可以实现的:
需要用
  - platform: homeassistant   #api模式有效,可以从hass 取数据
    name: "hass_senseor"
    id: hassdata(在esphome里使用的id)
    entity_id: sensor.txt_esphome(这个就是hass里的设备id)
回复

使用道具 举报

26

主题

169

帖子

652

积分

高级会员

Rank: 4

积分
652
金钱
483
HASS币
0
 楼主| 发表于 2021-12-15 12:55:26 来自手机 | 显示全部楼层
hunterfox 发表于 2021-12-15 12:33
可以实现的:
需要用
  - platform: homeassistant   #api模式有效,可以从hass 取数据

不是很懂,可以帮我写个完整代码我去复制吗?谢谢
回复

使用道具 举报

43

主题

409

帖子

3657

积分

元老级技术达人

积分
3657
金钱
3243
HASS币
136
发表于 2021-12-15 13:30:52 | 显示全部楼层
xinba8 发表于 2021-12-15 12:55
不是很懂,可以帮我写个完整代码我去复制吗?谢谢

我看了具体介绍,此方法,目前只能拉取hass里的传感器数据,暂时不支持开关状态拉取。建议你通过NR来配置联动
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-19 21:26 , Processed in 0.058911 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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