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.8k

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

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

Управление 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.
  • 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
                              • I Offline
                                I Offline
                                instalator
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • aurodionovA Offline
                                  aurodionovA Offline
                                  aurodionov
                                  schrieb am zuletzt editiert von
                                  #33

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

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

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

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

                                    @aurodionov:

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

                                    https://github.com/tillbaks/node-xbmc `
                                    Это что то старое.

                                    Я форкнул https://github.com/instalator/kodi-ws

                                    Все хочу сесть за драйвер, но даже не знаю стоит ли начинать, опыта мало.

                                    Хотя можно активизировать тему в плане хотелок по kodi драйверу чтобы определится с функционалом драйвера.

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

                                    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

                                    491

                                    Online

                                    32.4k

                                    Benutzer

                                    81.5k

                                    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