MajorDoMo Модуль Tuya

 

Модуль для взаимодействия с устройствами Tuya через облако и локально.

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


Для работы модуля необходимо установить пакет php-bcmath, в убунту или дебиан

sudo apt install php-bcmath

А так же в последних версиях mariadb включен строгий режим, отключить его можно поправив конфиг добавив в конфиг mysql 

nano /etc/mysql/mariadb.conf.d/50-server.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


Для получения списка устройств, прикрепленных к вашему аккаунту в программе TuyaSmart, надо в Настройки ввести:

E-mail и пароль вашего аккаунта
Код страны
Выбрать программу которой вы пользуетесь - TuyaSmart или Smart Life.

Первоначально модуль писался для работы через специальное облако для HA.
Сейчас можно нажать флажок Использовать оригинальное облако и работать с той же информацией, с которой работает ваш смартфон.

После нажатия кнопки Обновить вы получите список ваших устройств с теми именами, под которыми устройства числятся в TuyaSmart.

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

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

Самый простой способ получить локальный ключ это поставить на смартфон программу Packet Capture и отследить трафик который идёт от программы TuyaSmart. 
К сожалению с новой версией программы TuyaSmart способ не работает.
Ставьте предыдущую версию.

В самом большом по размере пакете Packet Capture в розовых сообщениях надо поискать конструкцию:

name: название вашего устройства

timezoneID:

category:

localKey: тут будет локальный ключ от вашего устройства


IP можно посмотреть на роутере по мак-адресу вашего устройства. Мак-адрес можно увидеть в TuyaSmart в разделе информация об устройстве

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

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




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

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. Статус только локально (соответственно для данного устройства статус из облака не используется)

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

Alias -Другое название для метрики

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


Комментарии

Популярные сообщения из этого блога

Перенос Armbian на SSD

Установка Home Assistants на Orange pi

Радиореле 220В 433МГц c кодировкой сигнала eV1527