[Модуль] Broadlink (dev_broadlink)

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

Модератор: immortal

doc_bravn
Сообщения: 126
Зарегистрирован: Чт янв 30, 2014 1:14 pm
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение doc_bravn » Вт май 12, 2020 12:06 pm

Подскажите пожалуйста как можно с помощью модуля Broadlink передавать зажатие кнопки? Мне нужно иногда бывает перезагрузить ТВ зажатием кнопки включения на пульте на 2 секунды. Как можно тоже самое реализовать через модуль? Можно передавать один и тот же сигнал на протяжении 2-х секунд?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение Chainik » Вт май 12, 2020 1:15 pm

doc_bravn писал(а):
Вт май 12, 2020 12:06 pm
Подскажите пожалуйста как можно с помощью модуля Broadlink передавать зажатие кнопки? Мне нужно иногда бывает перезагрузить ТВ зажатием кнопки включения на пульте на 2 секунды. Как можно тоже самое реализовать через модуль? Можно передавать один и тот же сигнал на протяжении 2-х секунд?
Тут два варианта. Либо у вас должен быть изначально сохранен в виде команды "длинный" (при удержании кнопки) сигнал, либо делаете ряд "коротких" команд через паузу (имитируя таким образом удержание кнопки).

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

brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
doc_bravn
Сообщения: 126
Зарегистрирован: Чт янв 30, 2014 1:14 pm
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение doc_bravn » Вт май 12, 2020 5:46 pm

Chainik писал(а):
Вт май 12, 2020 1:15 pm
Тут два варианта. Либо у вас должен быть изначально сохранен в виде команды "длинный" (при удержании кнопки) сигнал, либо делаете ряд "коротких" команд через паузу (имитируя таким образом удержание кнопки).

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

brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
usleep(50000);
brLinkCommand('TV_Panasonic_1_On_Off');
Попробовал записать длинную команду удерживая кнопку при обучении. Модуль ее записал. И передает потом, но как-то не так. Телевизор на эту передаваемую длинную команду вообще никак не реагирует. Попробую коротки с паузой...
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение nick7zmail » Ср май 13, 2020 9:57 am

Я бы всё таки ещё раз попробовал записать с удержанием...хотя она скорее всего фильтруется, и преобразуется в одиночную...с RF вроде так работает, не смотря на удержание....кстати в RM Tools есть анализатор кода, где можно количество повторов поменять...это ещё как вариант.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
doc_bravn
Сообщения: 126
Зарегистрирован: Чт янв 30, 2014 1:14 pm
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение doc_bravn » Чт май 21, 2020 5:23 pm

В методе StatusUpdated есть такой код у меня:

if (gg('Relay01.status')=='1')
{
sleep(18);
brLinkCommand('ТВ вправо');

Почему-то команда броадлинком излучается дважды. Уже всю голову себе сломал почему. Прям подряд два раза излучает. Один раз и тут же второй. Я уже и переобучал эту команду. Все равно излучает дважды. При чем если из самого модуля броадлинк ее проверять нажимая на значок молнии сбоку, то излучает верно, один раз.
Почему это происходит и как от этого избавиться?
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение xor » Чт май 21, 2020 5:44 pm

doc_bravn писал(а):
Чт май 21, 2020 5:23 pm
В методе StatusUpdated есть такой код у меня:

if (gg('Relay01.status')=='1')
{
sleep(18);
brLinkCommand('ТВ вправо');

Почему-то команда броадлинком излучается дважды. Уже всю голову себе сломал почему. Прям подряд два раза излучает. Один раз и тут же второй. Я уже и переобучал эту команду. Все равно излучает дважды. При чем если из самого модуля броадлинк ее проверять нажимая на значок молнии сбоку, то излучает верно, один раз.
Почему это происходит и как от этого избавиться?
перепишите код на

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

if (gg('Relay01.status')=='1')
{
settimeout('tv_right',"brLinkCommand('ТВ вправо');",18);
если у вас дальше не наверчено, должно быть одно срабатывание (это костыль) возможно, у вас статусапдптед неск. раз срабатывает(
doc_bravn
Сообщения: 126
Зарегистрирован: Чт янв 30, 2014 1:14 pm
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение doc_bravn » Чт май 21, 2020 5:51 pm

xor писал(а):
Чт май 21, 2020 5:44 pm
если у вас дальше не наверчено, должно быть одно срабатывание (это костыль) возможно, у вас статусапдптед неск. раз срабатывает(
Весь код метода такой:

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

if (gg('Relay01.status')=='1')
{
sleep(18);
brLinkCommand('ТВ вправо');
sleep(2);
brLinkCommand('ТВ ОК');
}else{
sg('Relay01.status', 0);
}
Это все что есть в методе. Задача такая: излучить код кнопки вправо, а затем излучить код кнопки ОК, чтобы запустить нужное приложение в ТВ.

Изменил код который вы указали выше. Действительно стало одно срабатывание, но перестал излучать вторую команду. Посоветуете как его правильно написать чтобы отрабатывали две команды по одному разу.
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение xor » Чт май 21, 2020 7:28 pm

doc_bravn писал(а):
Чт май 21, 2020 5:51 pm
xor писал(а):
Чт май 21, 2020 5:44 pm
если у вас дальше не наверчено, должно быть одно срабатывание (это костыль) возможно, у вас статусапдптед неск. раз срабатывает(
Весь код метода такой:

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

if (gg('Relay01.status')=='1')
{
sleep(18);
brLinkCommand('ТВ вправо');
sleep(2);
brLinkCommand('ТВ ОК');
}else{
sg('Relay01.status', 0);
}
Это все что есть в методе. Задача такая: излучить код кнопки вправо, а затем излучить код кнопки ОК, чтобы запустить нужное приложение в ТВ.

Изменил код который вы указали выше. Действительно стало одно срабатывание, но перестал излучать вторую команду. Посоветуете как его правильно написать чтобы отрабатывали две команды по одному разу.
ответил в телеге

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

settimeout('tv_right',"brLinkCommand('ТВ вправо');sleep(2);brLinkCommand('ТВ ОК');",18);
костыль тут - таймер,запущенный второй раз 18 с, перетрёт предыдущий, так вы избавитесь от последствий, не убрав первопричину(
doc_bravn
Сообщения: 126
Зарегистрирован: Чт янв 30, 2014 1:14 pm
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение doc_bravn » Чт май 21, 2020 7:55 pm

xor писал(а):
Чт май 21, 2020 7:28 pm

костыль тут - таймер,запущенный второй раз 18 с, перетрёт предыдущий, так вы избавитесь от последствий, не убрав первопричину(
Я не понимаю почему оно стало дважды отсылать команду. Уже все проверил что мог. Вроде все правильно, но все равно отсылает два раза команду.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Broadlink (dev_broadlink)

Сообщение nick7zmail » Чт май 21, 2020 8:05 pm

Может вы status в модуле привязали? И через brLinkCommand второй раз пытаетесь команду запустить?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить