孙亮亮
返回 智能家居

智能家居

智能家居窗帘光照联动实战:ESPHome 电机 + 光照传感器 + HA 日出日落自动化

2026年9月26日

用 ESPHome 接管 MQTT 窗帘电机并接入 BH1750 光照,在 HA 实现日出开窗帘、强光遮阳、傍晚关帘的全本地自动化。

智能家居Home AssistantESPHome窗帘自动化

智能家居窗帘光照联动实战:ESPHome 电机 + 光照传感器 + HA 日出日落自动化

摘要:本文以 ESPHome 驱动光照传感器、接管成品 MQTT 窗帘电机,在 Home Assistant(HA)中实现"日出开窗帘、强光遮阳、傍晚关帘"的全本地自动化,并给出固件配置与避坑清单。

一、为什么要把窗帘做成"会看光"的自动化

多数成品智能窗帘只支持 App 点按或语音,本质依赖厂商云:断网即失控,离家后状态不可控,还把"家里几点拉帘"这类作息隐私送上了云。更关键的是,它们不会根据光照主动动作——夏天正午西晒时客厅被晒到 40℃,窗帘却还开着。

把窗帘接入 Home Assistant 后,我们可以实现三个典型场景:清晨随日出自动拉开引入晨光;正午室内照度超过阈值时自动闭合遮阳;傍晚光线低于阈值自动关帘保护隐私。整套逻辑在局域网内本地闭环,不依赖外网。

二、硬件方案与选型

普通家庭建议走"成品电机 + 本地协议接管"的省事路线:

  • 窗帘电机:选 Zemismart、Tuya 系支持涂鸦串口协议的管状/开合电机(如 M515E)。这类电机内部是 Tuya MCU,可用 ESP32 刷 OpenBEKEN(LibreTiny)固件,把云协议换成本地 MQTT 指令,彻底摆脱厂商云。
  • 光照传感器:BH1750(I2C 数字光照,量程 1–65535 lux,误差约 20%)最稳;预算更低可用光敏电阻接 ESP32 的 ADC,但需做线性标定。

极客路线则是 ESP32 + 28BYJ-48 步进电机 + ULN2003 驱动板直接驱动轨道,成本最低但需 3D 打印支架、校准行程,不适合已装好轨道的家庭。

三、ESPHome 固件配置

以"ESP32 读取 BH1750 + 通过 Tuya MCU 控制电机"为例,关键片段如下:

i2c:
  sda: GPIO21
  scl: GPIO22
  scan: true

sensor:
  - platform: bh1750
    name: "客厅光照 Lux"
    address: 0x23
    update_interval: 10s

uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

tuya:
# 通过 Tuya MCU 协议读取电机百分比位置并下发开关/停指令

BH1750 的 name 会作为实体出现在 HA;电机经 tuya 组件解析后暴露为 cover 实体,可直接用 cover.open/close/stop 控制,HA 端无需再写复杂驱动逻辑。

四、Home Assistant 自动化逻辑

核心是利用 sun.sun 实体的 elevation(太阳高度角)与光照传感器做组合判断。两条例程示例:

automation:
  - alias: 日出开窗帘
    trigger:
      - platform: numeric_state
        entity_id: sun.sun
        attribute: elevation
        above: 5
    condition:
      - condition: time
        after: "06:30"
    action:
      - service: cover.open_cover
        target: { entity_id: cover.living_room_curtain }

  - alias: 强光遮阳
    trigger:
      - platform: numeric_state
        entity_id: sensor.lux
        above: 30000
    action:
      - service: cover.close_cover
        target: { entity_id: cover.living_room_curtain }

傍晚关帘用 sun.sun 的 elevation 低于 -2 或固定时间触发即可。注意所有动作加当前位置判断,避免频繁抖动。

五、避坑与注意事项

  1. 行程校准:首次安装务必在电机 App 里完成上/下行程学习,否则 HA 里 100% 与实际位置不符。
  2. 传感器摆放:BH1750 要朝天、避开直射阳光和灯具,否则照度数值失真导致误动作。
  3. 断电回零:部分电机断电后位置归零,HA 重启会误判。建议在 HA 用 input_number 持久化"上次目标位置",恢复后校正。
  4. 动作抖动:光照在阈值附近波动会反复开关,务必在自动化里加 for: 00:02:00 持续时间判定。

小结

用 ESPHome 接管电机 + BH1750 做光照感知,再以 HA 的太阳高度角和照度做双条件触发,就能得到一套不依赖云、断网也能跑的窗帘自动化。落地成本可控(成品电机几百元 + ESP32 二十元),却显著提升了居住舒适度和隐私安全性。

本模块其他文章

智能家居窗帘光照联动实战:ESPHome 电机 + 光照传感器 + HA 日出日落自动化 · 孙亮亮