

Мне понравился проект Home Intercom, который отлично подходит под мои нужды.
Знаете эту ситуацию? Ребёнок играет в гостиной, вы на кухне, и нужно что-то ему сказать. Кричать через весь дом — неудобно, а иногда и невозможно (спят, например).
Я решил сделать себе домашний интерком: нажал кнопку на телефоне → голос из колонок звучит в нужной комнате. Без облаков, без подписок, всё в локальной сети.
Рассказываю, как это повторить.
Схема такая:
[Телефон] —(HTTPS)→ [Сервер: LXC + Docker] —(API)→ [Home Assistant] → [ESP32 + колонка]
↑
Caddy (HTTPS)
Что понадобится
| Что | Зачем |
| LXC-контейнер или сервер с Debian | Для Docker-сервера |
| Home Assistant | Управление медиаплеерами |
| ESP32 + плата PCM5102A + динамик | Колонка в комнате |
| ESPHome | Прошивка для ESP32 |
| Android-телефон | Кнопка PTT |
Сервер
Создайте LXC-контейнер в Proxmox или возьмите любой Debian-сервер в локальной сети.
Установите Docker:
apt update && apt install -y docker.io docker-compose-plugin
Создайте рабочую директорию:
mkdir -p /opt/home-intercom/audio
cd /opt/home-intercom
docker-compose.yml
services:
intercom:
image: ghcr.io/mdj2812/home-intercom:latest
container_name: home-intercom
restart: unless-stopped
ports:
- "8764:8764"
volumes:
- ./audio:/data/audio
- ./rooms.json:/app/rooms.json:ro
environment:
- HA_URL=http://192.168.1.ваш IP:8123
- HA_TOKEN=ваш_токен_HA
- PUBLIC_URL=http://192.168.1.например 108:8764
HA_TOKEN: Home Assistant → Профиль → Токены долгосрочного доступа → Создать токен.
rooms.json — ваши комнаты
Здесь вы указываете, какие колонки использовать. entity — это entity_id медиаплеера из Home Assistant.
{
"kabinet": {
"name": "Кабинет",
"entity": "media_player.esp32_kabinet",
"announce_volume": 40
},
"gostinnaya": {
"name": "Гостиная",
"entity": "media_player.esp32_gostinnaya",
"announce_volume": 60
}
}
Проверка перед рестарт
python3 -m json.tool rooms.json > /dev/null && echo "OK" || echo "Ошибка JSON"
HTTPS через Caddy
Микрофон в браузере работает только по HTTPS. Caddy сам сгенерирует внутренний сертификат.
Установите Caddy:
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy
Настройте Caddyfile:
cat > /etc/caddy/Caddyfile << 'EOF'
https://192.168.1.ваш IP {
tls internal
reverse_proxy localhost:8764
}
EOF
Запустите
systemctl enable --now caddy
Колонки в комнатах
Собирал я их раньше и с этим можете ознакомиться в статье "WiFi колонка на esp32-s3 для Home Assistant".
Настраиваем управление с телефона
1. Скачайте CA-сертификат
Скопируйте корневой сертификат Caddy в доступное место:
cp /var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt /opt/home-intercom/
chmod 644 /opt/home-intercom/root.crt
Теперь он доступен по адресу: https://192.168.1.ваш IP/root.crt
2. Откройте этот адрес на телефоне
Браузер покажет предупреждение — нажмите "Всё равно открыть". Файл скачается.
3. Установите сертификат (Android)
Настройки → Безопасность → Шифрование и учётные данные → Установить сертификат → Центр сертификации (CA).
Выберите скачанный файл, подтвердите установку. Или просто тапнуть по сертификату и установить его :)
4. В браузере на телефоне перейдите: https://192.168.1.ваш IP
Страница должна открыться без предупреждений. Зажмите кнопку — говорите фразу — отпустите. Голос отправится на нужную или как вариант на все подключенные в доме колонки. Когда вы нажимаете кнопку, перед объявлением воспроизводится звонок дверного звонка - это достаточно забавно и удобно.

Автозапуск
В общем всё уже настроено на автозапуск:
После перезагрузки сервера интерком будет работать без ручного вмешательства.
Что у нас в итоге получилось:
Проект простой, но решает конкретную задачу: сказать что-то в нужную комнату, не вставая с места. Рекомендую, если у вас большой дом и маленькие дети.
Полезные ссылки:
Репозиторий проекта: https://github.com/mdj2812/home-intercom
ESPHome: https://esphome.io/
Home Assistant: https://www.home-assistant.io/
Caddy: https://caddyserver.com/