跳至内容

Home Assistant LED控制入门:WLED、MQTT和自动化

你已经构建了WLED控制器,焊接了灯带,并在网页UI中调整了分段。真正的魔力从你的LED加入智能家居开始——在日落时调暗,当你离开时门打开而闪烁红色,跟随你的昼夜节律。Home Assistant将WLED从独立控制器转变为完全集成的智能照明系统。

显示Home Assistant集成的WLED网页界面

为什么Home Assistant + WLED?

Home Assistant是领先的开源智能家居平台——没有云依赖,所有东西都在本地运行。WLED是最受欢迎的开源LED固件,其开发人员与Home Assistant社区密切合作,使集成无缝。

这种组合为你提供:

  • 语音控制 — Alexa、Google Home和HomeKit开箱即用
  • 调度 — 在日落、日出或任何时间触发预设
  • 自动化 — 运动激活灯、门警报、唤醒例程
  • 场景 — 保存和调用多个WLED控制器的照明情绪
  • 零云依赖 — 所有东西都在你的LAN上运行,不需要互联网

每个WLED功能——分段、预设、亮度、颜色、效果、速度、强度——都作为原生Home Assistant实体暴露。没有桥,没有HACS,没有YAML调整。

安装WLED集成

原生WLED集成随Home Assistant 2023.5+一起提供。

  1. 转到 设置 → 设备与服务 → 添加集成
  2. 搜索 WLED — 它通过mDNS自动发现你网络上的WLED实例
  3. 点击添加 — 集成自动连接

不需要手动配置。集成通过HTTP读取所有内容:IP、端口、LED数量、分段定义。每个WLED分段变为一个单独的灯光实体

light.wled_living_room
light.wled_living_room_segment_1 # 电视背景光
light.wled_living_room_segment_2 # 架子装饰

多个WLED控制器每个都显示为自己的设备,具有分段灯光和设备级开关以关闭整个控制器。

设置MQTT(可选但强大)

原生HTTP集成轮询状态更改。添加MQTT升级到即时推送更新——当控制器上的物理按钮按下时,Home Assistant立即看到它。

一键Mosquitto设置: 安装Mosquitto broker附加组件(设置 → 附加组件 → 附加组件商店),启动它,然后在设备与服务中配置MQTT集成。

在WLED中启用MQTT: 配置 → 同步接口 → 启用MQTT,输入你的broker IP和端口(1883),并设置唯一的设备主题(例如,wled/livingroom)。

现在每个状态更改都实时发布。真正的胜利:其他设备可以在没有Home Assistant的情况下控制WLED——ESPHome运动传感器可以发布到wled/livingroom/seg/0/col并直接更改颜色。MQTT还将WLED预设暴露为可选择实体,如select.wled_living_room_preset

有用的自动化

五个将LED从装饰转变为真正有用的自动化。

** dusk-on。** 使用sun.sun实体在日落时触发WLED——不需要时间调度:

alias: "LEDs On at Sunset"
trigger:
  platform: sun
  event: sunset
  offset: "-00:15:00"
action:
  - service: light.turn_on
    target:
      entity_id: light.wled_living_room
    data:
      brightness_pct: 40
      color_temp: 400
      mode: single

运动激活。 当运动触发时,将LED调亮到80%,持续5分钟:

alias: "Hallway LEDs on Motion"
trigger:
  platform: state
  entity_id: binary_sensor.hallway_motion
  to: "on"
action:
  - service: light.turn_on
    target:
      entity_id: light.wled_hallway
    data:
      brightness_pct: 80
      rgb_color: [255, 220, 180]
  - delay: "00:05:00"
  - service: light.turn_off
    target:
      entity_id: light.wled_hallway

门警报。 当离家布防时前门打开,LED闪烁红色:

alias: "Door Alert LEDs"
trigger:
  platform: state
  entity_id: binary_sensor.front_door
  to: "on"
condition:
  condition: state
  entity_id: alarm_control_panel.home_alarm
  state: armed_away
action:
  - service: light.turn_on
    target:
      entity_id: light.wled_living_room
    data:
      rgb_color: [255, 0, 0]
      effect: "Blink"
      brightness_pct: 100

唤醒灯。 在15分钟内逐渐变亮——比任何手机闹钟都温和:

alias: "Wake Up Light"
trigger:
  platform: time
  at: "06:30:00"
action:
  - service: light.turn_on
    target:
      entity_id: light.wled_bedroom
    data:
      brightness_pct: 1
      kelvin: 2700
  - service: light.turn_on
    target:
      entity_id: light.wled_bedroom
    data:
      brightness_pct: 80
      transition: 900
      mode: single

电视时间。 当媒体开始播放时,将LED调暗到10%:

alias: "TV Time Dimming"
trigger:
  platform: state
  entity_id: media_player.living_room_tv
  to: "playing"
action:
  - service: light.turn_on
    target:
      entity_id: light.wled_living_room
    data:
      brightness_pct: 10
      rgb_color: [255, 100, 50]

创建场景

WLED预设在Home Assistant中自动暴露为类场景实体。在WLED UI中保存预设,它会立即出现在Home Assistant中。

  • 电影之夜 — 10%暖白,电视后面的背景光
  • 派对 — 全亮度,颜色循环,速度200
  • 阅读 — 暖白(2700K)50%亮度

从仪表板、门边的NFC标签晚安例程中触发它们,该例程在一个命令中关闭灯、锁门并启动警报。

语音控制

Home Assistant通过其云桥或本地集成将WLED暴露给AlexaGoogle HomeApple HomeKit

  • “Alexa,将客厅LED设置为蓝色”
  • “Hey Google,将厨房灯带调暗到20%”

不需要额外的WLED配置。将单个分段暴露为单独的灯或将整个控制器暴露为一个。对于完全本地的语音控制,使用Assist pipeline和ESP32-S3语音卫星——不涉及云。

天文调度

sun实体超越了日落的简单开关。使用sun.sun属性根据夜间时间触发不同的预设:

  • 民用暮光(太阳在地平线以下6°)— 40%暖白
  • 夜间(太阳在地平线以下12°+)— 10%暗红色,用于夜视
  • 天文黎明 — 日出前过渡到早晨颜色

自适应照明全天调整色温——中午冷5000K,午夜暖2200K。为你的WLED实体启用它,它们会自动跟踪太阳的自然曲线。

为了增加变化,添加一个每日随机化脚本,每个晚上选择不同的颜色预设。你的LED连续两个晚上看起来永远不会一样——这是保持永久安装感觉新鲜的小细节。