NEWS
Управление Kodi/Xbmc
-
Пока данный скрипт больше подходит как пульт для Kodi/Xbmc. Если что то больше то это уже драйвер. Возможно еще добавлю функцию воспроизведения видео по указанному пути.
Установить свой ip адрес медиацентра.
В настройках kodi включить удаленное управление.
createState('kodi.ExecuteAction', ''); var url = 'http://192.168.0.105'; var request = require('request'); on({id: 'javascript.0.kodi.ExecuteAction', change: 'any'}, function (obj) { if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){ sendCommand(obj.newState.val); }else{ log('Не задана команда.'); } }); // Функция отправки команды на медиацентр(kodi) function sendCommand(name){ log('Отправлена команда Kodi: '+name); var options = { url: url+'/jsonrpc', json: true, body: { "jsonrpc":"2.0", "method": "Input.ExecuteAction", "params": { "action": name}, "id":1 }, }; // Отправка данных методом POST. request.post(options, function (err, status, body) { log('Ответ от Kodi: '+JSON.stringify(body)); }); }
В vis создать новую страничку и разместить на ней кнопки по своему желанию.
Пример кнопки, которая отправляет команду "up" медиацентру, то есть вверх:
[{"tpl":"tplMetroTileState","data":{"visibility-cond":"==","visibility-val":1,"hover":"true","transform":"true","bg_class_false":"bg-indigo","bg_class_true":"bg-indigo","icon_class_false":"icon-arrow-up","icon_class_true":"icon-arrow-up","icon_badge_false":"","icon_badge_true":"","badge_bg_class_false":"","badge_bg_class_true":"","brand_bg_class_false":"","brand_bg_class_true":"","value":"up","state_oid":"javascript.0.kodi.ExecuteAction"},"style":{"left":"668px","top":"188px","opacity":""},"widgetSet":"metro"}]
Настройка кнопки: изменить поле "Значение" на свою команду.
Список команд:
left, right, up, down, pageup, pagedown, select, highlight, parentdir, parentfolder, back, previousmenu, info, pause, stop, skipnext, skipprevious, fullscreen, aspectratio, stepforward, stepback, bigstepforward, bigstepback, chapterorbigstepforward, chapterorbigstepback, osd, showsubtitles, nextsubtitle, cyclesubtitle, codecinfo, nextpicture, previouspicture, zoomout, zoomin, playlist, queue, zoomnormal, zoomlevel1, zoomlevel2, zoomlevel3, zoomlevel4, zoomlevel5, zoomlevel6, zoomlevel7, zoomlevel8, zoomlevel9, nextcalibration, resetcalibration, analogmove, rotate, rotateccw, close, subtitledelayminus, subtitledelay, subtitledelayplus, audiodelayminus, audiodelay, audiodelayplus, subtitleshiftup, subtitleshiftdown, subtitlealign, audionextlanguage, verticalshiftup, verticalshiftdown, nextresolution, audiotoggledigital, number0, number1, number2, number3, number4, number5, number6, number7, number8, number9, osdleft, osdright, osdup, osddown, osdselect, osdvalueplus, osdvalueminus, smallstepback, fastforward, rewind, play, playpause, switchplayer, delete, copy, move, mplayerosd, hidesubmenu, screenshot, rename, togglewatched, scanitem, reloadkeymaps, volumeup, volumedown, mute, backspace, scrollup, scrolldown, analogfastforward, analogrewind, moveitemup, moveitemdown, contextmenu, shift, symbols, cursorleft, cursorright, showtime, analogseekforward, analogseekback, showpreset, nextpreset, previouspreset, lockpreset, randompreset, increasevisrating, decreasevisrating, showvideomenu, enter, increaserating, decreaserating, togglefullscreen, nextscene, previousscene, nextletter, prevletter, jumpsms2, jumpsms3, jumpsms4, jumpsms5, jumpsms6, jumpsms7, jumpsms8, jumpsms9, filter, filterclear, filtersms2, filtersms3, filtersms4, filtersms5, filtersms6, filtersms7, filtersms8, filtersms9, firstpage, lastpage, guiprofile, red, green, yellow, blue, increasepar, decreasepar, volampup, volampdown, createbookmark, createepisodebookmark, settingsreset, settingslevelchange, stereomode, nextstereomode, previousstereomode, togglestereomode, stereomodetomono, channelup, channeldown, previouschannelgroup, nextchannelgroup, playpvr, playpvrtv, playpvrradio, record, leftclick, rightclick, middleclick, doubleclick, longclick, wheelup, wheeldown, mousedrag, mousemove, tap, longpress, pangesture, zoomgesture, rotategesture, swipeleft, swiperight, swipeup, swipedown, noop
Не забываем, что кнопки можно копировать по клавишам ctrl+c и ctrl+v, если зажать shift и двигать кнопку за уголок, то размер будет изменяться пропорционально.
Основные команды: left, right, up, down, select, play, playpause, volumeup, volumedown
Делитесь интерфейсом своих пультов и не только! Как свой пульт доделаю, постараюсь выложить.
-
А зачем ему пульт? Если у коли есть веб морда?
-
Как минимум это все в одном интерфейсе, можно сделать пульт под себя ( только нужные кнопки). Да и убогий пульт в самом коди, у меня там кнопка play почему то не работает.
Во вторых можно послать команду паузы при просмотре фильма при звонке в домофон или еще откуда, воображай
-
У меня появилась одна идея/задача.
Обычно я фильм скачиваю через торрент на NAS и смотрю через Kodi по сети с NAS, на этом заканчивается мое использование Kodi (ну еще иногда просмотр интернет ТВ).
Геморрой заключается в том, чтобы быстро найти этот фильм из списка ранее скаченных фильмов и включить его на воспроизведение.
Хочу подключить сетевой диск к серверу, где крутится iobroker. Потом через модуль fs получить последний файл(сортируем по дате и вычисляем его имя). И скормить Kodi через API путь до этого файла. А в vis сделать кнопку на подобии play new через которую отработает все выше написанное. В итоге я должен буду получить воспроизведение последнего скаченного фильма мгновенно.
Как думаете есть смысл изобретать?
-
vtec а как стартануть IPTV (Simple IPTV)?
play не срабатывает.
Как нибудь организовывал уход в сон и пробуждение малинки?
Добавлено:
со стартом IPTV разобрался, команда playpvr
-
Как нибудь организовывал уход в сон и пробуждение малинки? `
А зачем? Она потребляет то копейки.
@instalator:Добавлено:
со стартом IPTV разобрался, команда playpvr `
Расскажи что наделал. Там же еще как то канал включить нужно…Можно напрямую каналы включать подставив url
Пример включения радио.
http://192.168.0.105/jsonrpc?request={"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"http://cast.radiogroup.com.ua:8000/avtoradio"}}}
-
А зачем? Она потребляет то копейки. `
Ну даже и не знаю что сказать) проц жалко) Напишу скриптик чтобы при выключение ресивера стопалось проигрование.
@vtec:Расскажи что наделал. Там же еще как то канал включить нужно… `
С выбором канала не разбирался еще, на все вермени не хватает
@vtec:Можно напрямую каналы включать подставив url
Пример включения радио.
http://192.168.0.105/jsonrpc?request={"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"http://cast.radiogroup.com.ua:8000/avtoradio"}}} ```` `
О спасибо.
Подскажи еще нормальные видеодополнения, а то я что не поставлю нифига не работает. ставил из openelec и из сепиуса (вроде так называется).
-
Ну даже и не знаю что сказать) проц жалко) Напишу скриптик чтобы при выключение ресивера стопалось проигрование. `
Мне проц совсем не жалко, а вот карту памяти больше жалкоО спасибо.
Подскажи еще нормальные видеодополнения, а то я что не поставлю нифига не работает. ставил из openelec и из сепиуса (вроде так называется). `
А я больше ни чем и не пользуюсь. Мне нужно маленько, включить фильм или мультик ребенку или iptv глянуть, на этом мое использование xbmc заканчивается -
instalator, тут смотрели http://xbmc.ru/forum/
я когда осваивал xbmc, на этом форуме залипал
-
Расскажи что наделал. Там же еще как то канал включить нужно… `
просто playpvr стартует iptv.проблемка с переключением, пока организовал переключение: следующий (next), предыдущий (previous).
Еще не знаю как узнать что в данный момент запущен pvr, так как на запрос {"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1}
он отдает id 1 для видео и pvr.
function sendCommandPlayer(name){ log('Отправлена команда Kodi: '+name); var options = { url: url+'/jsonrpc', json: true, body: { "jsonrpc":"2.0", "method": "Player.GoTo", "params": { "playerid":1,"to":name}, "id":1 }, }; // Отправка данных методом POST. request.post(options, function (err, status, body) { log('Ответ от Kodi: '+JSON.stringify(body)); }); }
Вообще нужен драйвер, иначе придется в скрипт заносить все методы и команды.
Я думаю надо разбить по категориям все переменные и методы, т.е. на каждый метод своя переменная.
-
instalator, тут смотрели http://xbmc.ru/forum/
я когда осваивал xbmc, на этом форуме залипал `
Да спасибо, нашел все что мне нужно. -
Расскажи что наделал. Там же еще как то канал включить нужно… `
просто playpvr стартует iptv.проблемка с переключением, пока организовал переключение: следующий (next), предыдущий (previous).
Еще не знаю как узнать что в данный момент запущен pvr, так как на запрос {"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1}
он отдает id 1 для видео и pvr.
function sendCommandPlayer(name){ log('Отправлена команда Kodi: '+name); var options = { url: url+'/jsonrpc', json: true, body: { "jsonrpc":"2.0", "method": "Player.GoTo", "params": { "playerid":1,"to":name}, "id":1 }, }; // Отправка данных методом POST. request.post(options, function (err, status, body) { log('Ответ от Kodi: '+JSON.stringify(body)); }); }
Вообще нужен драйвер, иначе придется в скрипт заносить все методы и команды.
Я думаю надо разбить по категориям все переменные и методы, т.е. на каждый метод своя переменная. `
Может попробовать c playerid поиграться. Например для видео это 1, а для pvr это 2. -
Расскажи что наделал. Там же еще как то канал включить нужно… `
просто playpvr стартует iptv.проблемка с переключением, пока организовал переключение: следующий (next), предыдущий (previous).
Еще не знаю как узнать что в данный момент запущен pvr, так как на запрос {"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1}
он отдает id 1 для видео и pvr.
function sendCommandPlayer(name){ log('Отправлена команда Kodi: '+name); var options = { url: url+'/jsonrpc', json: true, body: { "jsonrpc":"2.0", "method": "Player.GoTo", "params": { "playerid":1,"to":name}, "id":1 }, }; // Отправка данных методом POST. request.post(options, function (err, status, body) { log('Ответ от Kodi: '+JSON.stringify(body)); }); }
Вообще нужен драйвер, иначе придется в скрипт заносить все методы и команды.
Я думаю надо разбить по категориям все переменные и методы, т.е. на каждый метод своя переменная.
Может попробовать c playerid поиграться. Например для видео это 1, а для pvr это 2.
Дак он отдает в обоих случаях 1. Или как то можно изменить? -
Такое ощущение что аддоном нельзя управлять, максимум что это можно, так только включить его.
-
Я маг и волшебник
Научился каналы включать
http://192.168.0.105/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Open","params":{"item":{"channelid":1}}}
Вместе мы можем на многое
-
Я маг и волшебник
Научился каналы включать
http://192.168.0.105/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Open","params":{"item":{"channelid":1}}}
Вместе мы можем на многое `
У меня получилось спарсить свой плейлист, сохранить его в файл m3u и отдать Коди. Но вот он зараза так и не показывает названия треков (берет их из ссылки). Курю дальше
2858_alexa1.png
2858_alexa2.png
2858_alexa3.png
2858_alexa4.png
2858_alexa5.png -
Еще можно сообщение показывать(как вариант показывать title):
{"jsonrpc": "2.0", "method": "GUI.ShowNotification", "params":{"title":"Switch to Channel 1","message":"1 Live TV Channel"},"id": "0"}
-
Еще можно сообщение показывать(как вариант показывать title):
{"jsonrpc": "2.0", "method": "GUI.ShowNotification", "params":{"title":"Switch to Channel 1","message":"1 Live TV Channel"},"id": "0"} ```` `
Найди лучше как показать плейлист на экране текущий.
http://192.168.0.105/jsonrpc?request={"}}}
допустим отправил файл а как его в плейлисте увидеть?
аналогично {"jsonrpc":"2.0","id":1,"method":"Playlist.Add","params":{"playlistid":0,"item":{"directory":"C:\temp2\test\test.m3u","recursive":true}}}
В углу показывает кол-во треков в плейлисте а как список вывести хз.
-
Может у тебя m3u формат файла не верный? Покажи как у тебя выглядит файл
-
Может у тебя m3u формат файла не верный? Покажи как у тебя выглядит файл `
! #EXTM3U
! #EXTINF:1, R.E.M. - Losing My Religion [1991]
! http://cs4-1v4.vk-cdn.net/p6/689ce9bfeb … wvbfYlOHgs
и тдВот так выглядит Коди при воспроизведении.