Листинг каналов ТВ и остановка (голосом)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
alekszaytsev@mail.ru
Сообщения: 6
Зарегистрирован: Чт апр 13, 2017 2:03 pm
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Листинг каналов ТВ и остановка (голосом)

Сообщение alekszaytsev@mail.ru » Вт апр 18, 2017 1:22 pm

Идея далеко не новая наверное , сказать "Алиса , полистай каналы" и что бы МЖДМ листал каналы на телевизоре , и самое главное при словах "Алиса стоп" останавливался. Я создал глобальную переменную и до начала листинга присваиваю ей значение 0 , затем создал шаблон поведения на слово "Стоп" с присваиванием этой переменной значения 1 , в цикле листинга сделал получение значения этой переменной до переключения на следующий канал и если 1 то остановка листинга (break). Так как останавливаться ни чего не хочет , в процессе дебага выявил что единица не передается внутрь цикла. Подскажите кто в курсе как решить, или может все проще чем я думал и давно есть готовое решение, то киньте ссылку пожалуйста...
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение lanket » Вт апр 18, 2017 3:57 pm

alekszaytsev@mail.ru писал(а):Идея далеко не новая наверное , сказать "Алиса , полистай каналы" и что бы МЖДМ листал каналы на телевизоре , и самое главное при словах "Алиса стоп" останавливался. Я создал глобальную переменную и до начала листинга присваиваю ей значение 0 , затем создал шаблон поведения на слово "Стоп" с присваиванием этой переменной значения 1 , в цикле листинга сделал получение значения этой переменной до переключения на следующий канал и если 1 то остановка листинга (break). Так как останавливаться ни чего не хочет , в процессе дебага выявил что единица не передается внутрь цикла. Подскажите кто в курсе как решить, или может все проще чем я думал и давно есть готовое решение, то киньте ссылку пожалуйста...
А кто листатет каналы?
То есть какойто проще вы даёте команду листать, можете сказать стоп. Какой проге , кому?

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
alekszaytsev@mail.ru
Сообщения: 6
Зарегистрирован: Чт апр 13, 2017 2:03 pm
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение alekszaytsev@mail.ru » Вт апр 18, 2017 4:31 pm

Листает скрипт управляющий Broadlinkом в котором прописано повторять отправку сигнала "Channel+" каждые 5 секунд (Листать не проблема , проблема остановить в нужном месте).
Шаблон поведения "Полистай каналы"
1. Прописывается глобальной переменной (ListStop) = 0
2. Начинаем цикл (for) бесконечный или конечный сколько каналов.
3. Пауза 4 сек.
4. Проверяем состояние ListStop , если = 1 то останавливаем цикл (break)
5. Отдаем команду Broadlinkу "Channel+"

Шаблон поведения "Стоп"
1. Прописывается глобальной переменной (ListStop) = 1

По идее все должно работать и во время переключения каналов если сказать "Стоп" состояние переменной изменяется , я проверял обновляя страницу. Но внутрь цикла это состояние не передается , пробовал 6. пунктом делать say ("Равно ListStop",2); что бы проговаривалось состояние переменной. И оно все время равно 0.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение Chainik » Вт апр 18, 2017 4:40 pm

А как вы получаете значение глобальной переменной ListStop внутри цикла? Так?

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

$value = gg('ListStop'); 
Аватара пользователя
alekszaytsev@mail.ru
Сообщения: 6
Зарегистрирован: Чт апр 13, 2017 2:03 pm
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение alekszaytsev@mail.ru » Вт апр 18, 2017 5:19 pm

Верно
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение lanket » Вт апр 18, 2017 5:21 pm

alekszaytsev@mail.ru писал(а):Листает скрипт управляющий Broadlinkом в котором прописано повторять отправку сигнала "Channel+" каждые 5 секунд (Листать не проблема , проблема остановить в нужном месте).
Шаблон поведения "Полистай каналы"
1. Прописывается глобальной переменной (ListStop) = 0
2. Начинаем цикл (for) бесконечный или конечный сколько каналов.
3...
Так может в этом и проблема.
Уже обсуждали проблемы долгоиграющих скриптов.

Гуру советуют таймерами пользоваться.
Может имеет смысл выполнять цикл запуском самого себя по таймеру?

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение Chainik » Вт апр 18, 2017 5:46 pm

Когда решал аналогичную по логике (но не по конечным действиям) задачу, у меня заработал вариант со скриптом, перезапускающим самого себя по таймеру. Помню, тоже пытался по-началу делать циклом, но что-то там не задалось...
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение slgeo » Ср апр 19, 2017 8:47 am

Со спутниковым ресивером на энигме проще и удобнее, называю сам канал и МД переключает, также и листаю командами "Список каналов","Вверх", "Вниз", "Отмена", "Программа передач". Пример реализации у меня в Connect-е.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение nick7zmail » Ср апр 19, 2017 9:22 am

ну во первых не

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

$value = gg('ListStop');
а

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

$value = gg('Объект.ListStop');
Во-вторых gg надо обязательно каждый раз в теле цикла делать.

Если не поможет, то проще реально с таймерами.
SetTimeOut(); функция, посмотрите по форуму примеры.
А для остановки clearTimeOut используйте.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
alekszaytsev@mail.ru
Сообщения: 6
Зарегистрирован: Чт апр 13, 2017 2:03 pm
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Листинг каналов ТВ и остановка (голосом)

Сообщение alekszaytsev@mail.ru » Чт апр 20, 2017 7:53 am

slgeo писал(а):slgeo

Уважаемый slgeo я безумно рад что у Вас такой крутой ресивер , но переключение как у Вас у меня давно реализовано (и не нужен вообще ресивер , нужен источник IR Lirc в моем случае Broadlink). Мне простите просто влом постоянно говорить Можордомо номер канала или в "В верх","В низ".

Вопрос решен - сделано таймером
Ответить