[Модуль] Tuya

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

fandaymon
Сообщения: 1561
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 577 раз

[Модуль] Tuya

Сообщение fandaymon » Пн сен 30, 2019 12:23 am

Модуль для взаимодействия с устройствами Tuya через облако и локально.
Поддерживается работа с устройствами, сценами и пультами ДУ.
Модуль в состоянии перманентной бетты.

Ставится из Маркета дополнений - Оборудование - Tuya Smarthome

для работы модуля необходимо установить пакет php-bcmath, в убунту или дебиан sudo apt install php-bcmath
а так же в последних версиях mariadb включен строгий режим, отключить его можно поправив конфиг добавив в конфиг mysql строку в секцию [mysqld]:
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
обычно конфиг лежит тут /etc/mysql/my.cnf или /etc/mysql/mariadb.conf.d/50-server.cnf

Работа с модулем начинается с установки на смартфон приложений Tuya Smart или Smart Life. Далее регистрируемся в приложении (запоминаем мейл, пароль и код страны) и привязываем к учётке свои устройства

Ставим модуль. Заходим в Настройки модуля и вносим необходимую информацию
Настраиваем модульПоказать
tuya_settings.jpg
tuya_settings.jpg (175.57 КБ) 14967 просмотров
Облако HA использовать крайне не рекомендуется! Оно в модуле появилось самым первым, но в последнее время не даёт опрашивать статус чаще чем раз в 10 минут. К тому же набор устройств там крайне ограниченный - датчиков, пультов, замков там нету

После сохранения настроек модуль вытащит устройства, привязанные к учётке Tuya Smart или Smart Life
tuya_module.jpg
tuya_module.jpg (239.86 КБ) 14967 просмотров
Кнопка Сканировать поможет найти локальные адреса устройств и их версии (почти у всех новых устройств версия будет 3.3, но ещё встречаются устройства версии 3.1)

У каждого из устройств из списка есть свои настройки, кликнув на карандаш их можно посмотреть/отредактировать
tuya_device.jpg
tuya_device.jpg (121.65 КБ) 14967 просмотров
На вкладке Данные можно посмотреть метрики устройства и кликнув на название метрики посмотреть подробную информацию о метрике
tuya_metric.jpg
tuya_metric.jpg (159.06 КБ) 14967 просмотров
Галочка Конвертировать цвета актуальна для цветных ламп и позволяет автоматически конвертировать цвет из формата туи в формат МДМ и наоборот.
/100, /10, /2 - отвечают за обработку значений полученных от устройства. Из облака или локально мы можем получать только целые числа, поэтому перед передачей они умножаются на 10, 100 или 2 в зависимости от точности измерения. После получения значения модуль делит на соответствующий делитель
Value Scale - это степень 10 на которую делится значения (0 - делится на 1, 1 - делится на 10, 2 - на 100 и т.д.) Это встроенный механизм Туи, который работает автоматически на большем количестве устройств ( Но на некоторых термостатах всё-таки приходится подбирать какие-то из вышеупомянутых галочек)
Replace List работает так же как и в модуле MQTT - конвертирует значения согласно списку. Например такой replace list (white=1,colour=2), будет получать из туи значение colour, а записывать в МДМ двойку и наоборот
Далее идут минимальное/максимальное значение метрики, единица измерения, чтение/запись и тип метрики (enum - это список возможных значений)

На вкладке Сцены модуль показывает Сцены импортированные из Tuya Smart/Smart Life, а также позволяет запустить их и показывает команду по которой можно запустить сцену из скрипта (шаблона, сценария и т.п.)

На вкладке Пульты модуль показывает Пульты, импортированные из Tuya Smart/Smart Life, а также позволяет кликнуть на кнопку пульта и показывает команду по которой можно нажать на кнопку пульта из скрипта (шаблона, сценария и т.п.)
Работа пульта будет идти согласно установкам устройства пульт ИК, к которому привязан соответствующий пульт. Если в ИК-пульте внесены локальный адрес, локальный ключ и выбрано Управление - локальное, то код будет отправлен на ИК-пульт по локальной сети. Если же какой-то информации нету, или Управление стоит через облако, то код будет отправлен в облако
21.08.2021
Добавлена экспериментальная поддержка IOT платформы от туи.Показать
Для работы нужно зарегистрироваться на https://iot.tuya.com/
После чего добавить новый проект в Cloud - Develoment
tuya_iot.jpg
tuya_iot.jpg (132.86 КБ) 14976 просмотров
Подписаться на API Smart (бесплатный триал):

Smart Home Devices Management
Authorization
Smart Home Family Management
Smart Home Scene Linkage
IoT Data Analytics
IoT Video Live Stream
Smart Lock Open Service
Industry Project Client Service
Device Status Notification

Затем необходимо добавить в проект свои устройства

Devices - Link Tuya App Account - Add App Acount и открыв приложение Tuya Smart на телефоне зайти в профиль и нажать на кнопку считывания QR-кода (в правом верхнем углу) подтвердить добавление устройств в проект

После чего зайти на вкладку Users и добавить юзера из Tuya Smart

Далее в настройках модуля внести Client ID и Client Secret от своего проекта и поставить галочку Использовать IOT облако

После сохранения настроек модуль попытается подключиться к IOT облаку. При успешном подключении модуль запустит MQTT клиент, на который будут прилетать изменения метрик устройств, включенных в проект

У каждого устройства в модуле есть пункт Статус: Через облако, Локально, Через MQTT. Чтобы значения из MQTT прилетали в метрики устройства нужно выбрать Через MQTT
tuya_mqtt.jpg
tuya_mqtt.jpg (74.75 КБ) 14976 просмотров
Пока цикл в экспериментальном состоянии приходящие по MQTT значения будут отражаться в логе. Там же будет сообщение о неудачном подключении к IOT

Поскольку при помощи MQTT изменения прилетают практически сразу, появилась возможность сделать такой вот объект для замка
Tuya_Door_Log.jpg
Tuya_Door_Log.jpg (4.11 КБ) 14814 просмотров
При открывании замка МДМ получает информацию о том кто, когда и как открыл замок, заносит её в свойство log и приветствует пришедшего. Для определения юзера используется функция TuyaDoorUser, которая принимает dev_id замка и идентификатор вида "номер метрики-id", например, для отпечатков это будет 1-3, где 3 это номер отпечатка

В файле TuyaLock.txt находится шаблон класса
TuyaLock.zip
(1.52 КБ) 334 скачивания
Скрипт который заносит в свойство потребление за текущий месяцПоказать

Код: Выделить всё

$stats = Tuya_Web_Stats('478803312cf43204ab22', 17); 
sg('object.property', $stats["years"][(int) date('Y')][date('m')]);
Если вам захочется задонатить модуль - мой Paypal : paypal.me/fandaymon
Настройка под SynologyПоказать

Первоначально, заходим в докер выбираем контейнер Majordomo (название контейнера может отличаться)
photo_2022-11-08_10-06-37.jpg
photo_2022-11-08_10-06-37.jpg (50.14 КБ) 9215 просмотров
Открываем двойным кликом образ, и переходим в терминал
photo_2022-11-20_21-36-41.jpg
photo_2022-11-20_21-36-41.jpg (57.03 КБ) 9215 просмотров
Жмем создать получаем терминал bash
photo_2022-11-08_10-06-37 (4).jpg
photo_2022-11-08_10-06-37 (4).jpg (25.59 КБ) 9215 просмотров
photo_2022-11-08_10-06-37 (5).jpg
photo_2022-11-08_10-06-37 (5).jpg (25.97 КБ) 9215 просмотров
Вводим команду

Код: Выделить всё

apt update 
apt install php-bcmath
Устанавливаем, и делаем перезагрузку докера, еще раз обновляем данные в модуле туя (Жмем кнопку обновить) и получаем "Sid" и устройства

photo_2022-11-20_21-43-17.jpg
photo_2022-11-20_21-43-17.jpg (32.47 КБ) 9215 просмотров
По поводу MariaDB
Файл custom.cnf
Ищем секцию [mysqld]
И вписываем

Код: Выделить всё

sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
photo_2022-11-20_21-44-22.jpg
photo_2022-11-20_21-44-22.jpg (21.18 КБ) 9215 просмотров
Последний раз редактировалось fandaymon Вт ноя 22, 2022 2:21 am, всего редактировалось 26 раз.
За это сообщение автора fandaymon поблагодарили (всего 16):
Divan (Пн сен 30, 2019 12:30 am) • nickneo (Пн сен 30, 2019 9:15 am) • VooDooN (Вт окт 01, 2019 10:08 pm) • skill (Ср окт 02, 2019 8:53 pm) • TrDA (Пт окт 04, 2019 3:26 pm) • mihas (Чт окт 31, 2019 12:52 am) • George2017 (Чт янв 02, 2020 8:34 am) • Sergey.Chek (Вс май 31, 2020 6:17 pm) • Gelezako (Пт окт 16, 2020 11:15 pm) • Logrus (Пт дек 04, 2020 7:58 pm) и ещё 6
Рейтинг: 18.6%
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: [Модуль] Tuya

Сообщение Divan » Пн сен 30, 2019 12:43 am

Добавлю, чтобы устройства появились в модуле, в приложении Tyua при регистрации, нужно выбрать регион Латвия.

Вот так у меня подтянулся сетевой фильтр.
СпойлерПоказать
Снимок2.JPG
Снимок2.JPG (74.05 КБ) 27590 просмотров
Во так выглядит строка с ключом в Packet Capture
СпойлерПоказать
Снимок5.jpg
Снимок5.jpg (27.16 КБ) 27590 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
fandaymon
Сообщения: 1561
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 577 раз

Re: [Модуль] Tuya

Сообщение fandaymon » Пн сен 30, 2019 12:48 am

Divan писал(а):
Пн сен 30, 2019 12:43 am
Добавлю, чтобы устройства появились в модуле, в приложении Tyua при регистрации, нужно выбрать регион Латвия.
Сильно сомневаюсь, что это так... 8-) Мне кажется это просто совпадение.
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: [Модуль] Tuya

Сообщение Divan » Пн сен 30, 2019 12:55 am

Когда я выбрал Германию, то устройства не подтянулись, а когда выбрал Латвию, то они сразу появились.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
fandaymon
Сообщения: 1561
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 577 раз

Re: [Модуль] Tuya

Сообщение fandaymon » Пн сен 30, 2019 12:57 am

Divan писал(а):
Пн сен 30, 2019 12:55 am
Когда я выбрал Германию, то устройства не подтянулись, а когда выбрал Латвию, то они сразу появились.
Наверное потому что Германия - 1 к России, а Латвия - нет.
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: [Модуль] Tuya

Сообщение Divan » Пн сен 30, 2019 1:12 am

Да, но вы же сказали, что нужно выбирать строго европейские страны, я и выбрал Германию, а она не пошла. Значит есть определенный список стран, с которым модуль может работать.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
fandaymon
Сообщения: 1561
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 577 раз

Re: [Модуль] Tuya

Сообщение fandaymon » Пн сен 30, 2019 1:17 am

Divan писал(а):
Пн сен 30, 2019 1:12 am
Да, но вы же сказали, что нужно выбирать строго европейские страны, я и выбрал Германию, а она не пошла. Значит есть определенный список стран, с которым модуль может работать.
Россия она тоже европейская... 8-)
Аватара пользователя
nickneo
Сообщения: 90
Зарегистрирован: Чт дек 07, 2017 2:36 pm
Благодарил (а): 38 раз
Поблагодарили: 30 раз

Re: [Модуль] Tuya

Сообщение nickneo » Пн сен 30, 2019 9:51 am

Для розеток с соответствующим функционалом там могут быть вольтаж, сила тока, мощность и т.д.
Добрый день, а с получаемыми значениями (вольтаж,мощность) пока не исправили?
просто смотрю у Вас на скриншоте корректно отображается вольтаж, а у меня после обновления модуля, так и осталось значение умноженное на 10.
TuRelay.PNG
TuRelay.PNG (25.54 КБ) 27543 просмотра
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: [Модуль] Tuya

Сообщение Divan » Пн сен 30, 2019 10:05 am

fandaymon писал(а):
Пн сен 30, 2019 1:17 am
Divan писал(а):
Пн сен 30, 2019 1:12 am
Да, но вы же сказали, что нужно выбирать строго европейские страны, я и выбрал Германию, а она не пошла. Значит есть определенный список стран, с которым модуль может работать.
Россия она тоже европейская... 8-)
При первой регистрации я выбрал Россию, не погрузилось устройство в модуль, потом создал вторую УЗ, выбрал Германию, тоже не погрузилось, создал третью УЗ, но уже выбрал Латвию как и у вас, после этого устройство появилось в модуле.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
nickneo
Сообщения: 90
Зарегистрирован: Чт дек 07, 2017 2:36 pm
Благодарил (а): 38 раз
Поблагодарили: 30 раз

Re: [Модуль] Tuya

Сообщение nickneo » Пн сен 30, 2019 10:19 am

Divan писал(а):
Пн сен 30, 2019 10:05 am
fandaymon писал(а):
Пн сен 30, 2019 1:17 am
Divan писал(а):
Пн сен 30, 2019 1:12 am
Да, но вы же сказали, что нужно выбирать строго европейские страны, я и выбрал Германию, а она не пошла. Значит есть определенный список стран, с которым модуль может работать.
Россия она тоже европейская... 8-)
При первой регистрации я выбрал Россию, не погрузилось устройство в модуль, потом создал вторую УЗ, выбрал Германию, тоже не погрузилось, создал третью УЗ, но уже выбрал Латвию как и у вас, после этого устройство появилось в модуле.
У меня стояло "Россия" и все сразу завелось.
Ответить