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. Или как то можно изменить? -
Я маг и волшебник :D
Научился каналы включать
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"} ```` `Найди лучше как показать плейлист на экране текущий.
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 формат файла не верный? Покажи как у тебя выглядит файл `
! #EXTM3U
! #EXTINF:1, R.E.M. - Losing My Religion [1991]
! http://cs4-1v4.vk-cdn.net/p6/689ce9bfeb … wvbfYlOHgs
и тдВот так выглядит Коди при воспроизведении.

Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden