Administrator
Administrator
发布于 2026-02-22 / 2 阅读
0

ESPHome范例(一个简单的开关)

//
//  ESPHomeFenWeiDengConfig.m
//  氛围灯ESPHome配置文件
//  注释版 - 详细说明每个配置项的作用
//

/*
 * ESPHome设备配置 - 氛围灯 (fenweideng)
 * 设备名称: fenweideng
 * 友好名称: 氛围灯
 * 硬件平台: ESP8266 (型号: esp01_1m)
 */

#pragma mark - ESPHome基本配置
esphome:
  # 设备名称(内部标识,用于生成OTA名称和实体ID)
  name: "fenweideng"
  
  # 友好名称(在Home Assistant中显示的名称)
  friendly_name: 氛围灯

#pragma mark - 硬件平台配置
esp8266:
  # 开发板型号 - ESP-01 (1MB Flash)
  # 注意:ESP-01只有GPIO0和GPIO2可用,但配置中使用了GPIO4和14,请确认硬件支持
  board: esp01_1m

#pragma mark - 日志系统
# 启用日志记录,方便调试和故障排除
logger:
  # 默认级别为DEBUG,可通过level:设置日志级别
  # level: DEBUG/INFO/WARN/ERROR/VERBOSE/NONE

#pragma mark - Home Assistant API通信
api:
  # API加密配置,确保与Home Assistant的安全通信
  encryption:
    # 加密密钥(由Home Assistant生成)
    key: "eU0rbb69fnxGEPaswVuAV6jp01qJ6sMEdPw1mhvG7Xg="
    
  # 可选的API配置项:
  # port: 6053  # 自定义API端口(默认6053)
  # password: ""  # API密码(可选)

#pragma mark - OTA无线升级
ota:
  # 使用ESPHome原生OTA平台
  platform: esphome
  
  # OTA升级密码(重要:请妥善保管,防止未经授权的固件更新)
  password: "a2ed64c3857a0ac966a573b71003c6ea"
  
  # 可选配置:
  # port: 8266  # OTA端口(默认8266)
  # safe_mode: true  # 启用安全模式,升级失败时回滚

#pragma mark - WiFi网络配置
wifi:
  # 主WiFi网络配置
  ssid: "ASUS_6C_2G"          # WiFi网络名称(SSID)
  password: "zhangyongming123" # WiFi密码
  
  # 手动设置静态IP(固定IP,避免DHCP分配变化)
  manual_ip:
    static_ip: 192.168.4.16   # 设备静态IP地址
    gateway: 192.168.4.1      # 网关地址(路由器IP)
    subnet: 255.255.255.0     # 子网掩码
    dns1: 114.114.114.114     # 首选DNS服务器
    
  # 可选的WiFi高级配置:
  # domain: .local  # mDNS域名
  # reboot_timeout: 0s  # WiFi连接超时重启
  
  # 备选AP模式(热点模式)
  # 当WiFi连接失败时,设备会开启热点供配置
  ap:
    ssid: "Esphome-Web-00C249"  # AP模式热点名称
    password: "HfJOJ1FJiI"     # AP模式密码(至少8位)
    
    # 可选的AP配置:
    # ap_timeout: 1min  # AP模式超时时间
    # manual_ip: ...    # AP模式手动IP(可选)

#pragma mark - 开关组件配置
# 定义GPIO控制的开关,用于控制主卧顶灯
switch:
  - platform: gpio  # GPIO开关平台
    name: "主卧顶灯"  # 开关显示名称
    pin: GPIO4      # 使用的GPIO引脚号
    
    # 开关的唯一标识符,用于自动化和其他组件引用
    id: "light"
    
    # 可选的开关配置:
    # inverted: true  # 引脚反相(低电平有效)
    # restore_mode:  # 断电恢复模式
    # icon: "mdi:lightbulb"  # 自定义图标

#pragma mark - 物理按钮传感器配置
# 定义GPIO按钮,实现物理开关控制
binary_sensor:
  - platform: gpio  # GPIO二进制传感器平台
    name: "主卧顶灯"  # 传感器名称
    id: "light_sb"   # 传感器唯一标识符
    
    # GPIO引脚详细配置
    pin: 
      number: GPIO14    # 使用的GPIO引脚号
      inverted: True    # 引脚反相(按钮按下为低电平)
      mode: INPUT_PULLUP  # 输入模式,启用内部上拉电阻
    
    # 按钮按下事件处理
    on_press:
      then:
        # 切换开关状态
        - switch.toggle:
            id: light  # 引用之前定义的开关
            
    # 可选的按钮配置:
    # on_release:  # 按钮释放事件
    # on_double_click:  # 双击事件
    # on_multi_click:  # 多击事件
    # on_long_press:  # 长按事件

#pragma mark - Captive Portal(网络配置门户)
# 启用Captive Portal功能
captive_portal:
  # 当设备启动AP模式(热点模式)时
  # 会自动创建一个Web配置页面,用户可通过浏览器
  # 连接到设备热点并配置WiFi网络
  
  # 注意:此配置项通常无需额外参数
  # 默认启用,如需禁用可设置为false: captive_portal: false
  
  # 功能说明:
  # 1. 当WiFi连接失败时,设备进入AP模式
  # 2. 用户连接设备的热点(默认:Esphome-Web-00C249)
  # 3. 打开浏览器访问任意HTTP网站
  # 4. 浏览器会自动重定向到设备的网络配置页面
  # 5. 用户可在页面中选择WiFi网络并输入密码
  # 6. 设备会自动尝试连接配置的WiFi
  
  # 可选的进阶配置:
  # web_server:  # Web服务器配置
  #   port: 80   # Web服务器端口

#pragma mark - 可添加的其他功能(示例)
/*
# Web服务器(用于查看设备状态和手动控制)
web_server:
  port: 80
  
# MQTT客户端(替代Home Assistant API)
mqtt:
  broker: "mqtt.homeassistant.local"
  username: "mqtt_user"
  password: "mqtt_password"
  
# 传感器(添加温度、湿度等传感器)
sensor:
  - platform: dht
    pin: GPIO12
    temperature:
      name: "Temperature"
    humidity:
      name: "Humidity"
  
# 自动化(基于条件自动控制)
automation:
  - trigger:
      platform: time
      at: "18:00:00"
    then:
      - switch.turn_on: light
*/

//
// 配置结束
// 请将此文件保存为 fenweideng.yaml
// 使用命令编译:esphome compile fenweideng.yaml
// 使用命令上传:esphome upload fenweideng.yaml
//