[Модуль] Tuya

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

Модератор: immortal

ai91
Сообщения: 17
Зарегистрирован: Вт окт 23, 2018 11:17 pm
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: [Модуль] Tuya

Сообщение ai91 » Вс дек 01, 2019 3:07 am

ai91 писал(а):
Вс дек 01, 2019 2:43 am
Однако проблема в управлении. Я привязал к объекту/свойству, и теперь "могу" управлять из MDM. Но выключатель реагирует только на "1", т.е. я могу только открывать жалюзи. Ни поставить на паузу, ни закрыть.
Походу нашел проблему:
если в tuya.class.php строку 644 поменять с

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

      $dps='{"'.$dps_name.'":'.(($value==1)?'true':'false').'}';

на

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

      $dps='{"'.$dps_name.'":'.strval($value).'}';

то и пауза и закрытие жалюзи тоже начинает работать.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Вс дек 01, 2019 3:18 am

ai91 писал(а):
Вс дек 01, 2019 3:07 am
ai91 писал(а):
Вс дек 01, 2019 2:43 am
Однако проблема в управлении. Я привязал к объекту/свойству, и теперь "могу" управлять из MDM. Но выключатель реагирует только на "1", т.е. я могу только открывать жалюзи. Ни поставить на паузу, ни закрыть.
Походу нашел проблему:
если в tuya.class.php строку 644 поменять с

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

      $dps='{"'.$dps_name.'":'.(($value==1)?'true':'false').'}';

на

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

      $dps='{"'.$dps_name.'":'.strval($value).'}';

то и пауза и закрытие жалюзи тоже начинает работать.
Да, это проблема... У выключателей state это false и true, поэтому стоит конвертирование. А у мотора получается только номер
А какой тип у мотора? Я могу сделать проверку на тип и если тип мотор, то отсылать номер, вместо true/false
ai91
Сообщения: 17
Зарегистрирован: Вт окт 23, 2018 11:17 pm
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: [Модуль] Tuya

Сообщение ai91 » Вс дек 01, 2019 4:37 am

fandaymon писал(а):
Вс дек 01, 2019 3:18 am
А какой тип у мотора? Я могу сделать проверку на тип и если тип мотор, то отсылать номер, вместо true/false
У меня пишет "cover" (то что пришло из облака)
tuya2.png
tuya2.png (17.38 КБ) 3451 просмотр
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Вс дек 01, 2019 5:48 am

ai91 писал(а):
Вс дек 01, 2019 4:37 am
fandaymon писал(а):
Вс дек 01, 2019 3:18 am
А какой тип у мотора? Я могу сделать проверку на тип и если тип мотор, то отсылать номер, вместо true/false
У меня пишет "cover" (то что пришло из облака)
Добавил в модуль
За это сообщение автора fandaymon поблагодарил:
ai91 (Вс дек 01, 2019 9:05 pm)
Рейтинг: 1.16%
ai91
Сообщения: 17
Зарегистрирован: Вт окт 23, 2018 11:17 pm
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: [Модуль] Tuya

Сообщение ai91 » Вс дек 01, 2019 9:52 pm

fandaymon писал(а):
Вс дек 01, 2019 5:48 am
Добавил в модуль
может подскажете. какая-то проблема с установкой значений из скрипта.
привязано свойство вот так:
tuya3.png
tuya3.png (15.81 КБ) 3403 просмотра
если в объекте меняю свойство 'status' вручную - срабатывает.

если пишу скрипт - почему-то не всегда. иногда не срабатывает. пока не понял закономерность. есть ощущение что если менять слишком часто, то срабатывает только первое значение.
меняю вот так:

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

$this->setProperty("status", 3);
say("Status: ".$this->getProperty("status"));
$this->setProperty("status", 1);
say("Status: ".$this->getProperty("status"));
на выводе значение в порядке - ровно как я задал. но где-то косяк при передаче значения из свойства в объекте в модуль tuya.
Возможно как-то связано с настройкой "Интервал обновлений", но пока не понимаю на что конкретно он влияет. я думал это только на чтение. или на запись тоже? какое значение оптимально использовать?
ai91
Сообщения: 17
Зарегистрирован: Вт окт 23, 2018 11:17 pm
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: [Модуль] Tuya

Сообщение ai91 » Вс дек 01, 2019 10:23 pm

ai91 писал(а):
Вс дек 01, 2019 9:52 pm
есть ощущение что если менять слишком часто, то срабатывает только первое значение.
поясню почему частая смена значений важна:
как писал выше, экспериментально выяснил что
"1"- открыть
"2" - закрыть
"3" - остановить.

проблема в том что нельзя сделать последовательно "1" -> "2" (т.е. начать закрывать пока идет процесс открытия). Надо сделать остановку "3".
Т.е. если надо поменять направление, то "1" -> "3" -> "2".
Итак, если случайно нажал открыть, и хочу начать закрывать, то надо сначала нажать на паузу, а потом вниз.
Впрочем только сейчас я понял что возможно и можно моментально поменять направление без остановки, просто у меня оно никогда не срабатывало из-за проблемы двух быстрых смен значения. А когда вручную делал "1" -> "3" -> "2", то проходило достаточно времени между "1" и "2", пока я вручную менял на "3". Хм...

Но в любом случае, в своих скриптах я хочу делать не полное закрытие, а частичное. Т.е. надо делать последовательность "2" -> [3 sec] -> "3". И вот тут проблема. 10 секунд - достаточно. а вот меньше - как-то нестабильно.

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

Re: [Модуль] Tuya

Сообщение fandaymon » Вс дек 01, 2019 10:48 pm

ai91 писал(а):
Вс дек 01, 2019 9:52 pm
fandaymon писал(а):
Вс дек 01, 2019 5:48 am
Добавил в модуль
может подскажете. какая-то проблема с установкой значений из скрипта.
привязано свойство вот так:
tuya3.png

если в объекте меняю свойство 'status' вручную - срабатывает.

если пишу скрипт - почему-то не всегда. иногда не срабатывает. пока не понял закономерность. есть ощущение что если менять слишком часто, то срабатывает только первое значение.
меняю вот так:

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

$this->setProperty("status", 3);
say("Status: ".$this->getProperty("status"));
$this->setProperty("status", 1);
say("Status: ".$this->getProperty("status"));
на выводе значение в порядке - ровно как я задал. но где-то косяк при передаче значения из свойства в объекте в модуль tuya.
Возможно как-то связано с настройкой "Интервал обновлений", но пока не понимаю на что конкретно он влияет. я думал это только на чтение. или на запись тоже? какое значение оптимально использовать?
А скрипт он в каком-то методе объекта содержится?
Объект управляется удаленно или локально?
Есть ощущение, что когда управляешь локально, то после отправки пакета, устройство становится на какое-то время недоступным, возможно из-за того, что передаёт в облако изменившийся статус. Хорошо бы между 2 изменениями статуса делать какую-то паузу.
С частыми изменениями статуса я особо не экспериментировал - для выключателей это не очень актуально. Могу попробовать добавить очередь, как сделано в ксяомовских модулях - возможно это поможет
ai91
Сообщения: 17
Зарегистрирован: Вт окт 23, 2018 11:17 pm
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: [Модуль] Tuya

Сообщение ai91 » Пн дек 02, 2019 12:01 am

fandaymon писал(а):
Вс дек 01, 2019 10:48 pm
А скрипт он в каком-то методе объекта содержится?
Да, это методы объекта, который привязан к выключателю в панели tuya-модуля. В них я меняю значения привязаного свойства через setGlobal() либо через $this->setProperty().
fandaymon писал(а):
Вс дек 01, 2019 10:48 pm
Объект управляется удаленно или локально?
А как это узнать? Модуль настроен с логином/паролем в облако. Мой выключатель настроен с ip и localKey, поле report отображается. А вот как управляется, локально или через облако — не знаю как посмотреть. Доков нигде не нашёл.
fandaymon писал(а):
Вс дек 01, 2019 10:48 pm
Есть ощущение, что когда управляешь локально, то после отправки пакета, устройство становится на какое-то время недоступным, возможно из-за того, что передаёт в облако изменившийся статус. Хорошо бы между 2 изменениями статуса делать какую-то паузу.
С частыми изменениями статуса я особо не экспериментировал - для выключателей это не очень актуально. Могу попробовать добавить очередь, как сделано в ксяомовских модулях - возможно это поможет
Возможно имеет смысл попробовать заблокировать облако на роутере? ;-)
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пн дек 02, 2019 12:52 am

ai91 писал(а):
Пн дек 02, 2019 12:01 am
fandaymon писал(а):
Вс дек 01, 2019 10:48 pm
А скрипт он в каком-то методе объекта содержится?
Да, это методы объекта, который привязан к выключателю в панели tuya-модуля. В них я меняю значения привязаного свойства через setGlobal() либо через $this->setProperty().
Можно попробовать через setGlobal менять, а не через setProperty - они слегка по разному работают. Но дело видимо не в этом...
ai91 писал(а):
Пн дек 02, 2019 12:01 am
fandaymon писал(а):
Вс дек 01, 2019 10:48 pm
Объект управляется удаленно или локально?
А как это узнать? Модуль настроен с логином/паролем в облако. Мой выключатель настроен с ip и localKey, поле report отображается. А вот как управляется, локально или через облако — не знаю как посмотреть. Доков нигде не нашёл.
Если ip и localKey есть, то управление идёт локально. Можно попробовать убрать ip и попробовать быстро попереключать. Тогда будет видно проблема ли это локального управления
ai91 писал(а):
Пн дек 02, 2019 12:01 am
fandaymon писал(а):
Вс дек 01, 2019 10:48 pm
Есть ощущение, что когда управляешь локально, то после отправки пакета, устройство становится на какое-то время недоступным, возможно из-за того, что передаёт в облако изменившийся статус. Хорошо бы между 2 изменениями статуса делать какую-то паузу.
С частыми изменениями статуса я особо не экспериментировал - для выключателей это не очень актуально. Могу попробовать добавить очередь, как сделано в ксяомовских модулях - возможно это поможет
Возможно имеет смысл попробовать заблокировать облако на роутере? ;-)
Думаю что устройство всё равно будет пытаться до облака достучаться. Но и это можно попробовать
Kulibink
Сообщения: 32
Зарегистрирован: Пн сен 23, 2019 9:04 pm
Откуда: Челябинск
Благодарил (а): 4 раза
Поблагодарили: 5 раз

Re: [Модуль] Tuya

Сообщение Kulibink » Вт дек 03, 2019 4:28 pm

Доброго времени! Подскажите пожалуйста почему не передаются данные по киловаттам, в самом приложении все ок?
Вложения
sch.jpg
sch.jpg (126.75 КБ) 3298 просмотров
sc.png
sc.png (26.18 КБ) 3298 просмотров
Ответить