[Код] Умная ПАУЗА (помогите)

Модераторы: Bagir, Ivan, Vit, immortal, PAV, newz20

fandaymon
Сообщения: 523
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 23 раза
Поблагодарили: 220 раз

Re: Умная ПАУЗА (помогите)

Сообщение fandaymon » Пт июл 06, 2018 7:41 pm

zoldaten писал(а):
Пт июл 06, 2018 7:33 pm
fandaymon писал(а):
Чт май 03, 2018 1:35 am
gvasiliy писал(а):
Чт май 03, 2018 12:33 am
Ребята , скажите где моя ошибка

getURL('http://192.168.1.37/gpio?st=1&pin=4', 0);
setTimeOut('myT_1','getURL('http://192.168.1.37/gpio?st=0&pin=4', 0);',60*10);

добиваюсь включения канала на 10 минут

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

setTimeOut('myT_1','getURL("http://192.168.1.37/gpio?st=0&pin=4", 0);',60*10);
а как реализовать данную серию ?
sg('TV.1', 1);
setTimeOut('mytimer','sg('TV.0',1);',3);

вторая строка не работает (

пытаюсь 10-й канал включить через broadlink.
Кавычки в кавычках не будут работать. Надо, например, внешние на двойные поменять

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

setTimeOut('mytimer',"sg('TV.0',1);",3);
zoldaten
Сообщения: 126
Зарегистрирован: Вт авг 23, 2016 3:08 pm
Благодарил (а): 4 раза
Поблагодарили: 21 раз

Re: Умная ПАУЗА (помогите)

Сообщение zoldaten » Пт июл 06, 2018 8:12 pm

fandaymon писал(а):
Пт июл 06, 2018 7:41 pm


Кавычки в кавычках не будут работать. Надо, например, внешние на двойные поменять

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

setTimeOut('mytimer',"sg('TV.0',1);",3);
не хочет. пробовал так же двойные в разных местах ставить, т.е. например
setTimeOut("mytimer","sg('TV.0',1);",3);
fandaymon
Сообщения: 523
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 23 раза
Поблагодарили: 220 раз

Re: Умная ПАУЗА (помогите)

Сообщение fandaymon » Пт июл 06, 2018 8:43 pm

zoldaten писал(а):
Пт июл 06, 2018 8:12 pm
fandaymon писал(а):
Пт июл 06, 2018 7:41 pm


Кавычки в кавычках не будут работать. Надо, например, внешние на двойные поменять

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

setTimeOut('mytimer',"sg('TV.0',1);",3);
не хочет. пробовал так же двойные в разных местах ставить, т.е. например
setTimeOut("mytimer","sg('TV.0',1);",3);
В разных не надо - только там где кавычки в кавычках. А сама по себе команда sg('TV.0',1); работает?
Я broadlinkом пользуюсь как предложил автор, т.е. brLinkCommand('TV_ON');
zoldaten
Сообщения: 126
Зарегистрирован: Вт авг 23, 2016 3:08 pm
Благодарил (а): 4 раза
Поблагодарили: 21 раз

Re: Умная ПАУЗА (помогите)

Сообщение zoldaten » Пт июл 06, 2018 9:01 pm

fandaymon писал(а):
Пт июл 06, 2018 8:43 pm
zoldaten писал(а):
Пт июл 06, 2018 8:12 pm
fandaymon писал(а):
Пт июл 06, 2018 7:41 pm


Кавычки в кавычках не будут работать. Надо, например, внешние на двойные поменять

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

setTimeOut('mytimer',"sg('TV.0',1);",3);
не хочет. пробовал так же двойные в разных местах ставить, т.е. например
setTimeOut("mytimer","sg('TV.0',1);",3);
В разных не надо - только там где кавычки в кавычках. А сама по себе команда sg('TV.0',1); работает?
Я broadlinkом пользуюсь как предложил автор, т.е. brLinkCommand('TV_ON');
да, sg работает. 0 - это свойство объекта (по сути канал тв). сейчас выяснил, что свойство с 0 нельзя создавать, пришлось на null заменить. но сути не меняет, не работает timer. пришлось через sleep реализовать. думаю, 2 секунды не критично для системы.
а вы как каналы переключаете ?
Аватара пользователя
xor
Сообщения: 709
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 42 раза
Поблагодарили: 177 раз

Re: Умная ПАУЗА (помогите)

Сообщение xor » Пт июл 06, 2018 9:53 pm

zoldaten писал(а):
Пт июл 06, 2018 9:01 pm
...
а вы как каналы переключаете ?
использую виджет Пульт самсунг и бродлинк
Кнопка 10 канала

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

say('Включаю ТВЦ');
if((int)gg('Samsung.status')==0){
  brLinkCommand('pro_OnOff'); //если тв выключен вкл
  sleep(10);
}
//тут можно на всякий случай установить источник=тв
//brLinkCommand('pro_sel_tv'');
brLinkCommand('pro_b1'); //1
brLinkCommand('pro_b0');//0
sleep(1);
brLinkCommand('pro_enter');
zoldaten
Сообщения: 126
Зарегистрирован: Вт авг 23, 2016 3:08 pm
Благодарил (а): 4 раза
Поблагодарили: 21 раз

Re: Умная ПАУЗА (помогите)

Сообщение zoldaten » Пт июл 06, 2018 10:01 pm

xor писал(а):
Пт июл 06, 2018 9:53 pm
zoldaten писал(а):
Пт июл 06, 2018 9:01 pm
...
а вы как каналы переключаете ?
использую виджет Пульт самсунг и бродлинк
Кнопка 10 канала

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

say('Включаю ТВЦ');
if((int)gg('Samsung.status')==0){
  brLinkCommand('pro_OnOff'); //если тв выключен вкл
  sleep(10);
}
//тут можно на всякий случай установить источник=тв
//brLinkCommand('pro_sel_tv'');
brLinkCommand('pro_b1'); //1
brLinkCommand('pro_b0');//0
sleep(1);
brLinkCommand('pro_enter');
так здесь же решение предлагают, чтобы уйти от sleep. а у вас получается весь mjd подвисает на 10 сек при включении.
у меня пока так рабтает:
sg('TV.1', 1);
sleep(2);
sg('TV.null', 1);
fandaymon
Сообщения: 523
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 23 раза
Поблагодарили: 220 раз

Re: Умная ПАУЗА (помогите)

Сообщение fandaymon » Пт июл 06, 2018 10:14 pm

zoldaten писал(а):
Пт июл 06, 2018 9:01 pm
fandaymon писал(а):
Пт июл 06, 2018 8:43 pm
zoldaten писал(а):
Пт июл 06, 2018 8:12 pm
fandaymon писал(а):
Пт июл 06, 2018 7:41 pm


Кавычки в кавычках не будут работать. Надо, например, внешние на двойные поменять

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

setTimeOut('mytimer',"sg('TV.0',1);",3);
не хочет. пробовал так же двойные в разных местах ставить, т.е. например
setTimeOut("mytimer","sg('TV.0',1);",3);
В разных не надо - только там где кавычки в кавычках. А сама по себе команда sg('TV.0',1); работает?
Я broadlinkом пользуюсь как предложил автор, т.е. brLinkCommand('TV_ON');
да, sg работает. 0 - это свойство объекта (по сути канал тв). сейчас выяснил, что свойство с 0 нельзя создавать, пришлось на null заменить. но сути не меняет, не работает timer. пришлось через sleep реализовать. думаю, 2 секунды не критично для системы.
а вы как каналы переключаете ?
Можно поставить время побольше - скажем секунд 15 и посмотреть в каком виде добавился таймер. С разными кавычками проблем быть не должно - команды вида Через 1 минуту присвой свойству значение у меня используются повсеместно и проблем вроде бы нигде не было и нет.

А по поводу каналов - я к сожалению вынужден пользоваться интернет-ТВ, поэтому каналы бродлинком переключить не получится, можно разобраться в их api, но пока руки не дошли, поэтому каналы переключаю пультом Дюны

Где-то на форуме уже была тема про переключение каналов, схема была примерно такая - функция получает номер канала, а дальше просто нажимаются нужные кнопки при помощи brLinkCommand. Я бы делал так - запомнил бы клавиши от 0 до 9 по названиями TV_0... TV_9, а потом просто определял сотни, десятки и единицы и нажимал соответствующие клавиши.

$sotni=floor($channel/100);
$ostatok=$channel-$sotni*100;
brLinkCommand('TV_' . $sotni);
$desjatki=floor($ostatok/10);
$ostatok=$ostatok-$desjatki*10;
brLinkCommand('TV_' . $desjatki);
brLinkCommand('TV_' . $ostatok);

Как-то так...
Аватара пользователя
xor
Сообщения: 709
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 42 раза
Поблагодарили: 177 раз

Re: Умная ПАУЗА (помогите)

Сообщение xor » Пт июл 06, 2018 10:17 pm

Пауза, если тв выключен. Это на всякий случай. Обычно я на кнопки каналов нажимаю при включенном тв. А это нужно, если на холодную включить сразу нужный канал. А тут таймаут не годится, его можно использовать в том случае, если включение канала целиком в скрипте описать, можно с параметром N канала.
типа

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

say('Включаю ТВЦ');
if((int)gg('Samsung.status')==0){
  brLinkCommand('pro_OnOff'); //если тв выключен вкл
  setTimeOut('swCan',"callScript('chann',array('n'=>10));",10);//подождем 10с и запустим скрипт, который нажмет кнопки по параметру
}else{
 callScript('chann',array('n'=>10)); 
}
upd. скрипт вон у фандэймона подойдёт
Аватара пользователя
xor
Сообщения: 709
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 42 раза
Поблагодарили: 177 раз

Re: Умная ПАУЗА (помогите)

Сообщение xor » Пт июл 06, 2018 10:48 pm

upd.upd. Сами команды бродлинка у меня работают без пауз нормально. 1с перед энтером я ввел для визуального контроля.

Кстати, у вас нажатие кнопки виртуального пульта, как я понял, меняет свойство объекта TV. К нему что ли метод привязан и из него команда на тв идёт? Не лучше ли вместо свойств методов насоздавать типа Press_0, Press_Vol_Up, и т.д. и сразу их и вызывать?

Зачем вам свойства-то? Ведь спустя какое-то время все они заполнятся единицами и что?

(По-хорошему, свойство кнопки должно тогда самосбрасываться через какое-то время после нажатия)
zoldaten
Сообщения: 126
Зарегистрирован: Вт авг 23, 2016 3:08 pm
Благодарил (а): 4 раза
Поблагодарили: 21 раз

Re: Умная ПАУЗА (помогите)

Сообщение zoldaten » Пт июл 06, 2018 11:05 pm

xor писал(а):
Пт июл 06, 2018 10:48 pm
upd.upd. Сами команды бродлинка у меня работают без пауз нормально. 1с перед энтером я ввел для визуального контроля.

Кстати, у вас нажатие кнопки виртуального пульта, как я понял, меняет свойство объекта TV. К нему что ли метод привязан и из него команда на тв идёт? Не лучше ли вместо свойств методов насоздавать типа Press_0, Press_Vol_Up, и т.д. и сразу их и вызывать?

Зачем вам свойства-то? Ведь спустя какое-то время все они заполнятся единицами и что?

(По-хорошему, свойство кнопки должно тогда самосбрасываться через какое-то время после нажатия)
здесь у нас написано, что можно управлять объект.свойство:
https://kb.smartliving.ru/%d0%bc%d0%be% ... %b7%d0%b2/
я создал объект ТВ, насоздавал к нему свойств - кнопки пульта, потом привязал команды в модуле broadlink к объекту ТV -свойству.
потом в сцене - пульте к каждой кнопке прописал код sg...
все по даташиту )
свойства сбрасываются на 0 после отработки
Ответить