Tasmota: различия между версиями

Материал из Wiren Board
(Новая страница: «{{Draft}}»)
 
 
(не показаны 22 промежуточные версии 4 участников)
Строка 1: Строка 1:
{{Draft}}
{{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].

Текущая версия на 11:52, 25 марта 2024

Описание

Tasmota — это прошивка для Wi-Fi устройств на базе контроллеров ESP. Подробнее читайте на сайте tasmota.github.io.

Для использования Tasmota-устройств с контроллером Wiren Board нужно установить конвертер tasmota2wb.

tasmota2wb

tasmota2wb — это стороннее программное обеспечение, которое написано и поддерживается пользователем avp.

Конвертер выполнен в виде сервиса, который преобразовывает MQTT-топики tasmota-устройства в контролы виртуального устройства Wiren Board, поэтому перед работой с tasmota-устройством в нём нужно включить поддержку MQTT.

Так как конвертер поставляется в исходных кодах, то для сборки вам понадобится персональный компьютер с Debian-подобной ОС Linux.


Подготовка

Подготовим среду для сборки конвертера. Все команды могут выполниться от обычного пользователя, где необходимы привилегии администратора, используйте sudo.

Установите необходимые библиотеки:

apt install git libjsoncpp-dev libmosquittopp-dev

Создайте папку, где будем собирать конвертер и хранить систему сборки:

mkdir ~/dev
cd ~/dev

Загрузите Wiren Board Development Environment:

wget https://raw.githubusercontent.com/wirenboard/wirenboard/master/wbdev
chmod +x wbdev

Установите Docker:

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

Сборка

Загрузите исходные коды конвертера:

cd ~/dev
git clone https://github.com/avp-avp/tasmota2wb.git
cd tasmota2wb

В оригинальном репозитории в файле .gitmodules путь к субмодулю libs указан через ssh. Если у вас нет аккаунта на Github с привязанным SSH-ключём, то измените путь репозитория:

  1. Откройте файл на редактирование:
    nano ./.gitmodules
    
  2. Замените url на https://github.com/avp-avp/libs.git:
    [submodule "libs"]
    	path = libs
    	url = https://github.com/avp-avp/libs.git
    

Инициализируйте субмодуль libs:

git submodule init
git submodule update

Соберите конвертер, для этого выполните по очереди команды:

sudo WBDEV_TARGET=wb6 ../wbdev chroot autoreconf -fvi
sudo WBDEV_TARGET=wb6 ../wbdev chroot ./configure 
sudo WBDEV_TARGET=wb6 ../wbdev chroot make

В примере указана переменная WBDEV_TARGET=wb6 — это для сборки для контроллера Wiren Board 6. Если вы собираете под другой контроллер, смотрите нужное значение WBDEV_TARGET в Описании Wiren Board Development Environment.

Скопируйте файлы на контроллер, например, с ip-адресом 192.168.42.1:

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"

Добавление сенсоров

Сенсоры tasmota-устройств описаны в файле конфигурации tasmota2wb.conf.

Чтобы добавить новый сенсор, нужно:

  1. Найти в MQTT-брокере топик с tasmota-устройством, он будет по адресу /tasmota/discovery/.
  2. Найти в нём топик sensors, например, мы нашли запись "ANALOG":{"Temperature":50.3}.
  3. Добавить новый сенсор в файл конфигурации, раздел sensors:
    {"path":"ANALOG/Temperature",     "type":"temperature",         "name":"Temperature"}
    

Соблюдайте синтаксис JSON при добавлении нового сенсора.

Deb-пакет

Пакет собран из официального репозитория 07.09.2021 для контроллера Wiren Board 6, может не содержать всех обновлений и не поддерживается.

Настройка tasmota-устройства

Настройте tasmota-устройство, чтобы оно отправляло данные в MQTT-брокер контроллера:

  1. Перейдите ConfigurationConfigure MQTT.
  2. Заполните поля, в поле Host укажите IP-адрес контроллера, а User и Password можно не указывать — по умолчанию на контроллере Wiren Board MQTT-брокер не требует авторизации.
  3. Нажмите Save.

По умолчанию tasmota-устройство отправляет телеметрию в MQTT-брокер раз в 300 секунд, но вы можете это изменить:

  1. Перейдите ConfigurationConfigure Logging.
  2. В поле Telemetry period установите желаемое значение, но не меньше 10 — это минимум, заложенный автором прошивки.
  3. Нажмите кнопку Save.

Полезные ссылки