[Сценарий] Google Home в качестве терминала

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение sergejey » Вс фев 18, 2018 9:21 am

Рекомендую ещё провести эксперимент -- добавить колонку как плеер и указать тип ChromeCast. Нужно только знать IP-адрес и указать его. По идее в таком случае появится возможность отправить медиа-поток из системы на колонку. Но это не точно :) Работу ChromeCast я только на телевизоре тестировал (Google TV), там работало. Как раз по протоколу DIAL это происходит.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Dicont
Сообщения: 112
Зарегистрирован: Вс дек 17, 2017 11:24 pm
Благодарил (а): 34 раза
Поблагодарили: 11 раз

Re: Google Home - ifttt- web hook

Сообщение Dicont » Вс фев 18, 2018 10:03 am

sergejey писал(а):Рекомендую ещё провести эксперимент -- добавить колонку как плеер и указать тип ChromeCast. Нужно только знать IP-адрес и указать его. По идее в таком случае появится возможность отправить медиа-поток из системы на колонку. Но это не точно :) Работу ChromeCast я только на телевизоре тестировал (Google TV), там работало. Как раз по протоколу DIAL это происходит.
При этом в терминалах устройство должно быть Online?
и можно отправить
sayTo (getRandomLine("spasibo"),2,Speaker);
Так?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение sergejey » Вс фев 18, 2018 10:05 am

Dicont писал(а):
sergejey писал(а):Рекомендую ещё провести эксперимент -- добавить колонку как плеер и указать тип ChromeCast. Нужно только знать IP-адрес и указать его. По идее в таком случае появится возможность отправить медиа-поток из системы на колонку. Но это не точно :) Работу ChromeCast я только на телевизоре тестировал (Google TV), там работало. Как раз по протоколу DIAL это происходит.
При этом в терминалах устройство должно быть Online?
и можно отправить
sayTo (getRandomLine("spasibo"),2,Speaker);
Так?
Боюсь, что пока нет. Голос выводить я не делал на ChromeCast, только медиа-стримы (например из модуля радио 101.ru). Надо что б была включена галочка проигрывания медиа и выбран тип ChromeCast.
За это сообщение автора sergejey поблагодарил:
directman66 (Пн фев 26, 2018 2:14 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение directman66 » Вс фев 18, 2018 11:30 am

Терминал я прописал, но как попытаться отправить контент я не понял. Пишет кстати пока-что offline.

Хотя телнет по адресу 192.168.1.197 8008 ожидает команды.

В общем по примерам работы я понял, что колонка - аналог хромкаст со всеми вытекющими обстоятельствами.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение directman66 » Вс фев 18, 2018 11:08 pm

Stream: http://ic7.101.ru:8000/c5_2?userid=0&se ... 2&city=269

refresh
Warning: include(./modules/app_player/chromecast.php): failed to open stream: No such file or directory in /var/www/modules/app_player/app_player.class.php on line 302

Warning: include(): Failed opening './modules/app_player/chromecast.php' for inclusion (include_path='.:/usr/share/php') in /var/www/modules/app_player/app_player.class.php on line 302
on googlehome OK

Качаю альфа ветку.

Нет в ней chromecast.php

закинул отсюда https://github.com/ChrisRidings/CastV2inPHP

Колонка все равно аудио-медиа-поток не воспроиводит.

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

require_once("/var/www/modules/CastV2inPHP-master/Chromecast.php");
print_r(Chromecast::scan());

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

Array ( [Google-Home-835455054045c50c09c3ddc5e98fc537._googlecast._tcp.local] => Array ( [port] => 8009 [ip] => 192.168.1.197 [target] => 83545505-4045-c50c-09c3-ddc5e98fc537.local [friendlyname] => Коридор ) )
Но запустить поток примером из библиотеки почему-то не получается.
СпойлерПоказать

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

require_once("/var/www/modules/CastV2inPHP-master/Chromecast.php");
//print_r(Chromecast::scan());

// Create Chromecast object and give IP and Port
$cc = new Chromecast("192.168.1.197","8009");

// Launch the Chromecast App
$cc->launch("87087D10");

// Wait for the application to be ready
$response = "";
while (!preg_match("/Application status is ready/s",$response)) {
        $response = $cc->getCastMessage();
}

// Connect to the Application
$cc->connect();

// Send the URL
$cc->sendMessage("urn:x-cast:com.chrisridings.piccastr","http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4");

// Keep the connection alive with heartbeat
while (1==1) {
        $cc->pingpong();
    sleep(10);
} 
просто крутится круг выполнения запроса, т.е. страница чего-то ждет.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение directman66 » Вт фев 20, 2018 5:33 pm

directman66 писал(а): просто крутится круг выполнения запроса, т.е. страница чего-то ждет.
Напрямую перехватить пакет данных не удалось. Ssl все таки.
СпойлерПоказать
Изображение
Причем обмен происходит не с bubbleupnp а с сервисом Гугл.
Последний раз редактировалось directman66 Пн фев 26, 2018 2:35 pm, всего редактировалось 1 раз.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение directman66 » Пн фев 26, 2018 2:34 pm

sergejey писал(а): Боюсь, что пока нет. Голос выводить я не делал на ChromeCast, только медиа-стримы (например из модуля радио 101.ru). Надо что б была включена галочка проигрывания медиа и выбран тип ChromeCast.
Сергей, ведутся сейчас какие-нибудь работы по добавлению этих устройств (google home, amazon alexa) в качестве терминалов? По моему мнения в настоящее время это самая актуальная тема. И не будет вопросов относительно выбора колонок https://majordomo.smartliving.ru/forum/ ... =10#p72664
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение directman66 » Пт мар 02, 2018 12:11 pm

Сделал модуль на основе яндекс ттс, который говорит корявым голосом без интонации колонкой google home. Обязательно нужно установить и настроить https://github.com/noelportugal/google-home-notifier.

Проект тестировался только под линукс, под виндой нужно будет самостоятельно убедиться в работоспособности google-home-notifier.
Модуль подписывается на HOOK SAY и отправляет соответсвующую команду в google-home-notifier.

Если что, это мой первый модуль, пре-альфа версия ))

В итоге могу сказать, что встроенный ттс - не заслуживает особого внимания. Какой используется движок ттс, я пока не разбирался. Возможно есть возможность его заменить. Будет ли работать при отсутствии интернета - не знаю, пока не проверял. Пока этот ттс можно использовать только при отсутствии какой-либо другой альтернативы.

Этот же проект можно использовать как терминал MD (на примере vlc on http). Ожидаю, когда Сергей добавит 2 новых вида терминала -
1) google-notifier
2) DNLA-render.

К первому можно будет по тому же принципу отправлять звуковые файлы на воспроизведение через этот же проект.

У кого есть на чем тестировать, просьба отписаться.
Вложения
gh-tts.7z
(2.85 КБ) 203 скачивания
За это сообщение автора directman66 поблагодарили (всего 3):
Dicont (Пт мар 02, 2018 8:14 pm) • chimik (Сб мар 03, 2018 10:29 pm) • muzzzy (Пт апр 27, 2018 2:11 am)
Рейтинг: 3.49%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Dicont
Сообщения: 112
Зарегистрирован: Вс дек 17, 2017 11:24 pm
Благодарил (а): 34 раза
Поблагодарили: 11 раз

Re: Google Home - ifttt- web hook

Сообщение Dicont » Пт мар 02, 2018 8:14 pm

directman66 писал(а):Сделал модуль на основе яндекс ттс, который говорит корявым голосом без интонации колонкой google home. Обязательно нужно установить и настроить https://github.com/noelportugal/google-home-notifier.

Проект тестировался только под линукс, под виндой нужно будет самостоятельно убедиться в работоспособности google-home-notifier.
Модуль подписывается на HOOK SAY и отправляет соответсвующую команду в google-home-notifier.

Если что, это мой первый модуль, пре-альфа версия ))

В итоге могу сказать, что встроенный ттс - не заслуживает особого внимания. Какой используется движок ттс, я пока не разбирался. Возможно есть возможность его заменить. Будет ли работать при отсутствии интернета - не знаю, пока не проверял. Пока этот ттс можно использовать только при отсутствии какой-либо другой альтернативы.

Этот же проект можно использовать как терминал MD (на примере vlc on http). Ожидаю, когда Сергей добавит 2 новых вида терминала -
1) google-notifier
2) DNLA-render.

К первому можно будет по тому же принципу отправлять звуковые файлы на воспроизведение через этот же проект.

У кого есть на чем тестировать, просьба отписаться.
Наверно все очень ждут твоих тестов. Сам хотел колонку заказать, но пока только мониторинг к сожалению, как раз отсутствие модуля и смущает.
Хорошо что занимаешься! Спасибо за продвижение голосового управления!
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Google Home - ifttt- web hook

Сообщение directman66 » Вс мар 04, 2018 11:57 pm

Благодяря sergejey получилось использовать колонку как терминал.

Т.е. Алиса теперь отвечает живым голосом Яндекса ТТС через колонку google home mini.
Необходимо:
1) Установить google-home-notifier https://github.com/noelportugal/google-home-notifier и прописать его автозапуск например через cron раз в 10 минут.
для линукс:

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

shell_exec("node /home/pi/google-home-notifier/example.js"); 
для винды что-то по аналогии

2) Добавить новый терминал с типом google-home-notifier и прописываеть адрес и порт google-home-notifier
3) В обработчике Настройки-> Общие настройки-> Обработчики в поле Before PlaySound (code) необходимо добавить код:

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

if (preg_match('/cached\/voice.+/is',$filename,$m)) { $url='http://192.168.1.35/'.$m[0]; playMedia($url,'MAIN');DebMes($url,'googlenotifier');} 
где MAIN - имя вашего нового терминала, 192.168.1.35 - ip адрес google-home-notifier

Ветка альфа

Учитывайте тот факт, что данный метод не ждет завершения проговаривания предыдущего файла. Поэтому, если у вас идут друг за другом несколько уведомлений, выставляйте задержку в секундах sleep(10);

зыж: по моей просьбе добавлены новые типы терминалов, DNLA player. У кого какие есть колонки dnla тестирования? Думаю добавить их как терминал не составит особого труда.
Последний раз редактировалось directman66 Пн мар 05, 2018 8:58 pm, всего редактировалось 4 раза.
За это сообщение автора directman66 поблагодарили (всего 3):
odinvolk (Пн мар 05, 2018 9:18 am) • TurburatoR (Ср мар 07, 2018 12:57 pm) • Gelezako (Пт мар 09, 2018 7:17 pm)
Рейтинг: 3.49%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ответить