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
    #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

                      484

                      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