← Uso avanzado | Contenido | Siguiente: Integración Lambda →
DimmerLink — Integración con ESPHome
Atenuación AC sin parpadeo para Home Assistant. Un controlador de sincronización dedicado que elimina el problema n.°1 de los dimmers TRIAC.
❌ El problema
Using ESPHome's ac_dimmer component?
- 💡 Parpadeo en niveles bajos de brillo
- ⚡ Conflictos WiFi — las interrupciones alteran la sincronización
- 🔥 ESP8266 inestable — recursos insuficientes para código crítico en tiempo
- 📝 Ajuste complejo — la sincronización depende del tipo de carga y la calidad de la red
«La lámpara tiene un parpadeo irregular» — ESPHome Issue #4131
✅ La solución
DimmerLink — un módulo compacto con un Cortex-M0+ dedicado que gestiona TODAS las operaciones críticas en tiempo: detección de cruce por cero, cálculo del ángulo de fase y control de la puerta TRIAC con precisión de microsegundos.
Your ESP just sends: "Set brightness to 50%" via I2C. That's it.
- ✅ Cero parpadeo — sincronización por hardware, sin jitter de software
- ✅ 3 líneas de YAML — sin interrupciones, sin bibliotecas, sin conflictos
- ✅ Funciona en cualquier ESP — ESP8266, ESP32, ESP32-S2/S3/C3
- ✅ Auto 50/60 Hz — detección automática de frecuencia de red
- ✅ 3 curvas de atenuación — Lineal, RMS, Logarítmica
DimmerLink vs ESPHome ac_dimmer
| ac_dimmer | DimmerLink | |
|---|---|---|
| Parpadeo | ⚠️ Frecuente en niveles bajos (#4131) | ✅ Nunca — sincronización por hardware |
| Soporte ESP8266 | ⚠️ Inestable (conflictos de interrupciones) | ✅ Estable — no requiere interrupciones |
| Uso de CPU | Alto (ISR crítico en tiempo) | < 1% (solo escrituras I2C) |
| Interferencia WiFi | Sí (interrupciones vs pila WiFi) | Ninguna |
| Complejidad de configuración | Media (requiere ajustes) | YAML simple |
| Curvas de atenuación | Solo software | 3 curvas por hardware |
| Frecuencia AC | Configuración manual | Detección automática 50/60 Hz |
| Hardware adicional | $0 | Módulo por $1.99 |
Cuándo usar
ac_dimmer: Si ya funciona bien en tu instalación, ¡sigue usándolo!Cuándo usar DimmerLink: Problemas de parpadeo, ESP8266, múltiples dimmers o si quieres simplicidad plug-and-play.

- Página del producto: DimmerLink en rbdimmer.com
- Página en AliExpress: DimmerLink en AliExpress
Dos métodos de integración
DimmerLink soporta dos enfoques para la integración con ESPHome:
1. Componente externo (Recomendado)
Un componente ESPHome listo para usar con configuración YAML clara. No requiere código C++ ni lambda.
external_components:
- source: github://robotdyn-dimmer/DimmerLink@main
components: [dimmerlink]
refresh: 1d
dimmerlink:
id: dimmer1
address: 0x50
light:
- platform: dimmerlink
dimmerlink_id: dimmer1
name: "Dimmer"
Ideal para: La mayoría de usuarios. YAML simple, comunicación I2C automática, sensores, selectores y botones integrados.
2. Integración Lambda (Avanzado)
Acceso directo a registros I2C mediante funciones lambda de ESPHome. Control total sobre el protocolo de comunicación.
output:
- platform: template
id: dimmer_out
type: float
write_action:
- lambda: |-
uint8_t level = (uint8_t)(state * 100.0f);
uint8_t data[2] = {0x10, level};
id(bus_a).write(0x50, data, 2, true);
light:
- platform: monochromatic
name: "Dimmer"
output: dimmer_out
Ideal para: Usuarios avanzados que necesitan lógica personalizada, configuraciones no estándar o quieren entender el protocolo I2C en detalle.
Comparación de métodos de integración
| Característica | Componente externo | Integración Lambda |
|---|---|---|
| Complejidad de configuración | YAML simple | Requiere lambdas C++ |
| Líneas de código | ~30 líneas | ~100+ líneas |
| Sensores y estado | Integrados | Implementación manual |
| Selección de curva de atenuación | Integrados | Implementación manual |
| Reinicio / Recalibración | Botones integrados | Comandos manuales |
| Múltiples dispositivos | Soporte nativo | Manual por dispositivo |
| Personalización | Opciones estándar | Flexibilidad total |
| Manejo de errores I2C | Automático | Manual |
Arquitectura
Home Assistant
│
│ WiFi (Native API)
▼
ESP32 + ESPHome
│
│ I2C (100 kHz)
▼
DimmerLink
│
│ Zero-Cross + Gate
▼
AC Dimmer (TRIAC)
│
│ AC 110/220V
▼
Lamp
Inicio rápido
Cableado
ESP32 DimmerLink
───── ──────────
3.3V → VCC
GND → GND
GPIO21 → SDA
GPIO22 → SCL
Configuración mínima (Componente externo)
esphome:
name: dimmerlink
esp32:
board: esp32dev
logger:
api:
ota:
wifi:
ssid: "YOUR_WIFI"
password: "YOUR_PASSWORD"
external_components:
- source: github://robotdyn-dimmer/DimmerLink@main
components: [dimmerlink]
refresh: 1d
i2c:
sda: GPIO21
scl: GPIO22
dimmerlink:
id: dimmer1
light:
- platform: dimmerlink
dimmerlink_id: dimmer1
name: "Dimmer"
gamma_correct: 1.0
Tipos de entidades (Componente externo)
| Entidad | Plataforma | Descripción |
|---|---|---|
| Light | dimmerlink |
Control de brillo (0–100%) |
| Sensor | dimmerlink |
Frecuencia AC, nivel de brillo, versión de firmware |
| Binary Sensor | dimmerlink |
Estado de disponibilidad, indicador de error, estado de calibración |
| Select | dimmerlink |
Curva de atenuación (LINEAR / RMS / LOG) |
| Button | dimmerlink |
Comandos de reinicio y recalibración |
Documentación relacionada
| Documento | Descripción |
|---|---|
| Comunicación I2C | Protocolo I2C y mapa de registros |
| Conexión de hardware | Diagramas de conexión |
| Guía de inicio rápido | Primeros pasos con DimmerLink |
| FAQ y solución de problemas | Problemas frecuentes y soluciones |
Historial de versiones
| Versión | Fecha | Cambios |
|---|---|---|
| 1.0 | 2026-02 | Versión inicial: documentación de integración lambda |
| 1.1 | 2026-02 | Añadido componente externo |
← Uso avanzado | Contenido | Siguiente: Integración Lambda →