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

 找回密码
 立即注册
查看: 927|回复: 3

[硬件DIY] 请问各位大神用esphome怎么写一个控制4路继电器的代码阿

[复制链接]

14

主题

50

帖子

468

积分

论坛分享达人

积分
468
金钱
418
HASS币
10
发表于 2023-5-9 22:33:29 | 显示全部楼层 |阅读模式
请问各位大神用esphome怎么写一个控制4路继电器的代码阿,我这样写HA里面只有一个开关

esphome:
  name: 4ljdq
  friendly_name: jdq

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xm3+fXwQbc+HCjMvc0Kauk8ciXliOycM0THVV7LzbQ4="

ota:
  password: "821ca9d191fb11c9802a0db44bb08481"

wifi:
  ssid: "111"
  password: "2323232323"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Csjdq Fallback Hotspot"
    password: "7W9WJX5mCxKK"

captive_portal:

switch:
  - platform: gpio
    name: 'SW1'
    pin: GPIO5

  - platform: gpio
    name: 'SW2'
    pin: GPIO4

  - platform: gpio
    name: 'SW3'
    pin: GPIO14

  - platform: gpio
    name: 'SW4'
    pin: GPIO12      


回复

使用道具 举报

8

主题

502

帖子

3340

积分

论坛元老

Rank: 8Rank: 8

积分
3340
金钱
2838
HASS币
5
发表于 2023-5-10 02:34:15 | 显示全部楼层
esphome:
  name: my_relay
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "WiFi名称"
  password: "WiFi密码"

# 4路继电器驱动器配置,4路继电器分别连接D1,D2,D3,D4引脚
# 注意,这里的引脚号是ESP8266 GPIO的编号,并非实际的引脚号
# 请参考ESP8266引脚图使用正确的引脚号
output:
  - platform: gpio
    name: "relay_1"
    id: relay_1
    pin: D1
  - platform: gpio
    name: "relay_2"
    id: relay_2
    pin: D2
  - platform: gpio
    name: "relay_3"
    id: relay_3
    pin: D3
  - platform: gpio
    name: "relay_4"
    id: relay_4
    pin: D4

# 通过MQTT控制继电器
mqtt:
  broker: mqtt_broker_ip_address
  username: mqtt_username
  password: mqtt_password

# 控制面板,用于在Home Assistant上控制继电器,以及实现状态查询
switch:
  - platform: mqtt
    name: "relay1"
    state_topic: "my_relay/relay1_status"
    command_topic: "my_relay/relay1"
    qos: 0
  - platform: mqtt
    name: "relay2"
    state_topic: "my_relay/relay2_status"
    command_topic: "my_relay/relay2"
    qos: 0
  - platform: mqtt
    name: "relay3"
    state_topic: "my_relay/relay3_status"
    command_topic: "my_relay/relay3"
    qos: 0
  - platform: mqtt
    name: "relay4"
    state_topic: "my_relay/relay4_status"
    command_topic: "my_relay/relay4"
    qos: 0

# 定义实体状态,传送给Home Assistant
# 这里实现了状态查询功能
interval:
  - interval: 1s
    then:
      - mqtt.publish:
          topic: "my_relay/relay1_status"
          payload: !lambda |-
            if (id(relay_1).state) {
              return "ON";
            } else {
              return "OFF";
            }
      - mqtt.publish:
          topic: "my_relay/relay2_status"
          payload: !lambda |-
            if (id(relay_2).state) {
              return "ON";
            } else {
              return "OFF";
            }
      - mqtt.publish:
          topic: "my_relay/relay3_status"
          payload: !lambda |-
            if (id(relay_3).state) {
              return "ON";
            } else {
              return "OFF";
            }
      - mqtt.publish:
          topic: "my_relay/relay4_status"
          payload: !lambda |-
            if (id(relay_4).state) {
              return "ON";
            } else {
              return "OFF";
            }

上述代码中,我们首先配置了WiFi模块的连接和4个继电器驱动器的GPIO引脚等基本设置。接着,我们通过MQTT实现了在Home Assistant中通过MQTT控制继电器的功能。同时,订阅了相关的状态主题信息,用于状态查询。


在使用此代码之前,请根据你使用的芯片型号和引脚连接,进行必要的修改。你还需要根据你的MQTT服务器信息,进行相应的修改。
回复

使用道具 举报

14

主题

50

帖子

468

积分

论坛分享达人

积分
468
金钱
418
HASS币
10
 楼主| 发表于 2023-5-10 10:07:39 | 显示全部楼层
Midnight 发表于 2023-5-10 02:34
esphome:
  name: my_relay
  platform: ESP8266

感谢大佬,很详细
回复

使用道具 举报

50

主题

1300

帖子

4892

积分

论坛DIY达人

积分
4892
金钱
3592
HASS币
20
发表于 2023-5-10 10:16:23 | 显示全部楼层
https://bbs.hassbian.com/forum.p ... mp;extra=#pid526900

这里有2种4路继电器的参考配置
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 04:24 , Processed in 0.051083 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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