[Модуль] Tuya

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

Модератор: immortal

kolizeyalex
Сообщения: 14
Зарегистрирован: Вт окт 25, 2016 2:41 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: [Модуль] Tuya

Сообщение kolizeyalex » Ср июн 15, 2022 11:44 am

fandaymon писал(а):
Вт июн 07, 2022 7:05 pm
kolizeyalex писал(а):
Вс июн 05, 2022 9:26 pm
Есть проблема с локальным опросом zigbee датчиков, в общем все было хорошо пока zigbee шлюз moes проводной не обновился (сейчас версия основного модуля 1.17.0, модуля zigbee 1.0.12), после этого данные перестали приходить. Есть решение указанной проблемы?
А не локально приходят?

Причин может быть много - ip шлюза поменялся, протокол изменили, устройства от шлюза отвязались. Иногда помогает включить debug в настройках и посмотреть, что именно модуль пишет в лог
Не локально приходят, debug включал опрос идёт, а данных нет. Я думаю протокол изменили. Не подскажите куда смотреть чтобы выявить изменения в протоколе? Может трафик поснифить?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Ср июн 15, 2022 4:46 pm

grifindorec писал(а):
Вт июн 14, 2022 6:58 pm
Добрый день.
Датчик движения. Выставлено "управлять" и "статус" через облако. В настройках модуля все способы обновления - 1 секунда. В приложении, когда датчик отрабатывает, статус меняется сразу. В модуле через 3-5 секунд. Почему так может быть? Что-то в цикле?
Потому что приложение работает через MQTT, а не запрашивает статус время от времени. Так работает IOT облако - статус поменялся, устройство отправило изменение в MQTT, MQTT клиент получил информацию об изменении - поменял статус, время реакции 1-2 секунды

Ставить интервал опроса облака в 1 секунды - бессмысленно, в зависимости от мощности сервера 3-5 секунд это самый минимум + забанить могут за слишком частое обращение

Локальный опрос - минимально 2-3 секунды, цикл опрашивает устройства последовательно, если их какое-то количество, то цикл просто не успеет за секунды все опросить. Плюс специфика устройств туи - они поддерживают только одно соединение, поэтому сразу после изменения статуса до устройства не достучаться - оно занято отправкой своего статуса в облако
За это сообщение автора fandaymon поблагодарил:
grifindorec (Ср июн 15, 2022 11:36 pm)
Рейтинг: 1.16%
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Ср июн 15, 2022 4:52 pm

kolizeyalex писал(а):
Ср июн 15, 2022 11:44 am
fandaymon писал(а):
Вт июн 07, 2022 7:05 pm
kolizeyalex писал(а):
Вс июн 05, 2022 9:26 pm
Есть проблема с локальным опросом zigbee датчиков, в общем все было хорошо пока zigbee шлюз moes проводной не обновился (сейчас версия основного модуля 1.17.0, модуля zigbee 1.0.12), после этого данные перестали приходить. Есть решение указанной проблемы?
А не локально приходят?

Причин может быть много - ip шлюза поменялся, протокол изменили, устройства от шлюза отвязались. Иногда помогает включить debug в настройках и посмотреть, что именно модуль пишет в лог
Не локально приходят, debug включал опрос идёт, а данных нет. Я думаю протокол изменили. Не подскажите куда смотреть чтобы выявить изменения в протоколе? Может трафик поснифить?
Поснифить трафик между шлюзом и телефоном конечно сильно бы помогло, зная локальный код шлюза можно расшифровать сообщение и увидеть в каком виде идут запросы на шлюз. Но! Если менялась версия tuya на телефоне, то не должны были эти запросы измениться...
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Ср июн 15, 2022 11:37 pm

fandaymon писал(а):
Ср июн 15, 2022 4:46 pm
grifindorec писал(а):
Вт июн 14, 2022 6:58 pm
Добрый день.
Датчик движения. Выставлено "управлять" и "статус" через облако. В настройках модуля все способы обновления - 1 секунда. В приложении, когда датчик отрабатывает, статус меняется сразу. В модуле через 3-5 секунд. Почему так может быть? Что-то в цикле?
Потому что приложение работает через MQTT, а не запрашивает статус время от времени. Так работает IOT облако - статус поменялся, устройство отправило изменение в MQTT, MQTT клиент получил информацию об изменении - поменял статус, время реакции 1-2 секунды

Ставить интервал опроса облака в 1 секунды - бессмысленно, в зависимости от мощности сервера 3-5 секунд это самый минимум + забанить могут за слишком частое обращение

Локальный опрос - минимально 2-3 секунды, цикл опрашивает устройства последовательно, если их какое-то количество, то цикл просто не успеет за секунды все опросить. Плюс специфика устройств туи - они поддерживают только одно соединение, поэтому сразу после изменения статуса до устройства не достучаться - оно занято отправкой своего статуса в облако
Т.е. получается это чисто специфика туи, потому что с ксяоми такой проблемы нет, все обрабатывается мигом. Очень жаль, датчики движения Туи стоят в два раза дешевле.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Чт июн 16, 2022 12:34 pm

grifindorec писал(а):
Ср июн 15, 2022 11:37 pm
fandaymon писал(а):
Ср июн 15, 2022 4:46 pm
grifindorec писал(а):
Вт июн 14, 2022 6:58 pm
Добрый день.
Датчик движения. Выставлено "управлять" и "статус" через облако. В настройках модуля все способы обновления - 1 секунда. В приложении, когда датчик отрабатывает, статус меняется сразу. В модуле через 3-5 секунд. Почему так может быть? Что-то в цикле?
Потому что приложение работает через MQTT, а не запрашивает статус время от времени. Так работает IOT облако - статус поменялся, устройство отправило изменение в MQTT, MQTT клиент получил информацию об изменении - поменял статус, время реакции 1-2 секунды

Ставить интервал опроса облака в 1 секунды - бессмысленно, в зависимости от мощности сервера 3-5 секунд это самый минимум + забанить могут за слишком частое обращение

Локальный опрос - минимально 2-3 секунды, цикл опрашивает устройства последовательно, если их какое-то количество, то цикл просто не успеет за секунды все опросить. Плюс специфика устройств туи - они поддерживают только одно соединение, поэтому сразу после изменения статуса до устройства не достучаться - оно занято отправкой своего статуса в облако
Т.е. получается это чисто специфика туи, потому что с ксяоми такой проблемы нет, все обрабатывается мигом. Очень жаль, датчики движения Туи стоят в два раза дешевле.
Подключи IOT или локальный статус - будет плюс-минус как ксяоми
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Чт июн 16, 2022 7:42 pm

fandaymon писал(а):
Чт июн 16, 2022 12:34 pm
grifindorec писал(а):
Ср июн 15, 2022 11:37 pm
fandaymon писал(а):
Ср июн 15, 2022 4:46 pm
grifindorec писал(а):
Вт июн 14, 2022 6:58 pm
Добрый день.
Датчик движения. Выставлено "управлять" и "статус" через облако. В настройках модуля все способы обновления - 1 секунда. В приложении, когда датчик отрабатывает, статус меняется сразу. В модуле через 3-5 секунд. Почему так может быть? Что-то в цикле?
Потому что приложение работает через MQTT, а не запрашивает статус время от времени. Так работает IOT облако - статус поменялся, устройство отправило изменение в MQTT, MQTT клиент получил информацию об изменении - поменял статус, время реакции 1-2 секунды

Ставить интервал опроса облака в 1 секунды - бессмысленно, в зависимости от мощности сервера 3-5 секунд это самый минимум + забанить могут за слишком частое обращение

Локальный опрос - минимально 2-3 секунды, цикл опрашивает устройства последовательно, если их какое-то количество, то цикл просто не успеет за секунды все опросить. Плюс специфика устройств туи - они поддерживают только одно соединение, поэтому сразу после изменения статуса до устройства не достучаться - оно занято отправкой своего статуса в облако
Т.е. получается это чисто специфика туи, потому что с ксяоми такой проблемы нет, все обрабатывается мигом. Очень жаль, датчики движения Туи стоят в два раза дешевле.
Подключи IOT или локальный статус - будет плюс-минус как ксяоми
К сожалению через локальный даже дольше. Обычно я именно им пользуюсь на всех устройствах, но вот с датчиком он почему-то хуже работает. Попробую IOT облако, посмотрим как оно в деле. Спасибо.
Aleksandr_A
Сообщения: 32
Зарегистрирован: Ср окт 09, 2019 9:24 am
Благодарил (а): 4 раза
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение Aleksandr_A » Чт июн 16, 2022 8:37 pm

Помогите, пожалуйста, не понимаю что не так. Пытаюсь запустить сценарий из скриптов (через сам модуль сценарий работает):

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

include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$tuya_module->TuyaScene('vnxhgeUmbF1AM0Y3');
Получаю такую ошибку:

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

Details
http://_/objects/?script=AC%20test
Uncaught Error: Call to undefined method tuya::TuyaScene() in /var/www/html/modules/scripts/scripts.class.php(164) : eval()'d code:3 Stack trace: #0 /var/www/html/modules/scripts/scripts.class.php(164): eval() #1 /var/www/html/lib/common.class.php(426): scripts->runScript('AC test', Array) #2 /var/www/html/objects/index.php(183): runScript('AC test', Array) #3 {main} thrown

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

Backtrace
#0 /var/www/html/lib/errors.class.php(118): custom_error->__construct('Uncaught Error:...')
#1 [internal function]: phpShutDownFunction()
#2 {main}
Я так понимаю такой функции нет в модуле, а как тогда запускать сцены из скриптов?
Через url типа ?

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

http://192.168.1.34/ajax/tuya.html?op=run_scene&dev_id=vnxhgeUmbF1AM0Y3
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Чт июн 16, 2022 10:45 pm

fandaymon писал(а):
Чт июн 16, 2022 12:34 pm
grifindorec писал(а):
Ср июн 15, 2022 11:37 pm
fandaymon писал(а):
Ср июн 15, 2022 4:46 pm
grifindorec писал(а):
Вт июн 14, 2022 6:58 pm
Добрый день.
Датчик движения. Выставлено "управлять" и "статус" через облако. В настройках модуля все способы обновления - 1 секунда. В приложении, когда датчик отрабатывает, статус меняется сразу. В модуле через 3-5 секунд. Почему так может быть? Что-то в цикле?
Потому что приложение работает через MQTT, а не запрашивает статус время от времени. Так работает IOT облако - статус поменялся, устройство отправило изменение в MQTT, MQTT клиент получил информацию об изменении - поменял статус, время реакции 1-2 секунды

Ставить интервал опроса облака в 1 секунды - бессмысленно, в зависимости от мощности сервера 3-5 секунд это самый минимум + забанить могут за слишком частое обращение

Локальный опрос - минимально 2-3 секунды, цикл опрашивает устройства последовательно, если их какое-то количество, то цикл просто не успеет за секунды все опросить. Плюс специфика устройств туи - они поддерживают только одно соединение, поэтому сразу после изменения статуса до устройства не достучаться - оно занято отправкой своего статуса в облако
Т.е. получается это чисто специфика туи, потому что с ксяоми такой проблемы нет, все обрабатывается мигом. Очень жаль, датчики движения Туи стоят в два раза дешевле.
Подключи IOT или локальный статус - будет плюс-минус как ксяоми
Добавил IOT, связал аккаунты, устройства заехали, в ИОТ в дебаге устройства видно, что данные с датчика поступают. Но если в модуле убрать галочку с "использовать оригинальное облако", данные датчика в модуле не обновляются. Перевел несколько других устройств с локально на облако - работает и статусы обновляет. В общем с этими датчиком какая-то магия.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пт июн 17, 2022 4:36 pm

Aleksandr_A писал(а):
Чт июн 16, 2022 8:37 pm
Помогите, пожалуйста, не понимаю что не так. Пытаюсь запустить сценарий из скриптов (через сам модуль сценарий работает):

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

include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$tuya_module->TuyaScene('vnxhgeUmbF1AM0Y3');
Получаю такую ошибку:

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

Details
http://_/objects/?script=AC%20test
Uncaught Error: Call to undefined method tuya::TuyaScene() in /var/www/html/modules/scripts/scripts.class.php(164) : eval()'d code:3 Stack trace: #0 /var/www/html/modules/scripts/scripts.class.php(164): eval() #1 /var/www/html/lib/common.class.php(426): scripts->runScript('AC test', Array) #2 /var/www/html/objects/index.php(183): runScript('AC test', Array) #3 {main} thrown

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

Backtrace
#0 /var/www/html/lib/errors.class.php(118): custom_error->__construct('Uncaught Error:...')
#1 [internal function]: phpShutDownFunction()
#2 {main}
Я так понимаю такой функции нет в модуле, а как тогда запускать сцены из скриптов?
Через url типа ?

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

http://192.168.1.34/ajax/tuya.html?op=run_scene&dev_id=vnxhgeUmbF1AM0Y3
Запускать надо просто

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

TuyaScene('vnxhgeUmbF1AM0Y3');
Такого рода функции находятся отдельно в файле tuyaFunctions.php в директории lib, чтобы их можно было вызывать одной строчкой
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пт июн 17, 2022 4:42 pm

grifindorec писал(а):
Чт июн 16, 2022 10:45 pm

Добавил IOT, связал аккаунты, устройства заехали, в ИОТ в дебаге устройства видно, что данные с датчика поступают. Но если в модуле убрать галочку с "использовать оригинальное облако", данные датчика в модуле не обновляются. Перевел несколько других устройств с локально на облако - работает и статусы обновляет. В общем с этими датчиком какая-то магия.
Галочку в настройках не надо убирать, так как вся информация об устройствах (локальный ключ, dev id и т.д.) берётся из облака. Надо зайти в само устройство и поставить там Статус Через MQTT
tuya_mqtt.jpg
tuya_mqtt.jpg (72.53 КБ) 781 просмотр
За это сообщение автора fandaymon поблагодарил:
grifindorec (Чт июн 23, 2022 6:30 pm)
Рейтинг: 1.16%
Ответить