[Модуль] Tuya

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

Модератор: immortal

Аватара пользователя
miki1973
Сообщения: 14
Зарегистрирован: Сб апр 28, 2018 1:39 pm
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 0

Re: [Модуль] Tuya

Сообщение miki1973 » Вс окт 25, 2020 6:03 pm

умножать нужно на 5, соответственно поставить "1" в колонках divideby2, divideby10 так ?
Спасибо.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Вс окт 25, 2020 6:25 pm

miki1973 писал(а):
Вс окт 25, 2020 6:03 pm
умножать нужно на 5, соответственно поставить "1" в колонках divideby2, divideby10 так ?
А откуда значения получаются? Локально, из старого облака, из нового облака?
Для начала надо убрать все галочки и вписать в value_scale 0 - тогда будет видно в каком виде приходит значение...
Если в value_scale что-то отличное от 0, то используется только оно. Поэтому скорее всего правильная комбинация будет в value_scale вписать 0 и поставить галочку /2
И всё это можно делать не заходя в mysql - просто кликнув на название метрики - откроется вторая строка с параметрами
tuya_date.jpg
tuya_date.jpg (200.43 КБ) 2359 просмотров
Аватара пользователя
miki1973
Сообщения: 14
Зарегистрирован: Сб апр 28, 2018 1:39 pm
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 0

Re: [Модуль] Tuya

Сообщение miki1973 » Вс окт 25, 2020 8:02 pm

Спасибо огромное! Все получилось! Не знал что можно менять в названии метрики параметры! Удобно!
Спасибо.
lexincton
Сообщения: 44
Зарегистрирован: Вс ноя 08, 2020 12:33 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: [Модуль] Tuya

Сообщение lexincton » Пн ноя 09, 2020 10:27 am

Добрый день.
Есть ИК-пульт - ELARI Smart Infrared Remote
В tuya работает нормально, в мдм тоже определяется, но управлять не получается ни одним из 2-предложенных способов.

1 способ.
Непонятны передаваемые параметры в функцию TuyaRemoteMsg, в приложении для каждого пульта создается отдельное устройство (устройства видны в мдм) с несколькими кнопками, но в функцию передается только id всей сцены (как я понимаю отдельного пульта/устройства), но без идентификации кнопки. Что я не так делаю?
2 способ.
Функция TuyaLocalMsg падает при вызове с любыми параметрами.
Текст ошибки:
Fatal error: Uncaught Error: Call to a member function TuyaLocalMsg() on null in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code:7 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #3 {main} thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code on line 7
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пн ноя 09, 2020 12:19 pm

lexincton писал(а):
Пн ноя 09, 2020 10:27 am
Добрый день.
Есть ИК-пульт - ELARI Smart Infrared Remote
В tuya работает нормально, в мдм тоже определяется, но управлять не получается ни одним из 2-предложенных способов.

1 способ.
Непонятны передаваемые параметры в функцию TuyaRemoteMsg, в приложении для каждого пульта создается отдельное устройство (устройства видны в мдм) с несколькими кнопками, но в функцию передается только id всей сцены (как я понимаю отдельного пульта/устройства), но без идентификации кнопки. Что я не так делаю?
2 способ.
Функция TuyaLocalMsg падает при вызове с любыми параметрами.
Текст ошибки:
Fatal error: Uncaught Error: Call to a member function TuyaLocalMsg() on null in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code:7 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #3 {main} thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code on line 7
Первый способ работает не так - надо создать сцену по клику на которую отсылается какой-то код пульта. Одна сцена = одна кнопка

Для того чтобы работал второй способ нужно при помощи packet capture перехватить пакет, который отсылает TuyaSmart на ИК-пульт, а потом этот же пакет передавать при помощи TuyaLocalMsg
Понятно, что всё это костыли и надо бы поразбираться как работать с пультами из оригинального облака, раз они теперь доступны как устройства, но совершенно не было на это времени...
lexincton
Сообщения: 44
Зарегистрирован: Вс ноя 08, 2020 12:33 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: [Модуль] Tuya

Сообщение lexincton » Пн ноя 09, 2020 12:44 pm

fandaymon писал(а):
Пн ноя 09, 2020 12:19 pm
lexincton писал(а):
Пн ноя 09, 2020 10:27 am
Добрый день.
Есть ИК-пульт - ELARI Smart Infrared Remote
В tuya работает нормально, в мдм тоже определяется, но управлять не получается ни одним из 2-предложенных способов.

1 способ.
Непонятны передаваемые параметры в функцию TuyaRemoteMsg, в приложении для каждого пульта создается отдельное устройство (устройства видны в мдм) с несколькими кнопками, но в функцию передается только id всей сцены (как я понимаю отдельного пульта/устройства), но без идентификации кнопки. Что я не так делаю?
2 способ.
Функция TuyaLocalMsg падает при вызове с любыми параметрами.
Текст ошибки:
Fatal error: Uncaught Error: Call to a member function TuyaLocalMsg() on null in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code:7 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #3 {main} thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code on line 7
Первый способ работает не так - надо создать сцену по клику на которую отсылается какой-то код пульта. Одна сцена = одна кнопка

Для того чтобы работал второй способ нужно при помощи packet capture перехватить пакет, который отсылает TuyaSmart на ИК-пульт, а потом этот же пакет передавать при помощи TuyaLocalMsg
Понятно, что всё это костыли и надо бы поразбираться как работать с пультами из оригинального облака, раз они теперь доступны как устройства, но совершенно не было на это времени...
Спасибо, но этот вариант тоже пробовал, пробовал имя из списка и dev_id сценария передавать. Может имя кириллицей не воспринимает?

По 2-му способу так и было сделано, возможно устройство не может найти по local_key.
Тоже вопрос, в пакетах local_key передается (через них только и выявил его), а в мдм чистое. При задании вручную и сохранении также затирается.

По поводу конкретной кнопки:
у отдельных пультов есть параметр ir_send (у самого контроллера его нет), думаю как-то можно сформировать запрос с передачей ик-кода в этом параметре на пульт
indiana
Сообщения: 54
Зарегистрирован: Пн ноя 13, 2017 12:56 pm
Благодарил (а): 3 раза
Поблагодарили: 37 раз

Re: [Модуль] Tuya

Сообщение indiana » Пн ноя 09, 2020 2:29 pm

Добрый день!
А получилось привязать zegbee шлюз и получать метрики с устройств?
Спасибо!
За это сообщение автора indiana поблагодарил:
Samir77 (Сб дек 16, 2023 3:31 pm)
Рейтинг: 1.16%
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пн ноя 09, 2020 2:55 pm

lexincton писал(а):
Пн ноя 09, 2020 12:44 pm
fandaymon писал(а):
Пн ноя 09, 2020 12:19 pm
lexincton писал(а):
Пн ноя 09, 2020 10:27 am
Добрый день.
Есть ИК-пульт - ELARI Smart Infrared Remote
В tuya работает нормально, в мдм тоже определяется, но управлять не получается ни одним из 2-предложенных способов.

1 способ.
Непонятны передаваемые параметры в функцию TuyaRemoteMsg, в приложении для каждого пульта создается отдельное устройство (устройства видны в мдм) с несколькими кнопками, но в функцию передается только id всей сцены (как я понимаю отдельного пульта/устройства), но без идентификации кнопки. Что я не так делаю?
2 способ.
Функция TuyaLocalMsg падает при вызове с любыми параметрами.
Текст ошибки:
Fatal error: Uncaught Error: Call to a member function TuyaLocalMsg() on null in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code:7 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #3 {main} thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code on line 7
Первый способ работает не так - надо создать сцену по клику на которую отсылается какой-то код пульта. Одна сцена = одна кнопка

Для того чтобы работал второй способ нужно при помощи packet capture перехватить пакет, который отсылает TuyaSmart на ИК-пульт, а потом этот же пакет передавать при помощи TuyaLocalMsg
Понятно, что всё это костыли и надо бы поразбираться как работать с пультами из оригинального облака, раз они теперь доступны как устройства, но совершенно не было на это времени...
Спасибо, но этот вариант тоже пробовал, пробовал имя из списка и dev_id сценария передавать. Может имя кириллицей не воспринимает?

По 2-му способу так и было сделано, возможно устройство не может найти по local_key.
Тоже вопрос, в пакетах local_key передается (через них только и выявил его), а в мдм чистое. При задании вручную и сохранении также затирается.
В программе TuyaSmart нужно создать смарт сцену - в ней выполнить действие - выбрать из устройств нужный пульт, а в нём кнопку, которую нужно нажать. Сохранить эту смарт сцену. В модуле появится новое устройство с названием как у смарт сцены, категорией scene и с каким-то ID. Вот именно это ID надо использовать в первом способе. Никаких названий, ни кириллицей, ни латиницей в этом способе не используется.

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

$tuya_module->TuyaRemoteMsg('abcdef','1','turnOnOff');
2 последних параметра всегда остаются теми же самыми - 1 и turnOnOff. Меняется только id смарт сцены - вот то самое abcdef

По второму способу - главное не путать ик-пульт как устройство (со своим локальным айпи и локальным ключом) и пульты-шаблоны.

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

include_once(DIR_MODULES . 'tuya/tuya.class.php');
$local_key='22e6bd366ebaf8bf';
$ir_json='{"1":"send_ir","13":0,"3":"010ecb00000000000700150040015a005600ad062d0e74","4":"01$^002020DF10EF@&$%@*","10":300}';
$local_ip='192.168.1.68';
$command='SET';
$dev_id='306050182462ab0c78a2';
$data=$tuya_module->TuyaLocalMsg($command,$dev_id,$local_key,$local_ip,$ir_json);
В $dev_id должно быть dev id именно устройства ик-пульт
В $local_key и $local_ip ключи и локальный адрес ик-пульта
В строке ir_json ключи 3, 4 и 10 меняются на свои, перехваченные.
По поводу конкретной кнопки:
у отдельных пультов есть параметр ir_send (у самого контроллера его нет), думаю как-то можно сформировать запрос с передачей ик-кода в этом параметре на пульт
Ключевое слово - как-то
Наверное, если плотно этим заняться, то тут ничего нет невозможного, но это надо именно плотно заняться...
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пн ноя 09, 2020 3:00 pm

indiana писал(а):
Пн ноя 09, 2020 2:29 pm
Добрый день!
А получилось привязать zegbee шлюз и получать метрики с устройств?
Спасибо!
Да. Вот с такого градусника https://aliexpress.ru/item/4001216066659.html модуль нормально получает температуру/влажность.
Зигби выключатель пока не успел смонтировать, поэтому и попробовать не могу, но думаю что он тоже должен работать
lexincton
Сообщения: 44
Зарегистрирован: Вс ноя 08, 2020 12:33 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: [Модуль] Tuya

Сообщение lexincton » Пн ноя 09, 2020 3:14 pm

fandaymon писал(а):
Пн ноя 09, 2020 2:55 pm
lexincton писал(а):
Пн ноя 09, 2020 12:44 pm
fandaymon писал(а):
Пн ноя 09, 2020 12:19 pm
lexincton писал(а):
Пн ноя 09, 2020 10:27 am
Добрый день.
Есть ИК-пульт - ELARI Smart Infrared Remote
В tuya работает нормально, в мдм тоже определяется, но управлять не получается ни одним из 2-предложенных способов.

1 способ.
Непонятны передаваемые параметры в функцию TuyaRemoteMsg, в приложении для каждого пульта создается отдельное устройство (устройства видны в мдм) с несколькими кнопками, но в функцию передается только id всей сцены (как я понимаю отдельного пульта/устройства), но без идентификации кнопки. Что я не так делаю?
2 способ.
Функция TuyaLocalMsg падает при вызове с любыми параметрами.
Текст ошибки:
Fatal error: Uncaught Error: Call to a member function TuyaLocalMsg() on null in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code:7 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('\xD0\x9F\xD0\xBE\xD0\xB4\xD1\x81\xD0\xB2\xD0\xB5\xD1\x82\xD0...', Array) #3 {main} thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(163) : eval()'d code on line 7
Первый способ работает не так - надо создать сцену по клику на которую отсылается какой-то код пульта. Одна сцена = одна кнопка

Для того чтобы работал второй способ нужно при помощи packet capture перехватить пакет, который отсылает TuyaSmart на ИК-пульт, а потом этот же пакет передавать при помощи TuyaLocalMsg
Понятно, что всё это костыли и надо бы поразбираться как работать с пультами из оригинального облака, раз они теперь доступны как устройства, но совершенно не было на это времени...
Спасибо, но этот вариант тоже пробовал, пробовал имя из списка и dev_id сценария передавать. Может имя кириллицей не воспринимает?

По 2-му способу так и было сделано, возможно устройство не может найти по local_key.
Тоже вопрос, в пакетах local_key передается (через них только и выявил его), а в мдм чистое. При задании вручную и сохранении также затирается.
В программе TuyaSmart нужно создать смарт сцену - в ней выполнить действие - выбрать из устройств нужный пульт, а в нём кнопку, которую нужно нажать. Сохранить эту смарт сцену. В модуле появится новое устройство с названием как у смарт сцены, категорией scene и с каким-то ID. Вот именно это ID надо использовать в первом способе. Никаких названий, ни кириллицей, ни латиницей в этом способе не используется.

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

$tuya_module->TuyaRemoteMsg('abcdef','1','turnOnOff');
2 последних параметра всегда остаются теми же самыми - 1 и turnOnOff. Меняется только id смарт сцены - вот то самое abcdef

По второму способу - главное не путать ик-пульт как устройство (со своим локальным айпи и локальным ключом) и пульты-шаблоны.

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

include_once(DIR_MODULES . 'tuya/tuya.class.php');
$local_key='22e6bd366ebaf8bf';
$ir_json='{"1":"send_ir","13":0,"3":"010ecb00000000000700150040015a005600ad062d0e74","4":"01$^002020DF10EF@&$%@*","10":300}';
$local_ip='192.168.1.68';
$command='SET';
$dev_id='306050182462ab0c78a2';
$data=$tuya_module->TuyaLocalMsg($command,$dev_id,$local_key,$local_ip,$ir_json);
В $dev_id должно быть dev id именно устройства ик-пульт
В $local_key и $local_ip ключи и локальный адрес ик-пульта
В строке ir_json ключи 3, 4 и 10 меняются на свои, перехваченные.
По поводу конкретной кнопки:
у отдельных пультов есть параметр ir_send (у самого контроллера его нет), думаю как-то можно сформировать запрос с передачей ик-кода в этом параметре на пульт
Ключевое слово - как-то
Наверное, если плотно этим заняться, то тут ничего нет невозможного, но это надо именно плотно заняться...
Пробы с именами это уже от перебирания разных вариантов, изначально все проверялось как описано.
Не вызывается сценарий(

По 2-му способу так все и ввожу.
В local_key, local_ip и dev_id ошибиться сложно. Задержки какой-то из-за запроса даже нет, сразу вылетает ошибка, как-будто ошибка в коде.
Из-за json такого не должно быть (хоть все свои значения ввел)
Ответить