← Расширенное использование | Содержание | Далее: Lambda-интеграция →
DimmerLink — Интеграция с ESPHome
AC-диммирование без мерцания для Home Assistant. Выделенный контроллер синхронизации, который решает главную проблему TRIAC-диммеров.
❌ Проблема
Using ESPHome's ac_dimmer component?
- 💡 Мерцание на низких уровнях яркости
- ⚡ Конфликты WiFi — прерывания сбивают тайминги
- 🔥 Нестабильная работа ESP8266 — недостаточно ресурсов для критичного по времени кода
- 📝 Сложная настройка — тайминги зависят от типа нагрузки и качества сети
«Лампа мерцает нерегулярно» — ESPHome Issue #4131
✅ Решение
DimmerLink — компактный модуль с выделенным ядром Cortex-M0+, который берёт на себя ВСЕ критичные по времени операции: детектирование перехода через ноль, расчёт фазового угла и управление затвором TRIAC с микросекундной точностью.
Your ESP just sends: "Set brightness to 50%" via I2C. That's it.
- ✅ Нулевое мерцание — аппаратные тайминги, без программного джиттера
- ✅ 3 строки YAML — без прерываний, без библиотек, без конфликтов
- ✅ Работает на любом ESP — ESP8266, ESP32, ESP32-S2/S3/C3
- ✅ Авто 50/60 Гц — автоматическое определение частоты сети
- ✅ 3 кривые диммирования — линейная, RMS, логарифмическая
DimmerLink vs ESPHome ac_dimmer
| ac_dimmer | DimmerLink | |
|---|---|---|
| Мерцание | ⚠️ Часто на низких уровнях (#4131) | ✅ Никогда — аппаратные тайминги |
| Поддержка ESP8266 | ⚠️ Нестабильно (конфликты прерываний) | ✅ Стабильно — прерывания не нужны |
| Загрузка CPU | Высокая (критичный по времени ISR) | < 1% (только запись по I2C) |
| Влияние на WiFi | Да (прерывания vs стек WiFi) | Нет |
| Сложность настройки | Средняя (требуется подстройка) | Простой YAML |
| Кривые диммирования | Только программные | 3 аппаратные кривые |
| Частота AC | Ручная конфигурация | Автоопределение 50/60 Гц |
| Дополнительное оборудование | $0 | Модуль за $1.99 |
Когда использовать
ac_dimmer: Если он уже хорошо работает в вашей системе — продолжайте!Когда использовать DimmerLink: Проблемы с мерцанием, ESP8266, несколько диммеров или вам нужна простота plug-and-play.

- Страница продукта: DimmerLink на rbdimmer.com
- Страница на AliExpress: DimmerLink на AliExpress
Два способа интеграции
DimmerLink поддерживает два подхода к интеграции с ESPHome:
1. Внешний компонент (рекомендуется)
Готовый компонент ESPHome с понятной конфигурацией YAML. Код на C++ или 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"
Подходит для: Большинства пользователей. Простой YAML, автоматическая связь по I2C, встроенные датчики, селекторы и кнопки.
2. Lambda-интеграция (продвинутый вариант)
Прямой доступ к регистрам I2C через lambda-функции ESPHome. Полный контроль над протоколом обмена данными.
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
Подходит для: Продвинутых пользователей, которым нужна собственная логика, нестандартные конфигурации или детальное понимание протокола I2C.
Сравнение способов интеграции
| Функция | Внешний компонент | Lambda-интеграция |
|---|---|---|
| Сложность настройки | Простой YAML | Требуются C++ lambda |
| Объём кода | ~30 строк | ~100+ строк |
| Датчики и статус | Встроенные | Ручная реализация |
| Выбор кривой диммирования | Встроенные | Ручная реализация |
| Сброс / Рекалибровка | Встроенные кнопки | Ручные команды |
| Несколько устройств | Нативная поддержка | Ручная настройка каждого |
| Кастомизация | Стандартные параметры | Полная гибкость |
| Обработка ошибок I2C | Автоматическая | Ручная |
Архитектура
Home Assistant
│
│ WiFi (Native API)
▼
ESP32 + ESPHome
│
│ I2C (100 kHz)
▼
DimmerLink
│
│ Zero-Cross + Gate
▼
AC Dimmer (TRIAC)
│
│ AC 110/220V
▼
Lamp
Быстрый старт
Схема подключения
ESP32 DimmerLink
───── ──────────
3.3V → VCC
GND → GND
GPIO21 → SDA
GPIO22 → SCL
Минимальная конфигурация (внешний компонент)
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
Типы сущностей (внешний компонент)
| Сущность | Платформа | Описание |
|---|---|---|
| Light | dimmerlink |
Управление яркостью (0–100%) |
| Sensor | dimmerlink |
Частота AC, уровень яркости, версия прошивки |
| Binary Sensor | dimmerlink |
Статус готовности, флаг ошибки, статус калибровки |
| Select | dimmerlink |
Кривая диммирования (LINEAR / RMS / LOG) |
| Button | dimmerlink |
Команды сброса и рекалибровки |
Связанная документация
| Документ | Описание |
|---|---|
| Связь по I2C | Протокол I2C и карта регистров |
| Подключение оборудования | Схемы подключения |
| Быстрый старт | Начало работы с DimmerLink |
| FAQ и устранение неполадок | Частые проблемы и решения |
История версий
| Версия | Дата | Изменения |
|---|---|---|
| 1.0 | 2026-02 | Первый выпуск: документация по lambda-интеграции |
| 1.1 | 2026-02 | Добавлен внешний компонент |
← Расширенное использование | Содержание | Далее: Lambda-интеграция →