Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Управление Kodi/Xbmc

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    648

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

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

Scheduled Pinned Locked Moved ioBroker скрипты
34 Posts 3 Posters 11.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    vtec
    wrote on last edited by
    #14

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

    1 Reply Last reply
    0
    • V Offline
      V Offline
      vtec
      wrote on last edited by
      #15

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

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

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

      Вместе мы можем на многое ;)

      1 Reply Last reply
      0
      • I Offline
        I Offline
        instalator
        wrote on last edited by
        #16

        @vtec:

        Я маг и волшебник :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

        Высокий уровень Децибел вреден для здоровья!

        http://blog.instalator.ru/

        1 Reply Last reply
        0
        • V Offline
          V Offline
          vtec
          wrote on last edited by
          #17

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

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

            @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}}}

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

            Высокий уровень Децибел вреден для здоровья!

            http://blog.instalator.ru/

            1 Reply Last reply
            0
            • V Offline
              V Offline
              vtec
              wrote on last edited by
              #19

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

              1 Reply Last reply
              0
              • I Offline
                I Offline
                instalator
                wrote on last edited by
                #20

                @vtec:

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

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

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

                Высокий уровень Децибел вреден для здоровья!

                http://blog.instalator.ru/

                1 Reply Last reply
                0
                • V Offline
                  V Offline
                  vtec
                  wrote on last edited by
                  #21

                  У меня локально вот такой плей лист открыл

                  #EXTM3U
                  #EXTINF:306,Amethystium - Arcus
                  E:\music\Amethystium\Evermind\Amethystium-Arcus.mp3
                  #EXTINF:254,Amethystium - Barefoot
                  E:\music\Amethystium\Evermind\Amethystium-Barefoot.mp3
                  #EXTINF:262,Amethystium - Break of Dawn
                  E:\music\Amethystium\Evermind\Amethystium-Break_of_Dawn.mp3
                  
                  
                  1 Reply Last reply
                  0
                  • I Offline
                    I Offline
                    instalator
                    wrote on last edited by
                    #22

                    @vtec:

                    У меня локально вот такой плей лист открыл

                    #EXTM3U
                    #EXTINF:306,Amethystium - Arcus
                    E:\music\Amethystium\Evermind\Amethystium-Arcus.mp3
                    #EXTINF:254,Amethystium - Barefoot
                    E:\music\Amethystium\Evermind\Amethystium-Barefoot.mp3
                    #EXTINF:262,Amethystium - Break of Dawn
                    E:\music\Amethystium\Evermind\Amethystium-Break_of_Dawn.mp3
                    
                    ```` `  
                    

                    Открыть то открыл, а треки показывает? имя берет из плейлиста или из имени файла?

                    Высокий уровень Децибел вреден для здоровья!

                    http://blog.instalator.ru/

                    1 Reply Last reply
                    0
                    • V Offline
                      V Offline
                      vtec
                      wrote on last edited by
                      #23

                      А вот так он показывает только Avtoradio

                      #EXTM3U
                      #EXTINF:306,Amethystium - Arcus
                      http://cast.radiogroup.com.ua:8000/avtoradio
                      #EXTINF:254,Amethystium - Barefoot
                      http://cast.radiogroup.com.ua:8000/avtoradio
                      #EXTINF:262,Amethystium - Break of Dawn
                      http://cast.radiogroup.com.ua:8000/avtoradio
                      

                      Может он еще ID tag читает из mp3 файла

                      1 Reply Last reply
                      0
                      • V Offline
                        V Offline
                        vtec
                        wrote on last edited by
                        #24

                        В общем если есть ID tag в mp3 файле то он читает его.

                        Если там поля не заполнены, то отображает имя файла, что у тебя и происходит.

                        1 Reply Last reply
                        0
                        • I Offline
                          I Offline
                          instalator
                          wrote on last edited by
                          #25

                          Криво работает skipprevious и previous? во первых для разных player разные команды, во вторых не переключает на предыдущий трек а включает текущий сначала, надо тоже покурить)
                          2858_w3.txt
                          2858_w5.txt

                          Высокий уровень Децибел вреден для здоровья!

                          http://blog.instalator.ru/

                          1 Reply Last reply
                          0
                          • V Offline
                            V Offline
                            vtec
                            wrote on last edited by
                            #26

                            Вот так в списке отображает названия, но на главной все равно не хочет. Расширение .PLS

                            UPD: То же самое что и m3u, короче если из потока коди может выдернуть meta info то отображает исполнителя иначе имя файла. Другого не дано.

                            [playlist]
                            Title1=Here enter name of the station
                            File1=http://stream.radiosibir.ru:8090/HQ
                            Length1=-1
                            
                            File2=G:\Music\DJ Bazil--Live at Fakel (26.08.2006).mp3
                            Title2=absolute path on Windows
                            
                            NumberOfEntries=2
                            Version=2
                            
                            1 Reply Last reply
                            0
                            • V Offline
                              V Offline
                              vtec
                              wrote on last edited by
                              #27

                              Проиграть видео с Youtube

                              {"jsonrpc": "2.0", "method": "Player.Open", "params":{"item": {"file" : "plugin://plugin.video.youtube/?action=play_video&videoid=LDZX4ooRsWs" }}, "id" : "1"}
                              
                              1 Reply Last reply
                              0
                              • I Offline
                                I Offline
                                instalator
                                wrote on last edited by
                                #28

                                @vtec:

                                Вот так в списке отображает названия, но на главной все равно не хочет. Расширение .PLS

                                UPD: То же самое что и m3u, короче если из потока коди может выдернуть meta info то отображает исполнителя иначе имя файла. Другого не дано.

                                [playlist]
                                Title1=Here enter name of the station
                                File1=http://stream.radiosibir.ru:8090/HQ
                                Length1=-1
                                
                                File2=G:\Music\DJ Bazil--Live at Fakel (26.08.2006).mp3
                                Title2=absolute path on Windows
                                
                                NumberOfEntries=2
                                Version=2
                                ```` `  
                                

                                Подправил, в списке отображает. Теперь как бы активировать текущий плейлист
                                3443_lacrosse-ws.png

                                Высокий уровень Децибел вреден для здоровья!

                                http://blog.instalator.ru/

                                1 Reply Last reply
                                0
                                • I Offline
                                  I Offline
                                  instalator
                                  wrote on last edited by
                                  #29

                                  Мой вариант скрипта из первого поста (на данный момент ;) )

                                  on({id: 'javascript.0.kodi.ExecuteAction', change: 'any'}, function (obj) {
                                      if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
                                          if (obj.newState.val == 'next' || obj.newState.val == 'previous'){sendCommandPlayer(obj.newState.val);}
                                          else {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 (error, response, body) {
                                          log('Ответ от Kodi: '+JSON.stringify(body));
                                      });
                                  }
                                  ///////////////////////////////////////////////////////////////////////////////////////
                                  function sendCommandPlayer(name){
                                      log('Отправлена команда Kodi: '+name);
                                      var options = {
                                          url: url+'/jsonrpc', //{"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1}
                                          json: true,
                                          body: {
                                              "jsonrpc":"2.0",
                                              "method": "Player.GetActivePlayers",
                                              "id":1
                                          },
                                      };
                                      // Отправка данных методом POST.
                                      request.post(options, function (error, response, body) {
                                                  log('ТЕЛО - '+body);
                                                  log('Ответ от Kodi: '+JSON.stringify(body));
                                                 // log('Запущен плеер - '+body.result[0].type); //{"id":1,"jsonrpc":"2.0","result":[{"playerid":0,"type":"audio"}]}
                                                  Activ_Player = body.result[0].playerid;
                                                  Type_Player = body.result[0].type;
                                                  if (Activ_Player == '1' && Type_Player == 'video'){
                                                          setState('javascript.0.kodi.ExecuteAction', 'fullscreen');
                                                  }
                                              var options = {
                                                  url: url+'/jsonrpc',
                                                  json: true,
                                                  body: {
                                                      "jsonrpc":"2.0",
                                                      "method": "Player.GoTo",
                                                      "params": { "playerid":Activ_Player,"to":name},
                                                      "id":1
                                                  },
                                              };
                                              // Отправка данных методом POST.
                                              setTimeout(function() {
                                                  request.post(options, function (error, response, body) {
                                                  log('Ответ от Kodi: '+JSON.stringify(body));
                                                  });}, 500);
                                      });
                                  }
                                  
                                  

                                  Если включен IPTV плеер возвращает - 1 и тип видео, если IPTV включен не на полный экран то переключение не работает, в коде сделал проверку если плеер = 1 и тип = видео - Включаем сначала на полный экран, потом уже next.

                                  ****ДОБАВЛЕНО:

                                  Для переключения каналов оказывается есть channelup для метода Input.ExecuteAction****

                                  Высокий уровень Децибел вреден для здоровья!

                                  http://blog.instalator.ru/

                                  1 Reply Last reply
                                  0
                                  • I Offline
                                    I Offline
                                    instalator
                                    wrote on last edited by
                                    #30

                                    Еще одна непонятка:

                                    {"jsonrpc":"2.0","id":1,"method":"Playlist.GetItems","params":{"playlistid":0,"properties":["title"]}}]

                                    Для плейлиста - 0 (музыка) Данные отдает нормально.

                                    {"jsonrpc":"2.0","id":1,"method":"Playlist.GetItems","params":{"playlistid":1,"properties":["title"]}}]

                                    При включенном IPTV отдает:

                                    {"id":1,"jsonrpc":"2.0","result":{"limits":{"end":0,"start":0,"total":0}}}

                                    Как бы получить список каналов из плелиста.

                                    Высокий уровень Децибел вреден для здоровья!

                                    http://blog.instalator.ru/

                                    1 Reply Last reply
                                    0
                                    • I Offline
                                      I Offline
                                      instalator
                                      wrote on last edited by
                                      #31

                                      В этом посте буду выкладывать JSON запросы:

                                      - Получаем инфо о текущем канале PVR(На видео пока не проверял)

                                      {jsonrpc:2.0,id:3,method:Player.GetItem,params:{playerid:1,properties:[album,albumartist,artist,director,episode,fanart,file,genre,plot,rating,season,showtitle,studio,imdbnumber,tagline,thumbnail,title,track,writer,year,streamdetails,originaltitle,cast,playcount]}}

                                      - Получаем инфо о воспроизводимом файле

                                      {"jsonrpc":"2.0","id":2,"method":"Player.GetProperties","params":{"playerid":1,"properties":["audiostreams","canseek","currentaudiostream","currentsubtitle","partymode","playlistid","position","repeat","shuffled","speed","subtitleenabled","subtitles","time","totaltime","type"]}}

                                      - узнаем уровень громкости

                                      {"jsonrpc":"2.0","id":1,"method":"Application.GetProperties","params":{"properties":["volume","muted"]}}

                                      - Получить список видеофайлов из библиотеки

                                      {"jsonrpc":"2.0","id":1,"method":"VideoLibrary.GetMovieSets","params":{"properties":["thumbnail","title","fanart","playcount"],"limits":{"start":0,"end":500}}}

                                      - Получить полную инфу из видеобиблиотеки

                                      {"jsonrpc":"2.0","id":1,"method":"VideoLibrary.GetMovies","params":{"properties":["director","genre","plot","rating","runtime","sorttitle","studio","title","trailer","playcount","originaltitle","tagline","imdbnumber","year","set","setid","dateadded","top250","file","thumbnail","resume","streamdetails","country","tag","mpaa","fanart","cast","votes","writer"],"limits":{"start":0,"end":500}}}

                                      - Получить список каналов IPTV

                                      {"jsonrpc":"2.0","id":1,"method":"PVR.GetChannels","params":{"channelgroupid":"alltv","properties":["channel","channeltype","hidden","lastplayed","locked","thumbnail","broadcastnow"]}}

                                      - Получить список радиоканалов IPTV

                                      {"jsonrpc":"2.0","id":1,"method":"PVR.GetChannels","params":{"channelgroupid":"allradio","properties":["channel","channeltype","hidden","lastplayed","locked","thumbnail","broadcastnow"]}}

                                      - Инфа о текущем воспроизведении

                                      {"jsonrpc":"2.0","id":2,"method":"Player.GetProperties","params":{"playerid":0,"properties":["audiostreams","canseek","currentaudiostream","currentsubtitle","partymode","playlistid","position","repeat","shuffled","speed","subtitleenabled","subtitles","time","totaltime","type"]}}

                                      - Получить текущий плейлист АУДИО

                                      {"jsonrpc":"2.0","id":1,"method":"Playlist.GetItems","params":{"playlistid":0,"properties":["title","thumbnail","fanart","rating","genre","artist","track","season","episode","year","duration","album","showtitle","playcount","file"],"limits":{"start":0,"end":750}}}

                                      - воспроизведение в случайном порядке

                                      {"jsonrpc":"2.0","id":1,"method":"Player.SetShuffle","params":{"playerid":0,"shuffle":true}}

                                      - повтор воспроизведения

                                      {"jsonrpc":"2.0","id":1,"method":"Player.SetRepeat","params":{"playerid":0,"repeat":"all"}}

                                      {"jsonrpc":"2.0","id":1,"method":"Player.SetRepeat","params":{"playerid":0,"repeat":"off"}}

                                      {"jsonrpc":"2.0","id":1,"method":"Player.SetRepeat","params":{"playerid":0,"repeat":"one"}}

                                      - рейтинг

                                      {"jsonrpc":"2.0","id":1,"method":"AudioLibrary.SetSongDetails","params":{"songid":-1,"rating":5}}

                                      - PLAY\PAUSE

                                      {"jsonrpc":"2.0","id":1,"method":"Player.PlayPause","params":{"playerid":0}}

                                      Гибернация (Проверял на винде)

                                      {"jsonrpc":"2.0","id":1,"method":"System.Hibernate"}

                                      Высокий уровень Децибел вреден для здоровья!

                                      http://blog.instalator.ru/

                                      1 Reply Last reply
                                      0
                                      • I Offline
                                        I Offline
                                        instalator
                                        wrote on last edited by
                                        #32

                                        Набросал маленький скриптик для отображения сообщений на экране телевизора.

                                        createState('kodi.Message', '');
                                        var url = 'http://192.168.1.205';
                                        var request = require('request');
                                        on({id: 'javascript.0.kodi.Message', change: 'any'}, function (obj) { //В формате Заголовок#Сообщение
                                            if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
                                                sendMessage(obj.newState.val);
                                            }else{
                                                log('Не задана команда.');
                                            }
                                        });
                                        // Функция отправки сообщения(kodi)
                                        function sendMessage(msg){
                                            var title = msg.match(/(.*)\#/g).toString().replace(/[#]+/g, '');
                                            var message = msg.match(/#(.*)/g).toString().replace(/[#]+/g, '');
                                            log('Отправлена сообщение Kodi: '+title+' - '+message);
                                            var options = {
                                                url: url+'/jsonrpc',
                                                json: true,
                                                body: {
                                                    "jsonrpc":"2.0",
                                                    "method": "GUI.ShowNotification",
                                                    "params": {"title":title,"message":message},
                                                    "id":1
                                                },
                                            };
                                            // Отправка данных методом POST.
                                            request.post(options, function (error, response, body) {
                                                if (!error && response.statusCode == 200) {
                                                log('Ответ от Kodi: '+JSON.stringify(body));
                                                }
                                            });
                                        }
                                        
                                        

                                        И код для отправки сообщения из скриптов:

                                        setState('javascript.0.kodi.Message', 'Внимание#Походу отключили горячую воду');
                                        

                                        Вообще запрос поддерживает еще и вывод изображения. (Поддерживает локальные и удаленные) + есть уровень важности "image": "info", "warning", "error". При уровне warning Kodi будет издавать сигнал при появлении сообщения.

                                        Так же можно задать задержку (время отображения) сообщения.

                                        Сам запрос имеет вид:

                                        {“jsonrpc":"2.0″,"method":"GUI.ShowNotification","params":{“title":"Sample Title","message":"Sample Message","image":"","displaytime":5000},"id":1}
                                        

                                        Высокий уровень Децибел вреден для здоровья!

                                        http://blog.instalator.ru/

                                        1 Reply Last reply
                                        0
                                        • aurodionovA Offline
                                          aurodionovA Offline
                                          aurodionov
                                          wrote on last edited by
                                          #33

                                          Оставлю тут, мож кому пригодится

                                          https://github.com/tillbaks/node-xbmc

                                          Пишу с пульта….

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          250

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe