[Модуль] Tuya

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

Модератор: immortal

mikekom
Сообщения: 1
Зарегистрирован: Чт апр 25, 2024 4:20 pm

Re: [Модуль] Tuya

Сообщение mikekom »

fandaymon писал(а): Вт апр 16, 2024 3:38 pm
Почитать про настройки в первом сообщении темы. Для устройств, которые сразу не отдают статус, надо посылать перед чтением специальный пакет-запрос
Доброе время суток. Специальный пакет-запрос должен содержать предопределенный набор метрик для каждого устройства или, допустим, если нужен только статус устройства должен запрашиваться только статус {"dpId":[20]}? Просто у меня есть 5 лампочек hiper различных моделей, подключил их через модуль. 4 никак не хотят отдавать статус по локальной сети. Все прекрасно управляется и изменяется статус через облако. По локалке, при сканировании, находится и управляется только 1 лампа из пяти. Когда пробую добавить пакет запрос, в логах:
15:25:28 0.91058600 (2024-04-27.log) 12 answer:
15:25:27 0.90900400 (2024-04-27.log) Error sending 12. 24-04-27 03:25:27 sended 40 from 104, ip192.168.90.76
15:25:27 0.59966000 (2024-04-27.log) 15:25:27 Tuya: Get Local Status IoT A61 RGB 2
когда без пакета:
15:22:45 0.46267100 15:22:45 Tuya: Status=
15:22:43 0.14529900 15:22:43 Tuya: Get Local Status IoT A61 RGB 2
та лампа которая подключилась отдает
15:27:27 0.81728800 (2024-04-27.log) 15:27:27 Tuya: Status={"dps":{"20":false,"21":"scene","22":1000,"23":971,"24":"000003e803e8","25":"020e0d0000000000000003e803e8","26":0}}
15:27:27 0.45603400 (2024-04-27.log) 15:27:27 Tuya: Get Local Status IoT A60 RGB
На dhcp-сервере все адрес получают, все IP-адреса в настройки добавил. Версии менять пробовал, настройки делал по первой странице. Данные с iot.tuya.com подтягиваются сразу. В настройках включены опции "использовать оригинальное облако" и "debug". Для меня было бы удобнее настроить локальное управление. Буду благодарен, если подскажете куда смотреть.
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: [Модуль] Tuya

Сообщение fandaymon »

mikekom писал(а): Сб апр 27, 2024 3:32 pm
fandaymon писал(а): Вт апр 16, 2024 3:38 pm
Почитать про настройки в первом сообщении темы. Для устройств, которые сразу не отдают статус, надо посылать перед чтением специальный пакет-запрос
Доброе время суток. Специальный пакет-запрос должен содержать предопределенный набор метрик для каждого устройства или, допустим, если нужен только статус устройства должен запрашиваться только статус {"dpId":[20]}? Просто у меня есть 5 лампочек hiper различных моделей, подключил их через модуль. 4 никак не хотят отдавать статус по локальной сети. Все прекрасно управляется и изменяется статус через облако. По локалке, при сканировании, находится и управляется только 1 лампа из пяти. Когда пробую добавить пакет запрос, в логах:
15:25:28 0.91058600 (2024-04-27.log) 12 answer:
15:25:27 0.90900400 (2024-04-27.log) Error sending 12. 24-04-27 03:25:27 sended 40 from 104, ip192.168.90.76
15:25:27 0.59966000 (2024-04-27.log) 15:25:27 Tuya: Get Local Status IoT A61 RGB 2
когда без пакета:
15:22:45 0.46267100 15:22:45 Tuya: Status=
15:22:43 0.14529900 15:22:43 Tuya: Get Local Status IoT A61 RGB 2
та лампа которая подключилась отдает
15:27:27 0.81728800 (2024-04-27.log) 15:27:27 Tuya: Status={"dps":{"20":false,"21":"scene","22":1000,"23":971,"24":"000003e803e8","25":"020e0d0000000000000003e803e8","26":0}}
15:27:27 0.45603400 (2024-04-27.log) 15:27:27 Tuya: Get Local Status IoT A60 RGB
На dhcp-сервере все адрес получают, все IP-адреса в настройки добавил. Версии менять пробовал, настройки делал по первой странице. Данные с iot.tuya.com подтягиваются сразу. В настройках включены опции "использовать оригинальное облако" и "debug". Для меня было бы удобнее настроить локальное управление. Буду благодарен, если подскажете куда смотреть.
Если скан лампочку не находит, то скорее всего её нет в сети, доступной МДМ. Скан это чтение широковещательных пакетов, которое каждое устройство Туя периодически отправляет в сеть. Если такого пакета в сети нету, то и управлять локально не получится
defender52
Сообщения: 9
Зарегистрирован: Пн май 28, 2018 9:27 pm

Re: [Модуль] Tuya

Сообщение defender52 »

Добрый день.
Приобрел wifi модули управления жалюзи/шторами Girier.
Честно говоря, по ошибке, до этого брал такие же, но Zigbee, через zigbee2mqtt.
Поневоле занялся проблемой их интеграции в МД, но столклулся с проблемой отсутствия органов управления.
Собственно, эти модули имеют возможность управления степенью открытия жалюзи (в процентах).
Вот скрин с примером зигбишного модуля (желтым выделен управляющий параметр):
SPOILERSPOILER_SHOW
зигби.png
зигби.png (58.44 КБ) 6909 просмотров
А вот пример с Туйя Смартхоум (как можно видеть, практически все передаваемые модулем метрики на месте, но безимянные):
SPOILERSPOILER_SHOW
туйя.png
туйя.png (92.24 КБ) 6909 просмотров
Через Tuya IOT Platform нужный мне параметр вижу и могу им управлять:
SPOILERSPOILER_SHOW
iot.jpg
iot.jpg (58.77 КБ) 6909 просмотров
Через моб. приложение Смартлайф также все работает.

Настройки модуля МД (МД на малине, php-bcmath стоит):
SPOILERSPOILER_SHOW
модуль.png
модуль.png (38.32 КБ) 6909 просмотров
Настройки модуля жалюзи:
SPOILERSPOILER_SHOW
жалюзи.png
жалюзи.png (31.45 КБ) 6909 просмотров
Помогите найти и пофиксить проблему, пожалуйста.
defender52
Сообщения: 9
Зарегистрирован: Пн май 28, 2018 9:27 pm

Re: [Модуль] Tuya

Сообщение defender52 »

Доброе утро.
Экспериментальным путем выяснил, что метрика 2 используется также и для управления, но любое переданное в нее значение приводит к закрытию жалюзи. Возможно, воспримимается и передается как "0".
Есть идеи, что нужно сделать, чтобы превратить это в цифру от 0 до 100?
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: [Модуль] Tuya

Сообщение xor »

defender52 писал(а): Чт июн 13, 2024 9:41 am Доброе утро.
Экспериментальным путем выяснил, что метрика 2 используется также и для управления, но любое переданное в нее значение приводит к закрытию жалюзи. Возможно, воспримимается и передается как "0".
Есть идеи, что нужно сделать, чтобы превратить это в цифру от 0 до 100?
привязано к ПУ какому-нибудь? если да, попробуйте просто к тестовому объекту/свойству без любой накрученной логики привязать и попробовать поуправлять
defender52
Сообщения: 9
Зарегистрирован: Пн май 28, 2018 9:27 pm

Re: [Модуль] Tuya

Сообщение defender52 »

xor писал(а): Чт июн 13, 2024 1:57 pm
defender52 писал(а): Чт июн 13, 2024 9:41 am Доброе утро.
Экспериментальным путем выяснил, что метрика 2 используется также и для управления, но любое переданное в нее значение приводит к закрытию жалюзи. Возможно, воспримимается и передается как "0".
Есть идеи, что нужно сделать, чтобы превратить это в цифру от 0 до 100?
привязано к ПУ какому-нибудь? если да, попробуйте просто к тестовому объекту/свойству без любой накрученной логики привязать и попробовать поуправлять
В том-то и дело, что нет.
Привязано к тестовому объекту, без какой-либо логики.
Похоже, это логика модуля Туйи что-то от себя добавляет.
Вопрос, как это проверить.
defender52
Сообщения: 9
Зарегистрирован: Пн май 28, 2018 9:27 pm

Re: [Модуль] Tuya

Сообщение defender52 »

Отвечу сам себе, вдруг кому-то еще пригодится.
Как и подозревал, проблема крылась в типе данных, передаваемых в качестве команды, а также в имени метрики.
Возможно, где-то есть документация к модулю, которую я не нашел из-за своей лени, однако помогло следующее:
Так как нужная мне метрика имеет имя "2", и, как выяснилось, контроллер жалюзи ожидает строку, пришлось подшаманить tuya.class.php след. образом (добавил условие, выделенное красным):
SPOILERSPOILER_SHOW
php.png
php.png (24.56 КБ) 6609 просмотров
Уверен, это не самый элегантный способ, и при обновлении МД модуля это перетрется, поэтому вопрошаю автора и сообщество, нет ли уже заявленной возможности делать инклюды такого рода, не подлежащие уничтожению, или еще каким-либо способом обойти проблему.
Спасибо заранее.
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: [Модуль] Tuya

Сообщение xor »

а у вас модуль не спамит в ворнинги?

14:43:18 0.11722200 commandline: ./scripts/cycle_tuya.php --params a:0:{}
PHP error level 2 in C:\_majordomo\htdocs\modules\objects\objects.class.php (line 839): mb_strlen() expects parameter 1 to be string, array given
14:43:18 0.19059500 commandline: ./scripts/cycle_tuya.php --params a:0:{}
PHP error level 2 in C:\_majordomo\htdocs\modules\objects\objects.class.php (line 839): mb_strlen() expects parameter 1 to be string, array given
14:43:18 0.27317600 commandline: ./scripts/cycle_tuya.php --params a:0:{}
PHP error level 2 in C:\_majordomo\htdocs\modules\objects\objects.class.php (line 839): mb_strlen() expects parameter 1 to be string, array given

из-за стр 2069 в классе

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

         setGlobal($cmd_rec['LINKED_OBJECT'] . '.' . $cmd_rec['LINKED_PROPERTY'], $value, 0, array($this->name => '0'));
array($this->name => '0') не стоит заменить на просто $this->name ?
определение функции

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

function setGlobal($varname, $value, $no_linked = 0, $source = '')
, соурс - ожидается строка.
А тут соурс попадает далее массивом в функцию setProperty, где над ним пытаются сделать

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

if (mb_strlen($source) > 250) { ...
и ворнинг возникает
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: [Модуль] Tuya

Сообщение fandaymon »

defender52 писал(а): Ср июн 12, 2024 1:18 am Добрый день.
Приобрел wifi модули управления жалюзи/шторами Girier.
Честно говоря, по ошибке, до этого брал такие же, но Zigbee, через zigbee2mqtt.
Поневоле занялся проблемой их интеграции в МД, но столклулся с проблемой отсутствия органов управления.
Собственно, эти модули имеют возможность управления степенью открытия жалюзи (в процентах).
Вот скрин с примером зигбишного модуля (желтым выделен управляющий параметр):
SPOILERSPOILER_SHOW
зигби.png
А вот пример с Туйя Смартхоум (как можно видеть, практически все передаваемые модулем метрики на месте, но безимянные):
SPOILERSPOILER_SHOW
туйя.png
Через Tuya IOT Platform нужный мне параметр вижу и могу им управлять:
SPOILERSPOILER_SHOW
iot.jpg
Через моб. приложение Смартлайф также все работает.

Настройки модуля МД (МД на малине, php-bcmath стоит):
SPOILERSPOILER_SHOW
модуль.png
Настройки модуля жалюзи:
SPOILERSPOILER_SHOW
жалюзи.png
Помогите найти и пофиксить проблему, пожалуйста.
У вас свойства метрик не подтянулись. Модуль в облаке смотрит тип значений. Нету типа - нету правильной обработки значений. Свойства подтягиваются раз в 5 минут, так как это довольно долгий процесс. При некоторых условиях они могли и не подтянуться. Вроде бы в последнем обновлении я это исправил
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

Re: [Модуль] Tuya

Сообщение fandaymon »

xor писал(а): Сб июн 15, 2024 3:15 pm а у вас модуль не спамит в ворнинги?

14:43:18 0.11722200 commandline: ./scripts/cycle_tuya.php --params a:0:{}
PHP error level 2 in C:\_majordomo\htdocs\modules\objects\objects.class.php (line 839): mb_strlen() expects parameter 1 to be string, array given
14:43:18 0.19059500 commandline: ./scripts/cycle_tuya.php --params a:0:{}
PHP error level 2 in C:\_majordomo\htdocs\modules\objects\objects.class.php (line 839): mb_strlen() expects parameter 1 to be string, array given
14:43:18 0.27317600 commandline: ./scripts/cycle_tuya.php --params a:0:{}
PHP error level 2 in C:\_majordomo\htdocs\modules\objects\objects.class.php (line 839): mb_strlen() expects parameter 1 to be string, array given

из-за стр 2069 в классе

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

         setGlobal($cmd_rec['LINKED_OBJECT'] . '.' . $cmd_rec['LINKED_PROPERTY'], $value, 0, array($this->name => '0'));
array($this->name => '0') не стоит заменить на просто $this->name ?
определение функции

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

function setGlobal($varname, $value, $no_linked = 0, $source = '')
, соурс - ожидается строка.
А тут соурс попадает далее массивом в функцию setProperty, где над ним пытаются сделать

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

if (mb_strlen($source) > 250) { ...
и ворнинг возникает
Страницу назад обсуждали этот вопрос. :) Сдаюсь - поправил на просто строку
Ответить