Страница 1 из 4

[Настройка] Домашний кинотеатр kodi(xbmc)

Добавлено: Пн авг 31, 2015 2:58 pm
sega6549
у меня стоит комп, на винде, на нем собственно установлен МЖД так же на нем же стоит kodi(xbmc) которым пока я управляю ik-пультом, собственно который эмулирует нажатия стрелок вверх вниз лево право и клавиши ввод и назад, такой вопрос как подружить МЖД и kodi, чтоб например в МЖД видеть список файлов(с этим разобрался) и собственно клавиши управления вверх вниз лево право и клавиши ввод и назад, больше ничего в принципе и не надо, пробовал в терминалах подключить но че то не пашет, в плеере самом все настроено, логин и пароль и все такое, конечно в идеале написать бы сцену чисто под него, например типа такой: http://www.youtube.com/watch?v=1yb_VtsaFCM но это уже мечты) кто нить реализовывал уже управление этим плеером и как?

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Пн авг 31, 2015 10:59 pm
skysilver
Через терминалы должно работать, поддержка есть. Но функционал ограничен - в наличии только управление воспроизведением и громкостью. Управления медиатекой, навигации по интерфейсу kodi и прочего нет. Поэтому, чтобы в мажордомо создать сцену с элементами управления kodi нужно залезать в api kodi и писать код на php в мажордомо для нужных функций. Есть ещё вариант без интеграции с мажордомо - это использовать веб-интерфейс kodi для управления. Есть разные реализации, ставятся в виде плагинов kodi. А в мажордомо можно сделать домашнюю страницу, в параметрах которой прописать ссылку на веб-интерфейс kodi.

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 01, 2015 8:18 am
sega6549
Пробовал я последний вариант, очень коряво получается, хотелось бы что нить другое

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Ср сен 09, 2015 9:11 pm
sega6549
итак, друзья! давайте друг другу помогать и делиться, я забрал нетбук и хочу управлять kodi с мжд, неужели никто не использует данную связку?(((

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 15, 2015 1:58 am
Bolik.Stav
А собственно для чего управлять Kodi c МЖД,именно как стрелками и меню?
Как бы основная задача МЖД следить за системами и управлять/уведомлять.
Произошла тревога - Остановить фильм - Отобразить уведомление, наверно вот такая логика должна быть.
А для управления и всё что было на видео есть хорошая софтинка yatse на андроид

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 15, 2015 9:24 am
m-malva
"А собственно для чего управлять Kodi c МЖД"
Как зачем?!
Пример:
команда: Алиса смотреть фильм Перевозчик в спальне.

1 Нашли фильм в медиотеке.
2 Проверили включен КОДИ или нет. Если нет то включили.
3 Включили и переключили ресивер на КОДИ.
4 Включили телек и переключили на КОДИ.
5 Подготовили освещение в спальне в зависимости от степени освещенности.
6 Отправили ссылку на воспроизведение.

Собственно вопрос: Как в КОДИ отправить ссылку на воспроизведение?

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 15, 2015 1:22 pm
Bolik.Stav
m-malva писал(а):"А собственно для чего управлять Kodi c МЖД"
Как зачем?!
Пример:
команда: Алиса смотреть фильм Перевозчик в спальне.

1 Нашли фильм в медиотеке.
2 Проверили включен КОДИ или нет. Если нет то включили.
3 Включили и переключили ресивер на КОДИ.
4 Включили телек и переключили на КОДИ.
5 Подготовили освещение в спальне в зависимости от степени освещенности.
6 Отправили ссылку на воспроизведение.

Собственно вопрос: Как в КОДИ отправить ссылку на воспроизведение?
ну это можно разделит на две части которые можно реализовать
управление ( даже голосом ) есть в yatse
а включение телика,переключение на ресивер и активация самого Kodi это уже МЖД

теоретически Kodi умеет работать с Mysql и хранит медиатеку там.

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 15, 2015 1:37 pm
igoryan
Всем привет. Самому стало интересно как реализовать взаимодействие с Коди, реализовал пока так: (Все впринципе сырое, но работает. П.С. если что не так, сильно не пинайте. Только учусь :) )
Поехали...
Для начала создаем таблицу в базе db_terminal с именем video_list с тремя столбцами: Id , date , name
Id - автоинкремент
date - дата добавления (можно доделать скрипт или создать новый для вывода последнего добавленного видео)
name - имя файла видео
Впринцыпе можно добаить 4 столбец "Жанр(gener)" чтобы делать сортировку по жанрам , пока не реализовывал.
Добавили.

Потом написать скрипт, назовите как нравится(я назвал importvideo) следуйщего содержания:

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

$dir = '/mnt/media/films/'; //ваша папка с фильмами (поменять на свое)
$scan_dir = array_diff(scandir($dir), array('..', '.', )); // Убираем ненужное 
foreach($scan_dir as $item) { // Перебераем массив 
// Подключаемся к БД
$host="localhost"; // хост базы данных
$user="root"; // логин бд
$password="mysqlserver"; // пароль бд
$databasename="db_terminal"; // Имя бд
$date_time=date('Y-m-d H:i:s', time());
$con= mysql_connect($host,$user,$password);
mysql_select_db($databasename,$con);
$sql="INSERT INTO `video_list` (date, name) VALUES ('$date_time', '$item') ON DUPLICATE KEY UPDATE name=name"; // запрос (Дупликейт дабы не завписывалось два раза)
$result=mysql_query($sql,$con); // Выполнения запроса
mysql_close($con);} // закрываем соединение
Скрипт можно повесить на модуль watchfolders(Про модуль и его настройку можно поитать тут http://majordomo.smartliving.ru/Main/ModuleWatchfolders), для автообновления записей в бд. Или поставить время выполнения скрипта через определенное время.

Теперь мы имеем заполненную таблицу video_list, далее в зависимости от ваших требований или предпочтений можно поступить двумя способами:

Первый : Создаем шаблон с названием "Включи фильм (.+)" или "Включи видео (.+)" с кодом:

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

$n=$request=$matches[1]; // //получаем искомое название фильма (взято с темы "[Скрипт] Алиса и Википедия" за что большое спасибо)
// Подключение к бд
$host="localhost";
$user="root";
$password="mysqlserver";
$databasename="db_terminal";
$con= mysql_connect($host,$user,$password);
mysql_select_db($databasename,$con);
$sql="SELECT * FROM `video_list` WHERE `name` LIKE '%$n%'"; // поиск по похожему
$result=mysql_query($sql,$con);
while($arr=mysql_fetch_array($result)) {
// say ($arr['name']); // проговаривает имя файла, можно раскоментировать при желании
$o='smb://192.168.1.102/Media/films/'.$arr['name']; // Вместо строки "smb://192.168.1.102/Media/films/" надо вписать свой путь к видео файлам, такой же как и прописан в коди
fopen("[b]http://192.168.1.101:8888[/b]/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%20%22$o%22}},%22id%22:1}", 'r'); // Апи запрос. Здесь вместо "http://192.168.1.101:8888" нужно вписать свой адрес плеера и порт. (Двойные кавычки заменены на %22, при отправке запроса с кавычками не работало)
mysql_close($con); // закрываем соединение
Второй: Создаем шаблоны с контекстом(Если у вас например есть еще музыка(выбор которой можно сделать по аналогии с видео))
Называем шаблон например "Медиа" или "Мультимедиа" , ставим галочку "использовать как контекст" и в коде можно написать

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

say(' Вы Хотите фильм или музыку?');
, сохраняем и закрываем.

Создаем второй шаблон с именем "фильм". В поле "Доступно в контексте" выбираем предыдущий шаблон (Медиа или Мультимедиа, ну или как Вы его назвали)выставляем настройки.
Можно перечислить название фильмов (ВНИМАНИЕ!! Если количество фильмов большое, рассказывать будет долго, тогда время ожидания команды нужно выставить большое)
уже очень знакомый код:

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

$host="localhost";
$user="root";
$password="mysqlserver";
$databasename="db_terminal";
$con= mysql_connect($host,$user,$password);
mysql_select_db($databasename,$con);
$sql="SELECT `name` FROM `video_list`"; 
$result=mysql_query($sql,$con);
while($arr=mysql_fetch_array($result)) {
$list = explode(".", $arr['name']); // раделяем полученое до точки и после точки (убираем расширение файла)
say ($list[0]);} // проговариваем полученое
mysql_close($con);
Готово.
Создаем третий шаблон с названием "включи (.+)", в поле "Доступно в контексте" выбираем шаблон "фильм" и втавляем код :

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

$n=$request=$matches[1]; // //получаем искомое название фильма (взято с темы "[Скрипт] Алиса и Википедия" за что большое спасибо)
// Подключение к бд
$host="localhost";
$user="root";
$password="mysqlserver";
$databasename="db_terminal";
$con= mysql_connect($host,$user,$password);
mysql_select_db($databasename,$con);
$sql="SELECT * FROM `video_list` WHERE `name` LIKE '%$n%'"; // поиск по похожему
$result=mysql_query($sql,$con);
while($arr=mysql_fetch_array($result)) {
// say ($arr['name']); // проговаривает имя файла, можно раскоментировать при желании
$o='smb://192.168.1.102/Media/films/'.$arr['name']; // [b]Вместо строки "smb://192.168.1.102/Media/films/" надо вписать свой путь к видео файлам, такой же как и прописан в коди(xbmc)[/b]
fopen("[b]http://192.168.1.101:8888[/b]/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%20%22$o%22}},%22id%22:1}", 'r'); // Апи запрос. [b]Здесь вместо "http://192.168.1.101:8888" нужно вписать свой адрес плеера и порт[/b]. (Двойные кавычки заменены на %22, при отправке запроса с кавычками не работало)
mysql_close($con); // закрываем соединение
SQLExec("UPDATE users SET ACTIVE_CONTEXT_ID=0 WHERE 1");} // сбрасывает активный контекст 
Готово.

Теперь при команде медиа(или как Вы назвали), Алиса спросит "Хотите фильм или музыку?", Вы вводите (или говорите) "фильм", идет перечисление существующих фильмов(перечисление названий из бд), вводите (или говорите) "включи terminator" (terminator - было взято для примера) и включится фильм терминатор.
Названия фильмов у меня на Английском, так как Коди тянет из Movie Database картинки и инфу и переименовывает сразу.
С выбором видео вроде бы все. Если где-то допустил ошибки, сильно не ругайте. Ну и критика и "допиливание" кодов приветствуется .


Теперь с командами к плееру
В принципе все сделано по аналогии с видео, коды и смысл почти идентичны.
1. Заходим в Phpmyadmin (Можно просто импортировать прикрипленный файл, и дописывать Ваши команды в нем )
Создаем таблицу в базе данных с названием "kodi_commands" и тремя столбцами: id , command_name , command.
id - автоинкремент
command_name - Имя команды
command - комманда

Все данные я вводил непосредственно из phpmyadmin, тоесть выбирал нужную таблицу, в ней сверху есть SQL, в нем же и создавал запрос INSERT, id и соответствующие к нему 'value1' удалить и добавить значения:
Вместо 'value2' вписать имя команды (например 'пауза')
Вместо "value3' вписать команду (команда 'пауза' для плеера это {%22jsonrpc%22:%222.0%22,%22method%22:%22Player.PlayPause%22,%22params%22:{%22playerid%22:1},%22id%22:1} ). Как видно опять вместо двойных кавычек стоит %22, в дальнейшем тоже меняйте все кавычки на %22.

Прикриплю файл sql c некоторыми командами (Файл импотрировать в базу db_terminal)

Создаем шаблон, я назвал его "плеер (.+)", с кодом(думаю уже ничего сложного):

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

$n=$request=$matches[1];
$host="localhost";
$user="root";
$password="mysqlserver";
$databasename="db_terminal";
$con= mysql_connect($host,$user,$password);
mysql_query('SET NAMES utf8'); // обязательно!
mysql_select_db($databasename,$con);
$sql="SELECT * FROM `kodi_commands` WHERE `command_name` LIKE '%$n%'"; 
$result=mysql_query($sql,$con);
while($arr=mysql_fetch_array($result)) {
$o=$arr['command'];
$c='[b]http://192.168.1.101:8888[/b]/jsonrpc?request='; // [b]меняем адрес и порт плеера коди на свой[/b]
 fopen($c.$o, "r");}
 mysql_close($con);
Теперь при вводе команды(или проговаривании) "плеер пауза", плеер станет на паузу.
Есть краткий список команд, которые пока нашел, их можно добавить в бд и пользоватся. Не забываем менять все двойные кавычки на %22!!!
Вроде все. Повторюсь если что не так, сильно не пинайте.

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 15, 2015 3:45 pm
m-malva
igoryan
Вот спасибо за такой развернутый ответ!
importvideo только добавляет, а если файла уже нет?

"из Movie Database картинки"
Можно поинтересоваться почему не с "Кинопоиска"?

Re: домашний кинотеатр kodi(xbmc)

Добавлено: Вт сен 15, 2015 6:17 pm
igoryan
Незачто.
Вот это правильный вопрос, нужно помозговать, сходу неготов ответить.

А по второму, я только недавно установил коди, даже точнее дистрибутив openelec на raspberry, так особо не вникал и не настраивал. По свободе нада перенастроить.