Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    7
    1
    268

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    249

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

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

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
34 Beiträge 3 Kommentatoren 11.1k 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
    #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
                                    • 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

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          628

                                          Online

                                          32.8k

                                          Benutzer

                                          82.8k

                                          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