Внешнее устройство управления для студийных мониторов Edifier MR4, подключаемое к штатной кнопке энкодера и светодиодам индикации через оптопары. Устройство имитирует нажатия кнопки и считывает состояние светодиодов с полной гальванической развязкой. Позволяет интегрировать управление колонками в экосистему Home Assistant.
- Полная гальваническая развязка – и управление кнопкой, и считывание светодиодов выполнены через оптопары, исключая электрическую связь с внутренними цепями колонок.
- Независимое питание – контроллер ESP32‑C6 запитан от собственного мини‑блока питания 3.3 В, аккуратно размещённого внутри корпуса колонки.
- Включение / выключение – эмуляция длинного нажатия для управления питанием.
- Выбор режима – переключение между режимами «Музыка» и «Мониторинг» (имитация двойного клика).
- Mute (без звука) – включение/отключение приглушения коротким нажатием, светодиод при этом мигает.
- Синхронизация состояния – чтение реального состояния светодиодов (красный/зелёный) через изолированные входы, поэтому Home Assistant всегда знает актуальный режим, даже если кнопка нажата вручную.
- Детектор мигания – анализирует частоту переключений светодиода, чтобы точно определить активность Mute.
- Оптимистичный интерфейс – мгновенная реакция в HA с автоматической коррекцией при сбоях команд.
- Поддержка Thread / Matter – используется OpenThread для будущей интеграции Matter (ESP32‑C6).
Устройство подключается параллельно контактам кнопки энкодера и красного/зелёного светодиодов колонок Edifier MR4. Все соединения выполнены через оптопары для обеспечения полной электрической изоляции. Контроллер ESP32‑C6 питается от отдельного источника 3.3 В (например, миниатюрного AC‑DC модуля), установленного внутри корпуса колонки. Команды из Home Assistant преобразуются в импульсы различной длительности, имитирующие действия пользователя:
| Действие | Эмуляция |
|---|---|
| Включение / выключение | Длинное нажатие (~2 с) |
| Включение / выключение Mute | Короткое нажатие (~150 мс) |
| Смена режима | Двойное короткое нажатие |
Состояние светодиодов отслеживается через дополнительные оптопары, что позволяет ESP32‑C6 определять постоянное свечение (индикация режима) и мигание (активен Mute) без прямого электрического контакта с внутренними напряжениями колонок.
- Отладочная плата ESP32‑C6 (например, ESP32‑C6‑DevKitC‑1)
- 3 оптопары PC817 (или аналогичные) – одна для имитации кнопки, две для считывания светодиодов
- Резисторы 220–470 Ом (для светодиодов оптопар)
- Независимый источник питания 3.3 В (компактный AC‑DC модуль или DC‑DC преобразователь, размещаемый внутри колонки)
- Соединительные провода для подключения к контактам кнопки и светодиодов
| Пин ESP32‑C6 | Сигнал | Подключение к Edifier MR4 (через оптопару) |
|---|---|---|
| GPIO19 | Чтение красного LED | Вход оптопары → анод/катод красного светодиода |
| GPIO18 | Чтение зелёного LED | Вход оптопары → анод/катод зелёного светодиода |
| GPIO20 | Управление кнопкой | Выход оптопары параллельно контактам кнопки энкодера |
⚠️ Важно: Все подключения к колонкам выполняются только через оптопары. Не подключайте пины GPIO напрямую к цепям колонок. Контроллер ESP32‑C6 должен питаться от собственного изолированного источника 3.3 В – не используйте питание от внутренних цепей колонок.
Полный YAML-файл конфигурации находится в edifier-mr4.yaml. Основные элементы:
globalsдля отслеживания режима и состояния Mute.binary_sensorдля чтения состояния светодиодов (через оптопары) с подсчётом переключений.interval, анализирующий частоту мигания для определения Mute.switchдля управления питанием и Mute.selectдля выбора режима работы.
- Прошейте ESPHome на ESP32‑C6 через ESPHome Dashboard или командой
esphome run. - Соберите схему внутри корпуса колонки – подключите оптопары к контактам кнопки и светодиодов, обеспечьте питание 3.3 В для контроллера.
- Добавьте устройство в Home Assistant – оно обнаружится автоматически через интеграцию ESPHome.
- Управляйте колонками с панелей Home Assistant, через автоматизации или голосовых ассистентов!
- У разных ревизий колонок могут немного отличаться временные допуски. При необходимости подкорректируйте значения
delayв YAML. - Компонент
openthreadвключён для совместимости с Matter; если не нужен, его можно отключить. - Детектирование Mute основано на подсчёте переключений светодиода за окно 800 мс – надёжно работает со стандартной частотой мигания ~2 Гц.
MIT © 2026 [F-Lab] Made with ❤️ by f1x6r

