udvnl

 
<<< Назад

Установка Zigbee2mqtt на телефон (Android) под эмулятором Termux

Небольшая статья по установке сервиса zigbee2mqtt на телефон с Android.
Установка проверялась на нескольких телефонах Redmi (7, 10. 14).
Предназначена для тестов или кратковременного быстрого развёртывания сети zigbee с ограниченным количеством устройств.
В качестве координатора используется сетевой (Lan или WiFi) координатор.
Для проверки работы использовался шлюз SLS, подключаемый по сети WiFi.

Termux — эмулятор терминала для среды GNU/Linux для Android. представляющее собой эмулятор терминала и полноценную среду Linux. Минимальный базовый функционал устанавливается автоматически, расширенные возможности подтягиваются с помощью менеджера пакетов и установкой стороннего ПО с git.
Распространяется под лицензией GNU General Public License v3.0.
Установка из Google Play хотя доступна, однако, официальная поддержка Android 10 и выше официально прекращена.
Последняя доступная версия приложения (0.101) на PlayMarket была опубликована 29 сентября 2020 года.
Также мовозможно использование утилиты Termux Boot для автоматического запуска среды Linux и его приложений (сервисов) при старте/перезагрузки смартфона.
Эти два приложения должны быть установлены из одного источника (F Droid, GitHub и т.д.).

Скачиваем и устанавливаем приложение * .apk Termux, для своей версии Android c Github или независимого маркета (F-Droid):
Release Termux App
После установки, первый вход в систему.
В эмуляторе пользователь создается автоматически. Что б узнать имя и IP адрес вводим стандартные для Linux команды

whoami
 ifconfig
 pwd

Вид приложения на телефоне:

Итак, я являюсь Пользователь u0_a474. Root в Termux по дефолту нет (пока он мне не нужен, не ставлю)
Первым делом, после установки термух устанавливаем SSH доступ.

pkg update && pkg upgrade
pkg install openssh

Меняем/создаем пароль для своего пользователя (без пароля SSH не работает, с ключами я пока не стал заморачиваться). Добавляем SSH в автозапуск при старте Termux.

passwd
sshd 
echo "sshd" >> ~/.bashrc

SSH работает на не совсем стандартном порту 8022. Дальнейшие действия, лично мне, удобнее с SSH терминала (в моем случае Putty).

Установка MQTT брокера Mosquitto

Для работы zigbee2mqtt требуется брокер, установим его и добавим в автозапуск

pkg install mosquitto
mkdir -p ~/.mosquitto
echo -e "listener 1883\nallow_anonymous true" > ~/.mosquitto/mosquitto.conf
mosquitto -c ~/.mosquitto/mosquitto.conf &
echo "pgrep -x mosquitto > /dev/null || mosquitto -c ~/.mosquitto/mosquitto.conf &" >> ~/.bashrc

Установка zigbee2mqtt в Termux

Устанавливаем пакеты и зависимости, клонируем репозиторий и переходим в директорию z2m.

pkg install nodejs yarn git make python -y
git clone https://github.com/Koenkk/zigbee2mqtt.git
cd zigbee2mqtt

установливаем Nodejs (стабильную LTS, на новой версии у меня произошла несовместимость, возникали в дальнейшем при установке z2m ошибки), менеджер пакетов pnpm.

pkg install nodejs-lts
npm install -g pnpm

Проверяем версии (команда, на следующей строке мой вывод):

node -v
v24.17.0
pnpm --version
[WARN] The "pnpm" field in package.json is no longer read by pnpm. The following                                     keys were ignored: "pnpm.overrides", "pnpm.onlyBuiltDependencies". See https://                                    pnpm.io/settings for the new home of each setting.
10.18.3

Как видно, pnpm установилась с предупреждением (не ошибкой), с первого взгляда на работу не повлияло
Устанавливаем сам zigbee2mqtt

pnpm install --frozen-lockfile

Установка прошла без ошибок.
Создаем файл конфигурации.
На этом шаге я решил немного упростить себе задачу.
С тестовой малинки скопировал из прошлой своей статьи содержимое файла конфигурации с настройкой SLS шлюза и вставил.

Zigbee2mqtt и шлюз SLS: подключение, настройка и и...

nano data/configuration.yaml

Дальше перегружаем Termux, я полностью перегрузил телефон.
После перезагруки, запускаем Termux. SSH запускается при старте системы, также должен запуститься и брокер Mosquitto (проверим его).

ps ax | grep mosquitto
19121 pts/28   S<+    0:00 grep mosquitto

запускаем сейчас zigbee2mqtt (запуск обязательно из директории /zigbee2mqtt).

pnpm start

После запуска и настройки конфигурации (как в прошлой заметке), веб интерфейс доступен на порту 8090.
И о чудо!!! Открываем IP адрес телефона браузером с указанием порта, у меня получилось следующее:

перейдем на вкладку настройки, увидим устройство, версии и прочее

Для сопряжения новых устройств, нажимаем кнопку Разрешить подключение в веб интерфейсе, само устройство переводим в режим сопряжения (обычно физической кнопкой или многократным нажатием, это уже в документации на устройство). Появляется устройство в сети zigbee

Далее нужно добавить сам Termux в автозагрузку, zigbee2mqtt и прочие действия.
которые добавлю позже, пока главное zigbee2mqtt на android - запускается и работает.

Хотелось бы сказать спасибо за идею и статьи и материалы авторам: artt652 и krepton85

Дополнение и продолжение (возможно будет обновляться) .....

Устанавливаем пакет pm2 и запускаем zigbee2mqtt режиме сервиса

npm install -g pm2
pm2 start "pnpm start" --name zigbee2mqtt
pm2 start "pnpm start" --name zigbee2mqtt


Управление процессом z2m:
• Посмотреть статус: pm2 status
• Посмотреть логи в реальном времени: pm2 logs zigbee2mqtt
• Остановить: pm2 stop zigbee2mqtt

Дополнение:
для нормальной работы в ОС, требуется добавить Termux в автозагрузку самого Android,
Для меня рабочий способ: Устанавливаем MacroDroid из Google Play.В самом Android заходим в настройки батареи и отключем оптимизацию энергопотребления для MacroDroid и Termux.Открываем MacroDroid и нажимаем «Добавить макрос».В разделе Триггеры (красный плюс) выберием: Устройство заблокировано/изменено → Загрузка устройства.В разделе Действия (синий плюс) выбераем: Запуск приложения → Выберите Termux из списка.

Обсуждение (0) (0)

Смотрите так же:
08.07.2026 Zigbee2mqtt и шлюз SLS: подключение, настройка и интеграция в MajorDoMo
01.07.2026 Установка плеера VLC и использование модуля Internet Radio
24.01.2025 Zigbee2mqtt 2025 (2.0) небольшое описание по установке
21.06.2024 Послеустановочные заметки
21.05.2024 RHVoice установка, проверка и прочее
03.11.2023 Пару мыслей о совместном применении SIP телефонии и систем «Умного Дома», а также немного об организации независимого от Internet канала связи с УД.
14.10.2023 Контроль SystemD и инструмент работы с системными логами через веб браузер
10.10.2023 Установка SIP сервера FreeSWITCH 1.10.10 на Raspberry Pi OS Lite (Debian11)
03.01.2023 Установка MajorDoMo с помощью скрипта от SergeJey на Raspberry Pi
09.12.2022 Где Телефон?
30.05.2022 Вариант установки Majordomo на Windows 10 с использованием пакета XAMPP. Немного о переносе и создании тестовой копии системы с Raspberry PI на Windows
09.03.2022 Небольшие заметки по подключению и использованию сервиса CONNECT
27.02.2022 Zigbee2mqtt, немного о стиках CC2531 и Sonoff USB Zigbee 3.0 Dongle Plus (сравнение, подключение, тестирование).
23.09.2021 Второй раз в первый класс. Часть 1: начало работы c базовым образом для RPi.
31.12.2020 Возможность создания канала управления через телефонные сети для системы домашней автоматизации.
06.07.2020 Чтение файлов из образа img Операционной системы. Возможность записи образа на меньшую по размеру SD карту памяти
19.06.2020 Raspberry Pi: немного о резервном копировании и актуальной копии системы
07.05.2020 Установка VoIP сервера FreeSWITCH с частичной интеграцией в систему MajorDoMo
28.04.2020 Установка базового образа MajorDoMo на Raspberry Pi. Начало первые шаги.
07.10.2019 Возможность создания видео звонков у MajorDoMo (RPI +WebCam)
11.09.2019 Создание голосового оповещения MajorDoMo
21.08.2019 Установка USB аудиокарты и настройка звука в Raspberry Pi
04.04.2019 Сертификация в Z-Wave
11.03.2019 RPI Monitor полезное ПО для Raspberry PI и Orange Pi
04.02.2019 Тестирование пропускной способности канала Ethernet (Wi-Fi) с помощью утилиты IPerf
23.12.2018 Пошаговая инструкция с картинками по установки MajorDoMo на Raspberry Pi 3 с помощью скрипта от Immortal
20.10.2018 Установка Freeswitch 1.8.2 на Debian 9 (Raspbian Stretch) на базовый образ системы «Умного дома» MajorDomo
14.08.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение первого устройства Z-Wave и первые шаги по автоматизации
08.07.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение контроллера RaZberry и первые шаги по Z-Wave
29.06.2018 Пошаговая инструкция по установке образа Majordomo на Raspberry Pi
21.06.2018 Удаленное наблюдение за близкими, но к сожалению, больными людьми.

Минск, Беларусь

На форуме: udvnl