Контексты в шаблонах поведения
Модератор: immortal
- xor
- Сообщения: 2040
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Контексты в шаблонах поведения
Включи канал->
-->Мульт
-->1
-->22
Так, что ли?
С возможностью задать канал предопределённым именем или любым номером?
Можно.
Или я что-то не понял?
Я думал, что для вас главное-преобразовать многозначный номер канала в последовательность передачи команд по цифрам
Отправлено с моего Redmi 4X через Tapatalk
-->Мульт
-->1
-->22
Так, что ли?
С возможностью задать канал предопределённым именем или любым номером?
Можно.
Или я что-то не понял?
Я думал, что для вас главное-преобразовать многозначный номер канала в последовательность передачи команд по цифрам
Отправлено с моего Redmi 4X через Tapatalk
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Контексты в шаблонах поведения
Свет в нескольких местах не проблема - просто убираем галочку "не искать совпадения в других шаблонах", или как там она называлась - и всё...отрабатывает 1 шаблон, возвращает контекст, отрабатывает второй шаблон. То есть отрабатываются команды в порядке указанного приоритета. В случае с каналами же надо ещё и порядок контроллировать. Тут вам гораздо проще создать отдельный скрипт обработки и вызывать его передавая номер канала параметром. А в скрипте через array_slice разделять номер на цифры, и по порядку через foreach вызывать команды ответственные за цифры.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 172
- Зарегистрирован: Пт апр 06, 2018 9:40 am
- Благодарил (а): 93 раза
- Поблагодарили: 93 раза
Re: Контексты в шаблонах поведения
Если я буду, как вы вызвать шаблон включить "свет", но вместо света будет активироваться код кнопки, а потом возвращаться в контекст и вызывать шаблон другого "света" и другой код кнопки посылать, то это не отработает как положено? Я думал что после выполнения команды идет возврат в контекст и можно будет перебирать кнопки. Приоритет если одинаковый поставить не поможет? Просто с моими познаниями в скриптах я такой код явно не осилю.
- Рейтинг: 1.16%
-
- Сообщения: 172
- Зарегистрирован: Пт апр 06, 2018 9:40 am
- Благодарил (а): 93 раза
- Поблагодарили: 93 раза
Re: Контексты в шаблонах поведения
Вообщем команды из строки ввода понимает Алиса на ура, Пишем Включи 1- (идет возврат к включи), потом 2(), потом 3() и Алиса шлет все три команды и телек смиренно выполняет набирая на экране канал 123, а вот с командой голосом этот фокус не проходит, мажордроид оправляет команду целиком и фраза "включи 1 2 3" выполняет включение 1. Как разделить голосовую команду не знаю, приходится тыкать быстро в рупор и говорить Включи 1, затем снова быстро тыкаем и надеемся что гугл успеет распознать и отправить команду до выхода из контекста (5 сек-время которое телек ждет ввода следующего кода до переключения на канал).newz20 писал(а): ↑Пт май 11, 2018 12:39 pmЕсли я буду, как вы вызвать шаблон включить "свет", но вместо света будет активироваться код кнопки, а потом возвращаться в контекст и вызывать шаблон другого "света" и другой код кнопки посылать, то это не отработает как положено? Я думал что после выполнения команды идет возврат в контекст и можно будет перебирать кнопки. Приоритет если одинаковый поставить не поможет? Просто с моими познаниями в скриптах я такой код явно не осилю.
Может кто знает как разделить голосом команды?
Ну красиво же получается, осталось только дотащить до конечного результата команды голосом.
- Рейтинг: 1.16%
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Контексты в шаблонах поведения
А зачем это реализовывать через контексты-то?! Со светом там понятно - свет можно включать в разных местах одновременно и контекст тут имеет смысл, а канал всё равно включается только один.newz20 писал(а): ↑Пт май 11, 2018 9:41 amА можно это реализовать через возврат к контексту включи канал? Примерно такxor писал(а): ↑Пт май 11, 2018 9:30 amВсегда завидовал людям, которые помнят, что у них на 123 каналах настроено!))
Я бы делал шаблон по типу:
Включи Карусель
(ну, по человеческому названию).
Но, возвращаясь к теме:
Вы как номер канала хотите проговаривать: сто двадцать три или сто двадцать третий или один два три?
Посмотрите, как Гугл номер канала распознает. Идеально, если числом 123, тогда шаблон можно сделать
Включи канал номер (+d.) //Ну, шаблон для выбора чисел
И полученное значение я бы в цикле обрабатывал, отщипывая по символу слева и передавая на пульт последовательно
Отправлено с моего Redmi 4X через Tapatalk
Включи канал далее 1, возврат к контексту включи канал далее 2 и т.д.? Или у меня не получится?
Просто тогда я смогу при настройке 10 кнопок бегать по любым числовым каналам. А Включи Мульт у меня работает нормально, там код зашит сразу.
Просто видел что ранее в ветке люди включают свет в нескольких местах.
Делается шаблон, как выше указали
Включи канал (+d.)
И пишется код
$chanel=(int)matches[1];
if ($chanel>99) {
$pult_num=floor($chanel/100);
отправлем на пульт кнопку $pult_num
$chanel=$chanel - 100*$pult_num;
$pult_num=floor($chanel/10);
отправляем на пульт $pult_num
$pult_num=$chanel - 10*$pult_num;
отправляем на пульт $pult_num
}
elseif ($chanel>9) {
$pult_num=floor($chanel/10);
отправляем $pult_num
$pult_num=$chanel - 10*$pult_num;
отправляем $pult_num
}
else {
отправляем $chanel
}
блоки elseif и else нужны если вы собираетесь проговаривать двузначные и однозначные числа... Если числа всегда будут трёхзначные, то тогда эти блоки не нужны
Последний раз редактировалось fandaymon Пт май 11, 2018 3:23 pm, всего редактировалось 1 раз.
- Рейтинг: 1.16%
-
- Сообщения: 172
- Зарегистрирован: Пт апр 06, 2018 9:40 am
- Благодарил (а): 93 раза
- Поблагодарили: 93 раза
Re: Контексты в шаблонах поведения
Смысл набрать канал по своему желанию, а не заранее запрограммированный, кнопки тоже можно нажимать на пульте разные, а пультов может быть много. Сказал "Телевизор - 1,2,3" и телек переключился на 123 канал, сказал "билайн - 1,2" и приставка билайн включила 12 канал.fandaymon писал(а): ↑Пт май 11, 2018 2:58 pmА зачем это реализовывать через контексты-то?! Со светом там понятно - свет можно включать в разных местах одновременно и контекст тут имеет смысл, а канал всё равно включается только один.newz20 писал(а): ↑Пт май 11, 2018 9:41 amА можно это реализовать через возврат к контексту включи канал? Примерно такxor писал(а): ↑Пт май 11, 2018 9:30 amВсегда завидовал людям, которые помнят, что у них на 123 каналах настроено!))
Я бы делал шаблон по типу:
Включи Карусель
(ну, по человеческому названию).
Но, возвращаясь к теме:
Вы как номер канала хотите проговаривать: сто двадцать три или сто двадцать третий или один два три?
Посмотрите, как Гугл номер канала распознает. Идеально, если числом 123, тогда шаблон можно сделать
Включи канал номер (+d.) //Ну, шаблон для выбора чисел
И полученное значение я бы в цикле обрабатывал, отщипывая по символу слева и передавая на пульт последовательно
Отправлено с моего Redmi 4X через Tapatalk
Включи канал далее 1, возврат к контексту включи канал далее 2 и т.д.? Или у меня не получится?
Просто тогда я смогу при настройке 10 кнопок бегать по любым числовым каналам. А Включи Мульт у меня работает нормально, там код зашит сразу.
Просто видел что ранее в ветке люди включают свет в нескольких местах.
Может я не верно излагаю задумку? Но примерно в моем понимании это так.
- Рейтинг: 1.16%
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Контексты в шаблонах поведения
Всё равно придётся делать проверку билайн это или телевизор - коды-то пультов у них разные ... А канал и набирается по желанию при помощи кода который остался в моём предыдущем сообщении.newz20 писал(а): ↑Пт май 11, 2018 3:17 pmСмысл набрать канал по своему желанию, а не заранее запрограммированный, кнопки тоже можно нажимать на пульте разные, а пультов может быть много. Сказал "Телевизор - 1,2,3" и телек переключился на 123 канал, сказал "билайн - 1,2" и приставка билайн включила 12 канал.fandaymon писал(а): ↑Пт май 11, 2018 2:58 pmА зачем это реализовывать через контексты-то?! Со светом там понятно - свет можно включать в разных местах одновременно и контекст тут имеет смысл, а канал всё равно включается только один.newz20 писал(а): ↑Пт май 11, 2018 9:41 amА можно это реализовать через возврат к контексту включи канал? Примерно такxor писал(а): ↑Пт май 11, 2018 9:30 amВсегда завидовал людям, которые помнят, что у них на 123 каналах настроено!))
Я бы делал шаблон по типу:
Включи Карусель
(ну, по человеческому названию).
Но, возвращаясь к теме:
Вы как номер канала хотите проговаривать: сто двадцать три или сто двадцать третий или один два три?
Посмотрите, как Гугл номер канала распознает. Идеально, если числом 123, тогда шаблон можно сделать
Включи канал номер (+d.) //Ну, шаблон для выбора чисел
И полученное значение я бы в цикле обрабатывал, отщипывая по символу слева и передавая на пульт последовательно
Отправлено с моего Redmi 4X через Tapatalk
Включи канал далее 1, возврат к контексту включи канал далее 2 и т.д.? Или у меня не получится?
Просто тогда я смогу при настройке 10 кнопок бегать по любым числовым каналам. А Включи Мульт у меня работает нормально, там код зашит сразу.
Просто видел что ранее в ветке люди включают свет в нескольких местах.
Может я не верно излагаю задумку? Но примерно в моем понимании это так.
- Рейтинг: 1.16%
-
- Сообщения: 172
- Зарегистрирован: Пт апр 06, 2018 9:40 am
- Благодарил (а): 93 раза
- Поблагодарили: 93 раза
Re: Контексты в шаблонах поведения
Хорошо, теперь для тех кто совсем плохо понимает.
Я сразу писал что слаб в коде, помогите разобрать.
Код: Выделить всё
$chanel=(int)matches[1]; // присваиваем переменной "канал" найденное из команды и делает его целым
if ($chanel>99) { //Если число больше 99 то
$pult_num=floor($chanel/100); //переменная "пульт" = делить "канал" на 100 и взять первую цифру.
отправлем на пульт кнопку $pult_num //как отправить код?
$chanel=$chanel - 100*$pult_num; // тут переназначаем "канал" на первое значение "канал" - то что получили в пульт умноженное на 100
$pult_num=floor($chanel/10); //тут переназначаем "пульт" и делим "канал" на 10 и берем первую цифру
отправляем на пульт $pult_num //как отправить код?
$pult_num=$chanel - 10*$pult_num; // тут берем уже отнимаем десятки оставшиеся и оставляем единицы
отправляем на пульт $pult_num //как отправить код?
}
elseif ($chanel>9) {
$pult_num=floor($chanel/10);
отправляем $pult_num
$pult_num=$chanel - 10*$pult_num;
отправляем $pult_num
}
else {
отправляем $chanel
}
Я только не могу понять где мне прописать коды этих 10 кнопок что бы $pult_num получая значение 8 отправлял код этой кнопки в свойство объекта а именно sg('ir.ir-code',код)?
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Контексты в шаблонах поведения
Сделать вначале массив с кодами кнопок.newz20 писал(а): ↑Пт май 11, 2018 4:04 pmХорошо, теперь для тех кто совсем плохо понимает.
Я сразу писал что слаб в коде, помогите разобрать.Я разобрался вроде с математической стороной вопросаКод: Выделить всё
$chanel=(int)matches[1]; // присваиваем переменной "канал" найденное из команды и делает его целым if ($chanel>99) { //Если число больше 99 то $pult_num=floor($chanel/100); //переменная "пульт" = делить "канал" на 100 и взять первую цифру. отправлем на пульт кнопку $pult_num //как отправить код? $chanel=$chanel - 100*$pult_num; // тут переназначаем "канал" на первое значение "канал" - то что получили в пульт умноженное на 100 $pult_num=floor($chanel/10); //тут переназначаем "пульт" и делим "канал" на 10 и берем первую цифру отправляем на пульт $pult_num //как отправить код? $pult_num=$chanel - 10*$pult_num; // тут берем уже отнимаем десятки оставшиеся и оставляем единицы отправляем на пульт $pult_num //как отправить код? } elseif ($chanel>9) { $pult_num=floor($chanel/10); отправляем $pult_num $pult_num=$chanel - 10*$pult_num; отправляем $pult_num } else { отправляем $chanel }
Я только не могу понять где мне прописать коды этих 10 кнопок что бы $pult_num получая значение 8 отправлял код этой кнопки в свойство объекта а именно sg('ir.ir-code',код)?
$pult_code=array('код нуля','код единицы','код двойки',....);
А там где написано отправляем код
sg('ir.ir-code',$pult_code[$pult_num]);
Эта команда достаёт из массива код соотвествующий нашему номеру и заносит его в наше свойство
- Рейтинг: 1.16%
-
- Сообщения: 172
- Зарегистрирован: Пт апр 06, 2018 9:40 am
- Благодарил (а): 93 раза
- Поблагодарили: 93 раза
Re: Контексты в шаблонах поведения
Тогда тутfandaymon писал(а): ↑Пт май 11, 2018 4:12 pmСделать вначале массив с кодами кнопок.newz20 писал(а): ↑Пт май 11, 2018 4:04 pmХорошо, теперь для тех кто совсем плохо понимает.
Я сразу писал что слаб в коде, помогите разобрать.Я разобрался вроде с математической стороной вопросаКод: Выделить всё
$chanel=(int)matches[1]; // присваиваем переменной "канал" найденное из команды и делает его целым if ($chanel>99) { //Если число больше 99 то $pult_num=floor($chanel/100); //переменная "пульт" = делить "канал" на 100 и взять первую цифру. отправлем на пульт кнопку $pult_num //как отправить код? $chanel=$chanel - 100*$pult_num; // тут переназначаем "канал" на первое значение "канал" - то что получили в пульт умноженное на 100 $pult_num=floor($chanel/10); //тут переназначаем "пульт" и делим "канал" на 10 и берем первую цифру отправляем на пульт $pult_num //как отправить код? $pult_num=$chanel - 10*$pult_num; // тут берем уже отнимаем десятки оставшиеся и оставляем единицы отправляем на пульт $pult_num //как отправить код? } elseif ($chanel>9) { $pult_num=floor($chanel/10); отправляем $pult_num $pult_num=$chanel - 10*$pult_num; отправляем $pult_num } else { отправляем $chanel }
Я только не могу понять где мне прописать коды этих 10 кнопок что бы $pult_num получая значение 8 отправлял код этой кнопки в свойство объекта а именно sg('ir.ir-code',код)?
$pult_code=array('код нуля','код единицы','код двойки',....);
А там где написано отправляем код
sg('ir.ir-code',$pult_code[$pult_num]);
Эта команда достаёт из массива код соотвествующий нашему номеру и заносит его в наше свойство
else {
отправляем $chanel
}
Надо переписать на
else {
$pult_num=$chanel;
sg('ir.ir-code',$pult_code[$pult_num]);
}
Правильно?
- Рейтинг: 1.16%