Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.6k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
34 Beiträge 3 Kommentatoren 10.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • V Offline
    V Offline
    vtec
    schrieb am zuletzt editiert von
    #12

    @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 Antwort Letzte Antwort
    0
    • I Offline
      I Offline
      instalator
      schrieb am zuletzt editiert von
      #13

      @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. Или как то можно изменить?

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

      http://blog.instalator.ru/

      1 Antwort Letzte Antwort
      0
      • V Offline
        V Offline
        vtec
        schrieb am zuletzt editiert von
        #14

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

        1 Antwort Letzte Antwort
        0
        • V Offline
          V Offline
          vtec
          schrieb am zuletzt editiert von
          #15

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

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

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

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

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            instalator
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • V Offline
              V Offline
              vtec
              schrieb am zuletzt editiert von
              #17

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

               {"jsonrpc": "2.0", "method": "GUI.ShowNotification", "params":{"title":"Switch to Channel 1","message":"1 Live TV Channel"},"id": "0"}
              
              
              1 Antwort Letzte Antwort
              0
              • I Offline
                I Offline
                instalator
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • V Offline
                  V Offline
                  vtec
                  schrieb am zuletzt editiert von
                  #19

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

                  1 Antwort Letzte Antwort
                  0
                  • I Offline
                    I Offline
                    instalator
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • V Offline
                      V Offline
                      vtec
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • I Offline
                        I Offline
                        instalator
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • V Offline
                          V Offline
                          vtec
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • V Offline
                            V Offline
                            vtec
                            schrieb am zuletzt editiert von
                            #24

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

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

                            1 Antwort Letzte Antwort
                            0
                            • I Offline
                              I Offline
                              instalator
                              schrieb am zuletzt editiert von
                              #25

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

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

                              http://blog.instalator.ru/

                              1 Antwort Letzte Antwort
                              0
                              • V Offline
                                V Offline
                                vtec
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • V Offline
                                  V Offline
                                  vtec
                                  schrieb am zuletzt editiert von
                                  #27

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

                                  {"jsonrpc": "2.0", "method": "Player.Open", "params":{"item": {"file" : "plugin://plugin.video.youtube/?action=play_video&videoid=LDZX4ooRsWs" }}, "id" : "1"}
                                  
                                  1 Antwort Letzte Antwort
                                  0
                                  • I Offline
                                    I Offline
                                    instalator
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • I Offline
                                      I Offline
                                      instalator
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      0
                                      • I Offline
                                        I Offline
                                        instalator
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        0
                                        • I Offline
                                          I Offline
                                          instalator
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          586

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe