跳转到内容

Sonoff D1 调光器

sonoff_d1 灯光平台为 Sonoff D1 调光器中的硬件创建一个简单的仅亮度灯光。安装配备 Sonoff RM433 433MHz 无线 遥控器的版本也支持。使用此组件将 Sonoff D1 调光器集成到 ESPHome / Home Assistant 生态系统中。

Sonoff D1 调光器正面和背面视图。图片由 ITEAD 提供。

Sonoff D1 使用另一个 MCU 进行灯光调光和无线命令处理。 它通过 UART 总线连接到 ESP8266,ESP8266 侧使用默认的 RX / TX 引脚。ESP8266 和 MCU 之间实现了 双向对称请求/响应协议。sonoff_d1 组件实现了此协议, 并在 HA 灯光命令和串行消息之间转换。

要用 ESPHome 替换原厂固件,你需要找到 GPIO0 引脚和串口。下面的照片会有帮助。

GPIO 0 的照片,图片由 klotzma 提供。
串口引脚的照片,图片由 klotzma 提供。

使用此组件之前请确保:

  • 开发板配置为 esp8285
  • UART 总线 已使用默认 RX / TX 引脚和 9600 波特率配置
  • logger 到串口的输出已通过将 baud_rate 设为 0 禁用
  • 如果你需要在开机时恢复灯光状态,请确保在 ESP8266 平台 中设置 restore_from_flash 为 true

此组件对于 Sonoff D1 调光器以外的设备没有用。

# 示例配置条目
esphome:
name: my-d1-dimmer
# 如果你想在开机时保留上次状态,从闪存恢复
esp8266:
board: esp8285
restore_from_flash: true
# 确保你的 WiFi 能连接
wifi:
ssid: "ssid"
password: "password"
# 确保日志没有使用串口
logger:
baud_rate: 0
# 启用 Home Assistant API
api:
# 确保你可以通过 OTA 上传新固件
ota:
platform: esphome
# D1 调光器在默认引脚上 @ 9600 bps 使用硬件串口
uart:
rx_pin: RX
tx_pin: TX
baud_rate: 9600
# 最后是灯光组件
# gamma 校正等于零给出线性刻度,
# 正是此设备所需的
light:
- platform: sonoff_d1
use_rm433_remote: False
name: Sonoff D1 Dimmer
restore_mode: RESTORE_DEFAULT_OFF
gamma_correct: 0.0
default_transition_length: 1s
  • use_rm433_remote(可选,boolean):如果你的设置使用了 Sonoff RM433 或任何其他无线遥控器,设为 True。正确设置此参数可让平台 识别如何处理传入的 UART 命令。如果未与真实遥控器配对,RF 芯片会接收随机命令 (所谓的幽灵命令)。这个问题即使在原厂固件中也能观察到,很可能是 MCU 固件或 RF 芯片 固件中的 bug。将其设为 False 可指示平台正确忽略此类命令 从而防止意外的开关或灯光强度变化。

  • min_value(可选,int):允许的最小调光值。你的 设置的可用值将取决于实际安装灯泡及其数量。从默认 值开始,并检查灯泡能产生的最小亮度。注意,对于 一些可调光 LED 灯,最小开启亮度会高于你仅在灯已开启时降低亮度时 能达到的最小亮度。默认为 0。

  • max_value(可选,int):允许的最大调光值。使用此参数来硬限制灯光 强度以适应你的设置。对于一些灯泡,此参数也可用于防止 在高亮度值时的闪烁。默认为 100。

  • 来自 Light 的所有其他选项。