16 281
правка
(Новая страница: «{{Draft}}») |
|||
(не показаны 22 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
{{ | {{DISPLAYTITLE: Использование Tasmota-устройств с контроллером Wiren Board}} | ||
== Описание == | |||
Tasmota — это прошивка для Wi-Fi устройств на базе контроллеров ESP. Подробнее читайте на сайте [https://tasmota.github.io/docs/ tasmota.github.io]. | |||
Для использования Tasmota-устройств с контроллером [[Wiren Board]] нужно установить конвертер [[#tasmota2wb | tasmota2wb]]. | |||
== tasmota2wb == | |||
[https://github.com/avp-avp/tasmota2wb tasmota2wb] — это стороннее программное обеспечение, которое написано и поддерживается пользователем [https://support.wirenboard.com/u/avp/summary avp]. | |||
Конвертер выполнен в виде сервиса, который преобразовывает MQTT-топики tasmota-устройства в контролы виртуального устройства Wiren Board, поэтому перед работой с tasmota-устройством в нём нужно включить поддержку MQTT. | |||
Так как конвертер поставляется в исходных кодах, то для сборки вам понадобится персональный компьютер с Debian-подобной ОС Linux. | |||
<gallery mode="traditional" widths ="265px" heights="300px"> | |||
Image: tasmota-dev-wb.png| Tasmota-устройство в веб-интерфейсе контроллера Wiren Board | |||
Image: tasmota-dev.png| Веб-интерфейс tasmota | |||
Image: tasmota-dev-mqtt.png| Настройка MQTT на tasmota-устройстве | |||
</gallery> | |||
=== Подготовка === | |||
Подготовим среду для сборки конвертера. Все команды могут выполниться от обычного пользователя, где необходимы привилегии администратора, используйте sudo. | |||
Установите необходимые библиотеки: | |||
<syntaxhighlight lang="bash"> | |||
apt install git libjsoncpp-dev libmosquittopp-dev | |||
</syntaxhighlight> | |||
Создайте папку, где будем собирать конвертер и хранить систему сборки: | |||
<syntaxhighlight lang="bash"> | |||
mkdir ~/dev | |||
cd ~/dev | |||
</syntaxhighlight> | |||
Загрузите Wiren Board Development Environment: | |||
<syntaxhighlight lang="bash"> | |||
wget https://raw.githubusercontent.com/wirenboard/wirenboard/master/wbdev | |||
chmod +x wbdev | |||
</syntaxhighlight> | |||
Установите Docker: | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y | |||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |||
echo \ | |||
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ | |||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |||
sudo apt update | |||
sudo apt install docker-ce docker-ce-cli containerd.io | |||
</syntaxhighlight> | |||
=== Сборка === | |||
Загрузите исходные коды конвертера: | |||
<syntaxhighlight lang="bash"> | |||
cd ~/dev | |||
git clone https://github.com/avp-avp/tasmota2wb.git | |||
cd tasmota2wb | |||
</syntaxhighlight> | |||
В оригинальном репозитории в файле <code>.gitmodules</code> путь к субмодулю libs указан через ssh. Если у вас нет аккаунта на Github с привязанным SSH-ключём, то измените путь репозитория: | |||
# Откройте файл на редактирование: | |||
#:<syntaxhighlight lang="bash"> | |||
nano ./.gitmodules | |||
</syntaxhighlight> | |||
# Замените url на <code>https://github.com/avp-avp/libs.git</code>: | |||
#:<syntaxhighlight lang="console"> | |||
[submodule "libs"] | |||
path = libs | |||
url = https://github.com/avp-avp/libs.git | |||
</syntaxhighlight> | |||
Инициализируйте субмодуль <code>libs</code>: | |||
<syntaxhighlight lang="bash"> | |||
git submodule init | |||
git submodule update | |||
</syntaxhighlight> | |||
Соберите конвертер, для этого выполните по очереди команды: | |||
<syntaxhighlight lang="bash"> | |||
sudo WBDEV_TARGET=wb6 ../wbdev chroot autoreconf -fvi | |||
sudo WBDEV_TARGET=wb6 ../wbdev chroot ./configure | |||
sudo WBDEV_TARGET=wb6 ../wbdev chroot make | |||
</syntaxhighlight> | |||
В примере указана переменная <code>WBDEV_TARGET=wb6</code> — это для сборки для контроллера Wiren Board 6. Если вы собираете под другой контроллер, смотрите нужное значение <code>WBDEV_TARGET</code> в [[#Полезные ссылки | Описании Wiren Board Development Environment]]. | |||
Скопируйте файлы на контроллер, например, с ip-адресом <code>192.168.42.1</code>: | |||
<syntaxhighlight lang="bash"> | |||
scp tasmota2wb.service root@192.168.42.1:/etc/systemd/system/ | |||
scp tasmota2wb/tasmota2wb root@192.168.42.1:/usr/bin/tasmota2wb | |||
scp tasmota2wb.json root@192.168.42.1:/mnt/data/etc/tasmota2wb.conf | |||
ssh root@192.168.42.1 "ln -s /mnt/data/etc/tasmota2wb.conf /etc/tasmota2wb.conf" | |||
ssh root@192.168.42.1 "systemctl enable tasmota2wb" | |||
ssh root@192.168.42.1 "service tasmota2wb start" | |||
</syntaxhighlight> | |||
=== Добавление сенсоров === | |||
Сенсоры tasmota-устройств описаны в файле конфигурации <code>tasmota2wb.conf</code>. | |||
Чтобы добавить новый сенсор, нужно: | |||
# Найти в MQTT-брокере топик с tasmota-устройством, он будет по адресу <code>/tasmota/discovery/</code>. | |||
# Найти в нём топик <code>sensors</code>, например, мы нашли запись <code>"ANALOG":{"Temperature":50.3}</code>. | |||
# Добавить новый сенсор в файл конфигурации, раздел <code>sensors</code>: | |||
#:<syntaxhighlight lang="javascript"> | |||
{"path":"ANALOG/Temperature", "type":"temperature", "name":"Temperature"} | |||
</syntaxhighlight> | |||
Соблюдайте синтаксис JSON при добавлении нового сенсора. | |||
=== Deb-пакет === | |||
Пакет собран из официального репозитория 07.09.2021 для контроллера Wiren Board 6, может не содержать всех обновлений и не поддерживается. | |||
* [[Media: tasmota2wb_0.1-1_armhf.deb| tasmota2wb_0.1-1_armhf.deb]] | |||
== Настройка tasmota-устройства == | |||
Настройте tasmota-устройство, чтобы оно отправляло данные в MQTT-брокер контроллера: | |||
# Перейдите '''Configuration''' → '''Configure MQTT'''. | |||
# Заполните поля, в поле '''Host''' укажите IP-адрес контроллера, а ''User'' и ''Password'' можно не указывать — по умолчанию на контроллере Wiren Board MQTT-брокер не требует авторизации. | |||
# Нажмите '''Save'''. | |||
По умолчанию tasmota-устройство отправляет телеметрию в MQTT-брокер раз в 300 секунд, но вы можете это изменить: | |||
# Перейдите '''Configuration''' → '''Configure Logging'''. | |||
# В поле '''Telemetry period''' установите желаемое значение, но не меньше 10 — это минимум, заложенный автором прошивки. | |||
# Нажмите кнопку '''Save'''. | |||
== Полезные ссылки == | |||
* [https://tasmota.github.io/docs/ Официальный сайт прошивки Tasmota] | |||
* [https://github.com/avp-avp/tasmota2wb Репозиторий tasmots2wb на Github] | |||
* [https://support.wirenboard.com/t/zigbee-livolo/4343/12 Тема на нашем форуме, где упоминается конвертер tasmota2wb] | |||
* [https://github.com/wirenboard/wirenboard Описание Wiren Board Development Environment] | |||
* [https://support.wirenboard.com/t/vosstanovlenie-bazy-posle-obnovleniya/16876/11 Скрипт конвертера на wb-rules] — альтернативный вариант не требующий сборки. | |||
* [https://support.wirenboard.com/t/tasmota-ne-podklyuchaetsya-k-mosquitto/19096/3 Настройка доступа к mosquitto v2]. |