Tanix w2 Debian: Умный дом на контейнерах
В этой статье: Полное руководство по установке и настройке умного дома на базе ТВ-приставки Tanix w2. В отличие от стандартного использования Android TV, мы превратим эту недорогую приставку в мощный домашний сервер на базе Docker.
Почему Tanix w2? Это устройство обладает рядом преимуществ: низкое энергопотребление (всего 5-10 Вт), достаточная производительность для запуска десятка Docker-контейнеров, наличие Gigabit Ethernet и возможность загрузки с microSD. При этом стоимость приставки значительно ниже, чем у готовых NAS или серверов.
Что мы сделаем?
- Установим Debian Linux на приставку (вместо штатного Android TV)
- Настроим автоматическое отключение режима сна USB (чтобы приставка работала 24/7)
- Развернём Docker — платформу для запуска приложений в изолированных контейнерах
- Установим Portainer — удобный веб-интерфейс для управления контейнерами
- Настроим MQTT-брокер Mosquitto — центральный узел для обмена данными между IoT-устройствами
- Развернём ESPHome — для прошивки ESP8266/ESP32 через YAML-конфиги
- Установим Home Assistant — сердце вашего умного дома
- Добавим HACS — магазин пользовательских интеграций и интерфейсов
- Установим Node-RED — визуальный инструмент для создания сценариев автоматизации
- Настроим Watchtower — для автоматического обновления всех Docker-контейнеров
- Установим Midnight Commander — удобный консольный файловый менеджер
В результате вы получите полностью работающую платформу для управления IoT-устройствами с низким энергопотреблением, автоматическим обновлением контейнеров и централизованным управлением через веб-интерфейс Home Assistant. Приставка будет работать 24/7, потребляя минимум электроэнергии, и станет идеальным бюджетным решением для вашего умного дома.
| Параметр | Значение |
|---|---|
| ОС | Android 11 |
| Центральный процессор | S905W2 64-битный четырёхъядерный ARM Cortex A35 |
| Графический процессор | Mali-G31 |
| Оперативная память | LPDDR4 912MHz (2/16) или DDR3 (4/32/64) |
| Встроенная память | 16GB/32GB/64GB eMMC |
| Сеть | Ethernet 100 Мбит, Wi-Fi 2.4/5 ГГц, Bluetooth 4.0 |
| Порты | USB 2.0 (2 шт), microSD, HDMI, AV, SPDIF, RJ45 |
| Питание | 5V / 2A (DC 5.5×2.1 мм) |
Содержание статьи
- 1Установка Debian на приставку
- 2Установка актуального времени
- 3Отключение режима сна (USB autosuspend)
- 4Установка Docker и Portainer
- 5Установка MQTT Broker (Mosquitto)
- 6Установка ESPHome
- 7Установка Home Assistant
- 8Установка HACS
- 9Установка Node-RED
- 10Установка Watchtower (автообновление)
- 11Установка Midnight Commander (mc)
- 12Связка Node-RED с Home Assistant через API
1. Установка Debian на приставку
Минимальные требования: лучше брать microSD карту от 16 ГБ (8 ГБ тоже хватит) с быстрой скоростью записи и чтения. В моем случае это microSDXC Canvas Go! Plus 128 ГБ, 200 МБ/с.
Подготовка носителя и образа Debian:
- Скачайте программу для записи образа: https://etcher.balena.io/
- Скачайте образ Debian для Amlogic: github.com/devmfc/debian-on-amlogic
- Запишите образ на карту с помощью Balena Etcher
- Откройте файл
boot.configна первом FAT-разделе карты - Раскомментируйте строку
box=tanixw2(удалите # в начале) - Сохраните конфигурационный файл
- Вставьте SD-карту (флешку) в выключенный ТВ-бокс
- Зажмите зубочисткой кнопку в аудиоразъеме и подайте питание
- Удерживайте кнопку сброса около 7 секунд
После загрузки подключитесь по SSH (логин: root, пароль: tvbox):
ssh root@ip_вашей_приставкиПеренос прошивки на внутреннюю память:
./aml-multiboot-setup.sh
./aml-install-to-emmc.sh
reboot
После перезагрузки снова подключитесь по SSH и обновите пакеты:
ssh root@ip
apt update && apt upgrade -y
apt install nano -y
2. Установка актуального времени
Проверьте текущие настройки:
timedatectlУстановите часовой пояс (для Москвы):
timedatectl set-timezone Europe/MoscowВключите автосинхронизацию по NTP:
timedatectl set-ntp true3. Отключение режима сна (USB autosuspend)
Часть 1. Создание скрипта-фикса
cat > /usr/local/bin/usb-fix.sh << 'EOF'
#!/bin/bash
echo -1 > /sys/module/usbcore/parameters/autosuspend
EOF
chmod +x /usr/local/bin/usb-fix.sh
Часть 2. Создание службы systemd
cat > /etc/systemd/system/usb-autosuspend-fix.service << 'EOF'
[Unit]
Description=Disable USB autosuspend for Smart Home
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/usb-fix.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
Часть 3. Активация службы
systemctl daemon-reload
systemctl enable usb-autosuspend-fix.service
systemctl start usb-autosuspend-fix.service
Часть 4. Проверка
cat /sys/module/usbcore/parameters/autosuspend4. Установка Docker и Portainer
📦 Что такое Portainer? Portainer — это легкий веб-интерфейс для управления контейнерами Docker, устраняющий необходимость использования командной строки.
Установка Docker:
apt update && apt install -y ca-certificates curl gnupg lsb-release && \
mkdir -p /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt update && apt upgrade -y && \
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && \
systemctl enable --now docker && \
docker --version
Установка Portainer:
docker volume create portainer
docker run -d --name portainer --restart=always -p 9000:9000 -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v portainer:/data portainer/portainer-ce:latest
http://ip:9000 (создайте администратора при первом входе).Расшарим папку с контейнерами в SMB:
apt install -y samba samba-common-bin
nano /etc/samba/smb.conf
Добавьте в конец файла:
[DockerVolumes]
path = /var/lib/docker/volumes
browseable = yes
read only = no
guest ok = no
valid users = root
force user = root
smbpasswd -a root
systemctl restart smbd
systemctl enable smbd
5. Установка MQTT Broker (Mosquitto)
docker volume create mosquitto
docker run -d --name mosquitto --restart=always --network host -v /var/lib/docker/volumes/mosquitto:/mosquitto eclipse-mosquitto:latest
docker stop mosquitto
Создаём файл mosquitto.conf:
mkdir -p /var/lib/docker/volumes/mosquitto/config
nano /var/lib/docker/volumes/mosquitto/config/mosquitto.conf
Вставьте текст:
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
Создаём файл passwd:
Сгенерируйте пароль на сайте dmelo.eu:
- Username:
homeassistant - Password: придумайте пароль
- Iterations:
100 - Нажмите Generate
nano /var/lib/docker/volumes/mosquitto/config/passwd
Вставьте весь текст из зелёного поля, сохраните (CTRL+O → ENTER → CTRL+X).
docker start mosquitto6. Установка ESPHome
docker volume create esphome
docker run -d --name esphome --restart=always --network host -e TZ=Europe/Moscow -v /var/lib/docker/volumes/esphome:/config esphome/esphome:latest
http://ip:60527. Установка Home Assistant
docker volume create homeassistant
docker run -d --name homeassistant --restart=always --network=host -v /var/lib/docker/volumes/homeassistant:/config ghcr.io/home-assistant/home-assistant:stable
http://ip:8123. Первый запуск может занять 5-10 минут.8. Установка HACS
Шаг 1. Скачайте и распакуйте HACS
Скачайте последнюю версию HACS с GitHub, распакуйте папку hacs в /var/lib/docker/volumes/homeassistant/_data/custom_components/ (создайте папку custom_components при необходимости).
Шаг 2. Перезагрузите Home Assistant
systemctl restart homeassistant
Или через веб-интерфейс: Настройки → Система → Управление → Перезагрузить
Шаг 3. Установите интеграцию в Home Assistant
- Зайдите в HA:
http://ваш_ip:8123 - Очистите кэш браузера (иначе HACS может не появиться)
- Настройки → Устройства и службы → Добавить интеграцию
- Найдите HACS и выберите его
- Подтвердите соглашения (поставьте галочки напротив всех пунктов) → Submit
- Авторизуйтесь через GitHub (скопируйте код и введите на
github.com/login/device)
9. Установка Node-RED
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
http://ip:188010. Установка Watchtower (автообновление контейнеров)
docker run -d --name watchtower --restart=always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --interval 86400
interval 86400 — проверка раз в сутки (86400 секунд = 24 часа). Флаг --cleanup удаляет старые образы.11. Установка Midnight Commander (mc)
apt update && apt install mc -yЗапуск: просто введите mc в терминале.
Горячие клавиши:
- F1 — справка
- F3 — просмотр файла
- F4 — редактирование
- F5 — копирование
- F6 — перемещение/переименование
- F7 — создание папки
- F8 — удаление
- F9 — меню
- F10 — выход
12. Связка Node-RED с Home Assistant через API
Более подробно описано в статье «Node-RED + Home Assistant: API-ключ и MQTT».