DIY86型智能开关 EspHome固件 接入Home assistant 源码

之前老家院子比较大,传统布线成本过高,因此自制一个智能开关实现远程控制。

主控用ESP12S模块,交流变直流电源用金升阳24V的隔离电源模块,辅助电路EMI苻合CE,UL标准。

主要是ESP8266成本低,功耗也很低,待机只有0.5瓦,

全年也是0.5*24*365=4380瓦/时,也就是4.38度电,约合3块钱电费

供电采用零火双线设计,安全有保证,(单火线供电会有间歇放电风险)

继电器额定电流为10安,建议接入不超过250W的设备

引出继电器L-NC(常通),L-NO(常断),两个引脚,为输出火线

用电设备(灯)火线接L-NC(常通)为默认通电,继电器动作时为断电

用电设备(灯)火线接L-NO(常断)为默认断电,继电器动作时为通电

市电L引脚与继电器公共端连通,两个N引脚 互连通,

 若原输出控制线只有一根火线时,可以只接输入端的火线和零线不用接输出端零线

输入有三个开关,

两边两个独立开关,可以自由定义,用于远程控制。

两边的LED联动对应的开关,LED亦可单独联动远端设备(建议这么做,可以显示远端设备的工作状态)。

中间的LED跟继电器状态锁定不可定义

中间一个开关绑定本地继电器输出,保证无网络下使用。

因追求低功耗,供电用了变压器开关电源占太多空间,只能装一个继电器输出了,

本地只能控制一个用电设备(灯)所以自称三开一控

实物如图

源码

substitutions:
  device_name: i3o1a    #设备名称
  friendly_name: i3o1a
#  ${friendly_name}          继电器
#  ${friendly_name}_led      继电器开关指示灯
#  ${friendly_name}_l_led    左边开关指示灯
#  ${friendly_name}_r_led    右边开关指示灯
#  ${friendly_name}_btn      中间开关按键
#  ${friendly_name}_l_btn    左边开关按键
#  ${friendly_name}_r_btn    右边开关按键
esphome:
  name: ${friendly_name}
  friendly_name: ${friendly_name}
esp8266:
  board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
  encryption:
    key: "WvhoRbY4nJyVOca81F9/co/BcDcnIA9d/IR8MGgu3Ao="      ##连接 home assistant ,需要此密钥验证
  reboot_timeout: 0s                   ##如果与home assistant失去连接指定时间后自动重启,0s为此功能关闭,按需求启用。建议关闭该功能
ota:
  password: "99482e4de4682cfd272966428701314f"      ##使用ESPHOME 插件更新固件时,需要此密钥验证
wifi:
  ssid: wushi-2.4
  password: ++0123--
  ##manual_ip:                   ##此设备IP地址为手动设置
    ##static_ip: 192.168.3.130    ##固定此设备IP地址为192.168.1.100;
    ##gateway: 192.168.3.1        ##路由器、网关地址;
    ##subnet: 255.255.255.0         ##子网掩码;
  reboot_timeout: 0s              ##如果WIFI失去连接指定时间后自动重启,0s为此功能关闭,按需求启用。建议关闭该功能
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "${friendly_name}"   ##无法连上网络时会开启此热点
    password: "AA0123bb--"     ##热点密码
captive_portal:
web_server:  ## web控制,添加了这2行,就可以在网页端输入ip打开设备设置页面;
  port: 80   
  local: true 
##http_request:        ##启用http 功能,在失去接入HA,或者外网时,按键依然可以向指定地址发送命令
  ##useragent: esphome/device 
  
light:
  - platform: binary
    name: "${friendly_name}"       
    id: ${friendly_name}
    output: light1
    on_turn_on:
    - light.turn_on: ${friendly_name}_led    
    on_turn_off:
    - light.turn_off: ${friendly_name}_led    

  - {platform: binary, name: "${friendly_name}_l_led", id: "${friendly_name}_l_led", output: light2}
  - {platform: binary, name: "${friendly_name}_r_led", id: "${friendly_name}_r_led", output: light3}
  - {platform: binary, name: "${friendly_name}_led", id: "${friendly_name}_led", output: light4}

output:
  - {id: light1, platform: gpio, pin: GPIO15}
  - {id: light2, platform: gpio, pin: GPIO13} 
  - {id: light3, platform: gpio, pin: GPIO12} 
  - {id: light4, platform: gpio, pin: GPIO14} 

binary_sensor:
  - platform: gpio
    pin: {number: GPIO0, mode: INPUT_PULLUP, inverted: True}
    name: "${friendly_name}_btn" 
    id: ${friendly_name}_btn
    on_release:                      
       then:
         - light.toggle: ${friendly_name} 
        ## - http_request.post: http://i3o1b.local/light/i3o1b_l_led/toggle    ##启用http 功能,在失去接入HA,或者外网时,按键依然可以向指定地址发送命令
  - platform: gpio
    pin: {number: GPIO16,  inverted: True}
    name: "${friendly_name}_l_btn" 
    id: ${friendly_name}_l_btn
    on_release:                      
       then:
        ##- http_request.post: http://i3o1b.local/light/i3o1b/toggle  ##启用http 功能,在失去接入HA,或者外网时,按键依然可以向指定地址发送命令
        - light.toggle: ${friendly_name}_l_led
       
  - platform: gpio
    pin: {number: GPIO2, mode: INPUT_PULLUP, inverted: True}
    name: "${friendly_name}_r_btn" 
    id: ${friendly_name}_r_btn
    on_release:                      
       then:
        ##- http_request.post: http://i3o1c.local/light/i3o1c/toggle  ##启用http 功能,在失去接入HA,或者外网时,按键依然可以向指定地址发送命令
        - light.toggle: ${friendly_name}_r_led
       

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值