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

 找回密码
 立即注册
查看: 1382|回复: 10

[技术探讨] 按钮控制两路继电器,接入homeass,esphome 怎样编写程序

[复制链接]

12

主题

81

帖子

458

积分

中级会员

Rank: 3Rank: 3

积分
458
金钱
377
HASS币
0
发表于 2023-5-25 16:51:46 | 显示全部楼层 |阅读模式
本帖最后由 tettr 于 2023-5-25 16:53 编辑

1、如图,两个按钮开关 分别控制 两个继电器的 开和关,同时也可以在homeass上,控制,esphome 怎样编写程序
2、懂的朋友,指点一下,谢谢



111.png
回复

使用道具 举报

30

主题

526

帖子

2323

积分

金牌会员

Rank: 6Rank: 6

积分
2323
金钱
1792
HASS币
20
发表于 2023-5-25 17:19:55 | 显示全部楼层
switch:
  - platform: gpio
    pin: 25
    name: "Living Room Dehumidifier"
回复

使用道具 举报

13

主题

398

帖子

2421

积分

金牌会员

Rank: 6Rank: 6

积分
2421
金钱
2023
HASS币
0
发表于 2023-5-25 17:51:17 | 显示全部楼层
本帖最后由 ylilike 于 2023-5-25 17:52 编辑
switch:
  - platform: gpio
    name: relay_1
    id: relay_1
    pin:
      number: D1
      inverted: true
  - platform: gpio
    name: relay_2
    id: relay_2
    pin:
      number: D2
      inverted: true         

binary_sensor:
  - platform: gpio
    pin: D5
    name: "button1"
    on_press:
      then:
        - switch.toggle: relay_1

  - platform: gpio
    pin: D6
    name: "button2"
    on_press:
      then:
        - switch.toggle: relay_2
若然,一切若然~
回复

使用道具 举报

12

主题

81

帖子

458

积分

中级会员

Rank: 3Rank: 3

积分
458
金钱
377
HASS币
0
 楼主| 发表于 2023-5-25 23:25:31 | 显示全部楼层
如何是mqtt 通信,有如何写的
回复

使用道具 举报

32

主题

302

帖子

1734

积分

金牌会员

Rank: 6Rank: 6

积分
1734
金钱
1427
HASS币
40
发表于 2023-5-26 12:10:40 | 显示全部楼层
本帖最后由 lione95678 于 2023-5-26 12:17 编辑

esphome无需mqtt即可和homeassistant建立连接,如果你想在收到指定的mqtt信息后触发这个继电器,可以使用esphome中mqtt的on_message触发或者on_json_message触发。或者让homeassistant在收到指定的mqtt信息后触发这个刷了esphome的模块。
需要esphome增加mqtt的,详见https://www.esphome.io/components/mqtt.html
例子:
mqtt:
  broker: 10.0.0.2   ##mqtt服务器的ip地址
  username: livingroom ##mqtt服务器的用户名
  password: !secret mqtt_password  ##mqtt服务器的密码
  on_message:  ##使用此配置选项,您可以在收到有关特定主题的 MQTT 消息时编写复杂的自动化程序
    topic: my/custom/topic  #mqtt主题名称
    qos: 0
    then:
      - switch.turn_on: some_switch  #switch开关的ID

##或者复杂的,使用此配置选项,您可以在收到 JSON 编码的 MQTT 消息时编写复杂的自动化程序。要使用消息内容,请使用lambdax模板,已解码的消息有效负载在该 lambda 中的 名称下可用。
  on_json_message:
    topic: the/topic
    then:
      - light.turn_on:
          id: living_room_lights

          transition_length: !lambda |-
            int length = 1000;
            if (x.containsKey("length"))
              length = x["length"];
            return length;

          brightness: !lambda "return x["bright"];"

          effect: !lambda |-
            const char *effect = "None";
            if (x.containsKey("effect"))
              effect = x["effect"];


回复

使用道具 举报

12

主题

81

帖子

458

积分

中级会员

Rank: 3Rank: 3

积分
458
金钱
377
HASS币
0
 楼主| 发表于 2023-5-28 13:13:24 | 显示全部楼层

你好,谢谢,  测试了你写代码,按钮开关是没有用,实现不了 控制继电器,
在ha 上就可以控制,代码需要如何修改的?
回复

使用道具 举报

32

主题

302

帖子

1734

积分

金牌会员

Rank: 6Rank: 6

积分
1734
金钱
1427
HASS币
40
发表于 2023-6-27 12:54:49 | 显示全部楼层
使用esphome,首先你要明确,你的继电器就是esphome中的switch,你的开关就是esphome的binary_sensor,也就是一个二进制传感器。
然后你所谓的开关是怎么样类型的,那种轻触开关(也就是按一下自动回弹的)还是船型开关(开和关的状态都是需要你操作一次的)?
ylilike给你的代码,涉及到了一个自动化,
    on_press:
      then:
        - switch.toggle: relay_1
按照这个代码,也就是你按下你所谓的开关,就会自动切换一次你继电器的状态。

on_press(可选,自动化):按下按钮时执行的自动化。请参阅on_press。
on_release(可选,自动化):释放按钮时执行的自动化。请参阅on_release。
on_state(可选,自动化):发布状态更改时执行的自动化。请参阅on_state。
on_click(可选,自动化):按住按钮指定时间段时执行的自动化。请参阅on_click。
on_double_click(可选,自动化):在指定时间段内按两次按钮时执行的自动化。请参阅on_double_click。
on_multi_click(可选,自动化):按特定顺序按下按钮时执行的自动化。请参阅on_multi_click。

再说一下你的硬件接线方面,按照你的说法,ha可以控制继电器,那么继电器接线应该没有问题,开关的接线你是怎么接的?
开关是2个接线端子,一头接esp8266的gpio,另外一头你应该接esp8266的gnd或者vcc,如果接线正确,你可以在hass中看一下binary_sensor的状态,随着你开关的变化,binary_sensor的状态应该会变化的。
以上都没有问题的话,ylilike给你的代码就能实现你说的功能了
回复

使用道具 举报

12

主题

81

帖子

458

积分

中级会员

Rank: 3Rank: 3

积分
458
金钱
377
HASS币
0
 楼主| 发表于 2023-6-28 16:43:23 | 显示全部楼层
lione95678 发表于 2023-6-27 12:54
使用esphome,首先你要明确,你的继电器就是esphome中的switch,你的开关就是esphome的binary_sensor,也就 ...

谢谢,这朋友的回答,是轻触开关, 代码已经写好,可以实现功能。
回复

使用道具 举报

7

主题

61

帖子

545

积分

高级会员

Rank: 4

积分
545
金钱
484
HASS币
0
发表于 2023-6-29 10:44:16 | 显示全部楼层
留个脚印,以后备查
回复

使用道具 举报

7

主题

22

帖子

119

积分

注册会员

Rank: 2

积分
119
金钱
97
HASS币
0
发表于 2023-6-30 14:11:30 | 显示全部楼层
真厉害。留一手下次自己也做一个
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 04:37 , Processed in 0.063250 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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