[Модуль] Tuya

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

Модератор: immortal

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

[Модуль] 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

Для получения списка устройств, прикрепленных к вашему экаунту в программе TuyaSmart надо кликнуть на Настройки и ввести E-mail и пароль экаунта под которым вы заходите в программу, код страны, а также выбрать какой программой вы пользуетесь - TuyaSmart или Smart Life. Первоначально модуль писался для работы через специальное облако для HA. Сейчас можно нажать флажок Использовать оригинальное облако и работать с той же информацией, с которой работает ваш смарфтон.
После нажатия кнопки Обновить вы получите список ваших устройств с теми именами, под которыми устройства числятся в TuyaSmart
СпойлерПоказать
tuya_list.jpg
tuya_list.jpg (65.84 КБ) 10721 просмотр
Далее нажав кнопку редактирование на вкладке Данные можно связать поле State с ПУ выключатель. После этого устройством можно управлять из ПУ

Управлять устройствами можно либо через облако, либо локально - для этого нужен локальный ip устройства и локальный ключ. При авторизации через оригинальное облако локальный ключ должен подтягиваться автоматически.

При авторизации через старое облако - использовать
Старый способ получения ключаПоказать
Самый простой способ получить локальный ключ это поставить на смартфон программу Packet Capture и отследить трафик который идёт от программы TuyaSmart. (К сожалению с новой версией программы TuyaSmart не работает - ставьте предыдущую.) https://cloud.mail.ru/public/4Nf3/5uBwD7a5R
В самом большом по размере пакете в розовых сообщениях надо поискать конструкцию

name: название вашего устройства
timezoneID:
category:
localKey: тут будет локальный ключ от вашего устройства
ip можно посмотреть на рутере по мак-адресу вашего устройства. Мак-адрес можно увидеть в TuyaSmart в разделе информация об устройстве

Имея localKey и ip заходим в редактирование устройства и вносим эту информацию в соответствующие поля. После сохранения в данных должны появится дополнительные поля. Upd. При авторизации через оригинальное облако все эти поля появятся сразу же с появлением устройст
tuya_date.jpg
tuya_date.jpg (224.49 КБ) 10719 просмотров
Для розеток с соответствующим функционалом там могут быть вольтаж, сила тока, мощность и т.д.

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

Пока модуль протестирован с 2 видами розеток, краном для воды и одним сетевым фильтром. Буду рад услышать отзывы от владельцев других устройств

Маленькое замечание - если айпи устройства в вашей локальной сети поменяется, то поменяется и локальный ключ.

Как повзаимодействовать с ДУ из модуля

1. В аппликации Туя на смартфоне добавляется смарт сцена, которая по клику, например, включает ТВ. Называем её, например, TV_Power
2. В модуле появляется устройство TV_Power с типом scene с каким-то id, допустим abcdef
3. В методе/сценарии, где нам надо включить телевизор пишем

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

include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$tuya_module->TuyaRemoteMsg('abcdef','1','turnOnOff');
В коде abcdef меняем на свой ID. Все остальные аргументы не трогаем

Профит - этот код запускает сцену, сцена запускает пульт - пульт включает телевизор

Примерно так же можно производить какие-то действия с устройствами, которые напрямую модулем не поддерживаются, например, замками

В устройствах добавлены флажки

1. Управлять через облако (при наличии айпи и ключа - статус считывается локально, а управление идёт через облако)
2. Статус только локально (соответственно для данного устройства статус из облака не используется)

Добавлено 15/3/2020: По клику на названии метрики открывается дополнительная строчка в которой можно отредактировать:

Alias -Другое название для метрики
А также актуальные для термостатов параметры /2 и /10, указывающие нужно ли делить на 2 или 10 данные приходящие из облака

Если вам захочется задонатить модуль - мой Paypal : paypal.me/fandaymon
Последний раз редактировалось fandaymon Вт фев 02, 2021 12:01 am, всего редактировалось 12 раз.
За это сообщение автора fandaymon поблагодарили (всего 12):
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) и ещё 2
Рейтинг: 14.12%
Аватара пользователя
Divan
Сообщения: 855
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 116 раз
Поблагодарили: 265 раз

Re: [Модуль] Tuya

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

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

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

Re: [Модуль] Tuya

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

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

Re: [Модуль] Tuya

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

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

Re: [Модуль] Tuya

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

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

Re: [Модуль] Tuya

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

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

Re: [Модуль] Tuya

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

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

Re: [Модуль] Tuya

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

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

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
Сообщения: 52
Зарегистрирован: Чт дек 07, 2017 2:36 pm
Благодарил (а): 31 раз
Поблагодарили: 9 раз

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-)
При первой регистрации я выбрал Россию, не погрузилось устройство в модуль, потом создал вторую УЗ, выбрал Германию, тоже не погрузилось, создал третью УЗ, но уже выбрал Латвию как и у вас, после этого устройство появилось в модуле.
У меня стояло "Россия" и все сразу завелось.
Ответить