Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Управление Kodi/Xbmc

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Управление Kodi/Xbmc

    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      vtec last edited by

      Пока данный скрипт больше подходит как пульт для 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

      Делитесь интерфейсом своих пультов и не только! Как свой пульт доделаю, постараюсь выложить.

      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        А зачем ему пульт? Если у коли есть веб морда?

        1 Reply Last reply Reply Quote 0
        • V
          vtec last edited by

          Как минимум это все в одном интерфейсе, можно сделать пульт под себя ( только нужные кнопки). Да и убогий пульт в самом коди, у меня там кнопка play почему то не работает.

          Во вторых можно послать команду паузы при просмотре фильма при звонке в домофон или еще откуда, воображай 🙂

          1 Reply Last reply Reply Quote 0
          • V
            vtec last edited by

            У меня появилась одна идея/задача.

            Обычно я фильм скачиваю через торрент на NAS и смотрю через Kodi по сети с NAS, на этом заканчивается мое использование Kodi (ну еще иногда просмотр интернет ТВ).

            Геморрой заключается в том, чтобы быстро найти этот фильм из списка ранее скаченных фильмов и включить его на воспроизведение.

            Хочу подключить сетевой диск к серверу, где крутится iobroker. Потом через модуль fs получить последний файл(сортируем по дате и вычисляем его имя). И скормить Kodi через API путь до этого файла. А в vis сделать кнопку на подобии play new через которую отработает все выше написанное. В итоге я должен буду получить воспроизведение последнего скаченного фильма мгновенно.

            Как думаете есть смысл изобретать?

            1 Reply Last reply Reply Quote 0
            • I
              instalator last edited by

              vtec а как стартануть IPTV (Simple IPTV)?

              play не срабатывает.

              Как нибудь организовывал уход в сон и пробуждение малинки?

              Добавлено:

              со стартом IPTV разобрался, команда playpvr

              1 Reply Last reply Reply Quote 0
              • V
                vtec last edited by

                @instalator:

                Как нибудь организовывал уход в сон и пробуждение малинки? `
                А зачем? Она потребляет то копейки.
                @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"}}}
                
                1 Reply Last reply Reply Quote 0
                • I
                  instalator last edited by

                  @vtec:

                  А зачем? Она потребляет то копейки. `
                  Ну даже и не знаю что сказать) проц жалко) Напишу скриптик чтобы при выключение ресивера стопалось проигрование.
                  @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 и из сепиуса (вроде так называется).

                  1 Reply Last reply Reply Quote 0
                  • V
                    vtec last edited by

                    @instalator:

                    Ну даже и не знаю что сказать) проц жалко) Напишу скриптик чтобы при выключение ресивера стопалось проигрование. `
                    Мне проц совсем не жалко, а вот карту памяти больше жалко 🙂

                    @instalator:

                    О спасибо.

                    Подскажи еще нормальные видеодополнения, а то я что не поставлю нифига не работает. ставил из openelec и из сепиуса (вроде так называется). `
                    А я больше ни чем и не пользуюсь. Мне нужно маленько, включить фильм или мультик ребенку или iptv глянуть, на этом мое использование xbmc заканчивается 🙂

                    1 Reply Last reply Reply Quote 0
                    • aurodionov
                      aurodionov last edited by

                      instalator, тут смотрели http://xbmc.ru/forum/

                      я когда осваивал xbmc, на этом форуме залипал

                      1 Reply Last reply Reply Quote 0
                      • I
                        instalator last edited by

                        @vtec:

                        Расскажи что наделал. Там же еще как то канал включить нужно… `
                        просто 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));
                            });
                        }
                        

                        Вообще нужен драйвер, иначе придется в скрипт заносить все методы и команды.

                        Я думаю надо разбить по категориям все переменные и методы, т.е. на каждый метод своя переменная.

                        1 Reply Last reply Reply Quote 0
                        • I
                          instalator last edited by

                          @aurodionov:

                          instalator, тут смотрели http://xbmc.ru/forum/

                          я когда осваивал xbmc, на этом форуме залипал `
                          Да спасибо, нашел все что мне нужно.

                          1 Reply Last reply Reply Quote 0
                          • V
                            vtec last edited by

                            @instalator:

                            @vtec:

                            Расскажи что наделал. Там же еще как то канал включить нужно… `
                            просто 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 Reply Last reply Reply Quote 0
                            • I
                              instalator last edited by

                              @vtec:

                              @instalator:

                              @vtec:

                              Расскажи что наделал. Там же еще как то канал включить нужно… `
                              просто 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. Или как то можно изменить?

                              1 Reply Last reply Reply Quote 0
                              • V
                                vtec last edited by

                                Такое ощущение что аддоном нельзя управлять, максимум что это можно, так только включить его.

                                1 Reply Last reply Reply Quote 0
                                • V
                                  vtec last edited by

                                  Я маг и волшебник 😄

                                  Научился каналы включать

                                  http://192.168.0.105/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Open","params":{"item":{"channelid":1}}}
                                  

                                  Вместе мы можем на многое 😉

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    instalator last edited by

                                    @vtec:

                                    Я маг и волшебник 😄

                                    Научился каналы включать

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • V
                                      vtec last edited by

                                      Еще можно сообщение показывать(как вариант показывать title):

                                       {"jsonrpc": "2.0", "method": "GUI.ShowNotification", "params":{"title":"Switch to Channel 1","message":"1 Live TV Channel"},"id": "0"}
                                      
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • I
                                        instalator last edited by

                                        @vtec:

                                        Еще можно сообщение показывать(как вариант показывать 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}}}

                                        В углу показывает кол-во треков в плейлисте а как список вывести хз.

                                        1 Reply Last reply Reply Quote 0
                                        • V
                                          vtec last edited by

                                          Может у тебя m3u формат файла не верный? Покажи как у тебя выглядит файл

                                          1 Reply Last reply Reply Quote 0
                                          • I
                                            instalator last edited by

                                            @vtec:

                                            Может у тебя m3u формат файла не верный? Покажи как у тебя выглядит файл `

                                            ! #EXTM3U
                                            ! #EXTINF:1, R.E.M. - Losing My Religion [1991]
                                            ! http://cs4-1v4.vk-cdn.net/p6/689ce9bfeb … wvbfYlOHgs
                                            и тд

                                            Вот так выглядит Коди при воспроизведении.
                                            266_tttttt.png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            639
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            34
                                            9626
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo