Home Assistant LED控制入门:WLED、MQTT和自动化
你已经构建了WLED控制器,焊接了灯带,并在网页UI中调整了分段。真正的魔力从你的LED加入智能家居开始——在日落时调暗,当你离开时门打开而闪烁红色,跟随你的昼夜节律。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+一起提供。
- 转到 设置 → 设备与服务 → 添加集成
- 搜索 WLED — 它通过mDNS自动发现你网络上的WLED实例
- 点击添加 — 集成自动连接
不需要手动配置。集成通过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暴露给Alexa、Google Home和Apple HomeKit。
- “Alexa,将客厅LED设置为蓝色”
- “Hey Google,将厨房灯带调暗到20%”
不需要额外的WLED配置。将单个分段暴露为单独的灯或将整个控制器暴露为一个。对于完全本地的语音控制,使用Assist pipeline和ESP32-S3语音卫星——不涉及云。
天文调度
sun实体超越了日落的简单开关。使用sun.sun属性根据夜间时间触发不同的预设:
- 民用暮光(太阳在地平线以下6°)— 40%暖白
- 夜间(太阳在地平线以下12°+)— 10%暗红色,用于夜视
- 天文黎明 — 日出前过渡到早晨颜色
自适应照明全天调整色温——中午冷5000K,午夜暖2200K。为你的WLED实体启用它,它们会自动跟踪太阳的自然曲线。
为了增加变化,添加一个每日随机化脚本,每个晚上选择不同的颜色预设。你的LED连续两个晚上看起来永远不会一样——这是保持永久安装感觉新鲜的小细节。