Aller au contenu
Lazer

Quick App - KODI + Addon

Recommended Posts

QuickApp + Addon pour KODI

Version 2.12

 

large.Screenshot-QuickApp-Kodi-Device.png.b00078ccfc521673d4ae125392978bc6.png

 

1. QuickApp

 

1.1. Présentation

 

Ce QuickApp permet de piloter le lecteur multimédia KODI depuis la box Fibaro Home Center 3.

Les fonctionnalités suivantes sont disponibles :

  • PowerON / PowerOFF
  • Lecture, Pause, Stop
  • Précédent, Suivant
  • Baisser ou monter le volume d'un cran
  • Silencieux
  • Slider de réglage du volume
  • Ouverture et lecture d'un média spécifié
  • Notification texte en surimpression
  • Affichage de caméra en surimpression
  • Réglage de la synchronisation du décalage audio/vidéo
  • Réglage du décalage vers le haut ou le bas de l'image pour les films avec bandes noires
    (concernant ces 2 dernières fonctionnalités, je ne les utilise pas en direct depuis le QuickApp, mais au travers d'un raccourci sur ma télécommande)

Un retour d'état est rafraichit à intervalle régulier (paramétrable), indiquant les informations suivantes :

  • Statut de l'alimentation
  • Statut du lecteur (playing, paused, stopped)
  • Type de média lu (video, music, etc...)
  • Titre du média en cours de lecture
  • Timing de lecture et durée totale du média
  • Niveau du volume via le slider

 

large.Screenshot-QuickApp-Kodi.png.4b72920fd2495d02ff94b5ccc5b6dd54.png

 

A noter que ce module est de type Lecteur "com.fibaro.player".

Il n'y a pas d'utilisation de modules enfants.

 

 

1.2. Pré-requis

 

Dans les paramètres de Kodi, il faut Autoriser le contrôle à distance via HTTP, et spécifier le Port, le Nom d'utilisateur, et le Mot de passe :

 

large.Screenshot-Kodi-Config-Control.png.0966e4711ecb18506f4a3d5dff9b64e7.png

 

 

 

1.3. Installation

 

Importer le QuickApp (fichier fqa) de façon habituelle sur la box HC3, puis changer les paramètres suivants dans l'onglet Variables :

 

large.Screenshot-QuickApp-Kodi-Variables2.png.6be8787ff72bde1d11f708b8ab320952.png

 

  • Protocol : protocole à utiliser, normalement : http
  • Address : adresse IP de Kodi, par exemple : 192.168.1.1
  • Port : port de communication TCP, par exemple : 8080
  • User : utilisateur DSM préalablement configuré, par exemple : kodi
  • Password : mot de passe du compte
  • WebSocket_Port : port pour les communication WebSockets, par exemple : 9090
  • RefreshON : intervalle de rafraichissement des informations en secondes quand Kodi est allumé, par exemple : 3
  • RefreshOFF : intervalle de rafraichissement des informations en secondes quand Kodi est éteint, par exemple : 60
  • PowerON_Method : l'une des méthodes suivantes pour démarrer Kodi, à personnaliser en fonction de votre installation, les méthodes proposées permettent un large éventail de possibilités :
    • MacAddress = 00:00:00:00:00:00 => adresse MAC de Kodi, afin de le réveiller grâce au paquet magique Wake-On-LAN
    • Device = 123 => allume (turnOn) un device spécifié par son ID (par exemple un switch FGS ou un module universel FGBS)
    • Device = Module => allume (turnOn) un device spécifié par son Nom (par exemple un switch FGS ou un module universel FGBS)
    • QuickApp = 123, Method => Appelle la fonction "Method" du QuickApp spécifié par son ID
    • QuickApp = Module, Method => Appelle la fonction "Method" du QuickApp spécifié par son Nom
  • Icon_Normal : ID de l'icône normale
  • Icon_ON : ID de l'icône ON
  • Icon_OFF : ID de l'icône OFF
  • Icon_Play : ID de l'icône en cours de lecture
  • Icon_Pause : ID de l'icône en pause
  • Icon_Stop : ID de l'icône arrêtée

 

Note : l'intervalle de rafraichissement variable permet de conserver une bonne réactivité de mise à jour lorsque Kodi est en fonctionnement, sans pour autant surcharger inutilement de requête réseau le reste du temps.

 

 

1.4. Utilisation

 

  • Depuis l'interface Web ou l'application mobile :
    • Un clic sur les boutons permet de piloter Kodi
    • Glisser le slider permet de régler le volume sonore
  • Dans le code LUA d'un QuickApp ou d'une Scène, utiliser la fonction fibaro.call() avec l'une des syntaxes suivantes :
    • fibaro.call(123, "turnOn")                                    -- Power ON
    • fibaro.call(123, "turnOff")                                   -- Power OFF
    • fibaro.call(123, "play")                                      -- Lecture
    • fibaro.call(123, "pause")                                     -- Pause
    • fibaro.call(123, "stop")                                      -- Stop
    • fibaro.call(123, "prev")                                      -- Précédent
    • fibaro.call(123, "next")                                      -- Suivant
    • fibaro.call(123, "setVolume", 100)                            -- Règle le volume audio au niveau spécifié (0 à 100)
    • fibaro.call(123, "setVolume", "decrement")                    -- Diminue le volume audio d'un pourcent
    • fibaro.call(123, "setVolume", "increment")                    -- Augmente le volume audio d'un pourcent
    • fibaro.call(123, "setMute")                                   -- Bascule le mode silencieux
    • fibaro.call(123, "setMute", true)                             -- Audio en sourdine
    • fibaro.call(123, "setMute", false)                            -- Audio normal
    • fibaro.call(123, "open", "smb://SERVER/Share/Path/Movie.mkv") -- Ouvre et lance la lecture du media spécifié par le nom de fichier complet avec le chemin
    • fibaro.call(123, "notification", "title", "message")          -- Affiche un popup de notification à l'écran
    • fibaro.call(123, "camera", 1)                                 -- Affiche l'image vidéo de la caméra n°1 à l'écran (nécessite l'Addon pour Kodi)
    • fibaro.call(123, "camera", 1, 10, 1000)                       -- Affiche l'image vidéo de la caméra n°1 à l'écran pour une durée de 10 secondes avec un intervalle de rafraichissement de 1000 ms soit 1 seconde (nécessite l'Addon pour Kodi)
    • fibaro.call(123, "audioDelay", "audiodelayminus")             -- Diminue le décalage audio
    • fibaro.call(123, "audioDelay", "audiodelayplus")              -- Augmente le décalage audio
    • fibaro.call(123, "verticalShift", "verticalshiftup")          -- Décale l'image vers le haut (si présence de barres noires)
    • fibaro.call(123, "verticalShift", "verticalshiftdown")        -- Décale l'image vers le bas (si présence de barres noires)

  • Les propriétés suivantes peuvent être lues dans le JSON du module :
    • power  : boolean : true|false                      -- Statut d'alimentation de Kodi

    • state  : string  : ""|"stopped"|"playing"|"paused" -- Statut du lecteur Kodi

    • volume : integer : 0-100                           -- Volume audio

    • mute   : boolean : true|false                      -- Silencieux audio

       

 

1.5. Icônes

  • large_kodi.png.554b3709db51f326ad00175b292a1ba3.png Normal
  • large.kodi-on.png.dc718f406d601b63017143f80654a12d.png ON
  • large.kodi-off.png.f6c1f6c31f1b6a5b5e27c208e23ae5a4.png OFF
  • large.kodi-play.png.ac8078c877f331b41411d0efd8235fdd.png Play
  • large.kodi-pause.png.795f1f4c58fcf2bf298b5c0e54b3efd7.png Pause
  • large.kodi-stop.png.b5348bf6e9ffc3790bff4f618ce63f19.png Stop

 

 

2. Addon pour Kodi

 

2.1. Présentation

Cet Addon est une extension de type programme qui s'installe dans Kodi et permet une communication bidirectionnelle entre le QuickApp et Kodi.

 

large.Screenshot-Kodi-Addon-Icon.png.d4ff808375536e2aaacfcdee511e11ed.png

 

Il a été initialement développé par @ADN182 :

Je me suis contenté de l'adapter au fonctionnement de la HC3 (QuickApp).

Je me permet de copier/coller une partie de son tuto pour une meilleure compréhension ici-même.

 

 

2.2. Installation

 

Pour l'installer, importer le fichier ZIP dans Kodi, puis aller dans les paramètres de l'extension pour configurer les paramètres (en rouge ceux qui sont requis, en vert veux que vous ne devriez pas toucher en temps normal)

  • Adresse IP de la HC3
  • Port (par défaut 80)
  • Nom d’utilisateur HC3 (il est fortement suggérer de créer un utilisateur dédié dans le panneau d'accès de la HC3 avec les droits nécessaire aux modules à piloter depuis Kodi.... à minima le QuickApp importé précédemment)
  • Mot de passe HC3
  • Nom du Quickapp sur la HC3 (celui qui a importé précédemment sur la HC3)
  • Nom d'une Scène
  • Nom de l'Instance (permet d’identifier le MediaCenter dans la HC3. Si vous en avez plusieurs mettre un nom différents pour chaque MediaCenter, exemple : KODI_Salon et KODI_Chambre)
  • Temps d'affichage de la caméra (délai pendant lequel la caméra reste affiché, défaut : 14 secondes)
  • Fréquence de rafraîchissement (délai entre chaque récupération d'image de la caméra, défaut : 500 millisecondes) 
  • Temps d'attente entre chaque mise à jour de déclenchement de scène (défaut : 10 millisecondes)
  • Temps d'attente pour la récupération des informations Audio/Videos (défaut : 50 millisecondes)
  • Timeout des requêtes HTTP (défaut : 5 secondes) 

Note : la scène et l'instance sont conservées pour des raisons de rétrocompatibilité et d'accompagnement dans la migration des utilisateurs de la HC2 vers la HC3, mais elles n'ont plus réellement lieu d'être utilisées, le QuickApp permettant de remplacer tout cela.

 

large.Screenshot-Kodi-Addon-Parameters-1.png.cbdc24f87950d9bafc95cc665debecf9.png

 

Ensuite sélectionner les événements que vous désirez activer (Accès au Menu Home, Play Video, Pause Audio...).

S’ils ne sont pas activés ils ne remonteront pas dans la HC3.

Exemple : Si on laisse « Accès au Menu Home » à  "No" alors la HC3 ne sera pas capable de déclencher une action lorsque vous serez sur la page d’accueil de votre média-center préféré.

 

large.Screenshot-Kodi-Addon-Parameters-2.png.e28960a056b734c4571090c7976fd4e7.png

 

large.Screenshot-Kodi-Addon-Parameters-3.png.9eca13a53ed86da74a28adbcb585ac09.png

 

Les caméras détectées après redémarrage de l'Addon s'afficheront dans l'écran suivant.

L'ID de chaque caméra est celui qui doit être utilisé lorsqu'on désire afficher une caméra depuis un script LUA à l'aide de la commande fibaro.call(123, "camera", 1) documentée précédemment.

 

large.Screenshot-Kodi-Addon-Parameters-4.png.bd0f7f00f0519944716820fd54ac9224.png

 

 

2.3. Utilisation

 

Chaque événement de Kodi (changement de menu, événement de lecteur, etc) qui a été coché dans la configuration de l'addon remonte instantanément dans le QuickApp, permettant une mise à jour en temps réel (fonctionnement en mode push)

 

De plus, il est possible de personnaliser les actions associées à chaque événement.

Pour cela il faut modifier le fichier custom du QuickApp.

Chaque nom de fonction est parlant, il suffit d'insérer les instructions LUA désirées pour personnaliser son installation (gestion des lumières, volets, etc) :

 

large.Screenshot-QuickApp-Kodi-Custom.png.f7547f26fd8e749b8c8e784443a6698c.png 

 

 

2.4. Menu

 

Un menu peut être affiché à l'écran, permettant de piloter directement tous les modules de la HC3 dont on a donné accès à l'utiliateur Kodi :

 

large.Screenshot-Kodi-Menu.png.a8516cf81d02bf8ec60aeee82423fe97.png

 

Pour afficher ce menu, il faut exécuter l'Addon en cliquant sur son icône (Extension de type Programme) ou bien en appuyant sur une touche, pour ce faire il faut ajouter un fichier "keyboard.xml" dans le dossier utilisateur (userdata) de Kodi.

Emplacement sur Windows : C:\Users\<USER>\AppData\Roaming\Kodi\userdata\keymaps\keyboard.xml

Documentation de référence : http://kodi.wiki/view/Keymaps

 

Pour la Nvidia Shield TV voici le lien afin de pouvoir utiliser les boutons rouge, bleu... : https://forum.xda-developers.com/shield-tv/general/shield-harmony-hub-keyboard-characters-t3722002

 

Exemple de fichier keyboard.xml permettant d'afficher le menu à l'aide de la combinaison de touches  « Ctrl+Y » :

<keymap>
    <global>
        <keyboard>
            <y mod="ctrl">SetProperty(FibaroMenu,true,10000)</y> <!--CTRL + Y pour afficher le Menu -->
			<menu mod="longpress">SetProperty(FibaroMenu,true,10000)</menu> <!-- Appuie long sur la touche Menu -->
        	<X>RunScript("HC2.addon", "fonction=ActiveCamera", "name=macamera")</X> <!-- Permet d'afficher la camera "macamera" à l'aide de la touche X -->
        </keyboard>
		<remote>
			<red>SetProperty(FibaroMenu,true,10000)</red>  <!--Touche rouge de la télécomande multimédia pour afficher le Menu -->
			<blue>SetProperty(FibaroMenu,true,10000)</blue>
		</remote>
    </global>
	<fullscreenvideo>
        <keyboard>
			<menu mod="longpress">SetProperty(FibaroMenu,true,10000)</menu>
        	<X>RunScript("HC2.addon", "fonction=ActiveCamera", "name=macamera")</X> <!-- Permet d'afficher la camera "macamera" à l'aide de la touche X --> 
        </keyboard>
	</fullscreenvideo>
</keymap>

Note : redémarrer Kodi une fois celui-ci mis en place

 

 

 

3. Changelog

 

  • v2.0 :
    • Initial public release
  • v2.12 :
    • Gestion des icônes
    • Utilisation des WebSockets pour la communication avec Kodi (meilleure réactivité des événements, particulièrement si l'addon n'est pas utilisé)
    • Gestion de plusieurs langues (français/anglais)
    • Améliorations diverses

 

 

4. Téléchargements

 

 

 

 

Modifié par Lazer
  • Like 2
  • Thanks 2

Partager ce message


Lien à poster
Partager sur d’autres sites

hi

got the addon working in kodi

got the quickapp to work in hc3

however the commands are not being given to hc3?

when i start video it doesnt action anything.

everything else seems to be working fine as planned

any thoughts?

log attached from kodi

kodi.log

Partager ce message


Lien à poster
Partager sur d’autres sites

Sorry but I can't open your log file, it seems empty.

 

Could you describe what you mean by "when i start video it doesnt action anything.". What action and/or lua commands are you performing ?

Partager ce message


Lien à poster
Partager sur d’autres sites

I wrote a command to turn off lights and start strip lights. It didn't do on video start.

I wrote a debug message and that wasn't displayed either.

when I press play I see in the debug code, playing andalso movie name, or when stopped I see the word stopped.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

OK

Did you modified the "custom" file ?
 

Example to just display a debug message when the video starts playing :

 

image.thumb.png.44d24cae94bf06d7b4397be38834628f.png

 

 

Then I can clearly see the debug message as a result of my custom LUA command :

 

image.png.a7dfa5e388f01903be2d50c32c8222f8.png

 

 

 

And don't forget to enable push events in Kodi addon, as explained in the above tutorial (sorry, French language screenshot)

 

image.thumb.png.f4ba76defcad37c9c0d55e317f5a98d4.png

Partager ce message


Lien à poster
Partager sur d’autres sites

That's strange, I still can't open the text file.... :(

 

Maybe you should try to share an image screenshot of your log window.

 

Furthermore, you can also add a "debug" variable to your Kodi QuickApp, with the "true" value, which will display much more information in the debug window.

 

By the way, it's time to sleep for me now, I'll have a look at it tomorrow.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hi

I have narrowed the issue down. The Pause, Resume, Stop commands are going through to the QuickApp but not the STARTED commands.

I am also running OpenElec version of kodi (the standalone version on a pc) version is 16.1

I did update the xbmc.python before i could install the Kodi addon.

Everything else is working!

Thanks for your help!

 

146771858_2020-10-0710_03_59.thumb.jpg.7f0413b35937fa695b5b747a776de197.jpg1157293434_2020-10-0710_04_13.thumb.jpg.9145400d9ef21a57ac678c8a95f0371e.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

OK, so it seems that your old version of Kodi is the reason why the Startup event does not run.

I use new API functions, which are only available starting with Kodi v17.

I knew that, and I forgot to mention it in the above tutorial.... so to be clear, Kodi v17 Krypton or Kodi v18 Leia is required to fully use the add-on.

 

And I think that the add-on will not work in the upcoming v19 release, because it makes suse of Python v3 which is not backward compatible... more to come

Partager ce message


Lien à poster
Partager sur d’autres sites

yes thanks

i have ran the krypton upgrade files but i didnt work. its a similar issue which affected the HC2 addon. however i can work around it.

Thanks for your help.

Im going to stick with this version of kodi for now and just press 'pause' after 'playing' and use the 'resume' feature to get the initial lights working..

cheers for your help mate

Partager ce message


Lien à poster
Partager sur d’autres sites

OK, but we can still try to understand the problem.

You can activate the following option in the add-on : "DEBUG: (Log commands to kodi.log file)"

Then restart Kodi, then start playing a new movie, then look for the kodi.log file in your instance and give me the result, we might found some useful information.

Partager ce message


Lien à poster
Partager sur d’autres sites

Hi,

thank you for the addon,

if there is a chance to write a version for KODI 19? with python 3?
 
regards

Partager ce message


Lien à poster
Partager sur d’autres sites

Yes, I will do it... but later, I don't have time right now. Maybe in May, or even June.

The next version will also make use of the WebSockets capabilities now available on HC3.

 

For now, I have disabled automatic updates, so I can still use Kodi 18 a little bit longer. By the way, it gives time to the developer team to resolve the bugs of this first major release.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Sorry, I still don't have time (or other priorities...)

 

One day, for sure, but I can't give any delay.

Partager ce message


Lien à poster
Partager sur d’autres sites

Mise en ligne du QuickApp Kodi version 2.12 :

  • Gestion des icônes => il faudra importer les icônes puis ajouter les 6 variables correspondantes pour définir leurs ID.
  • Utilisation des WebSockets pour la communication avec Kodi (meilleure réactivité des événements, particulièrement si l'addon n'est pas utilisé)
  • Gestion de plusieurs langues (français/anglais)
  • Améliorations diverses 

  

Pour la mise à jour, pensez à créer les nouvelles variables suivantes :

  • WebSocket_Port : port pour les communication WebSockets, par exemple : 9090
  • Icon_Normal : ID de l'icône normale

  • Icon_ON : ID de l'icône ON

  • Icon_OFF : ID de l'icône OFF

  • Icon_Play : ID de l'icône en cours de lecture

  • Icon_Pause : ID de l'icône en pause

  • Icon_Stop : ID de l'icône arrêtée

Puis copier/coller le contenu des fichiers LUA par dessus l'existant :

 

Note : je n'ai pas encore travaillé sur la nouvelle version de l'addon, donc il n'est pour l'instant toujours pas compatible avec Python v3 (Kodi 19 et supérieur)

Cependant, l'utilisation des WebSockets permet de compenser une partie des fonctionnalités de l'addon, à savoir la mise à jour instantanée du QuickApp lors des événements du lecteur Kodi.

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 

salut, j'essaie d'ajouter le bouton quitter mais cela ne fonctionne pas tout à fait. Pouvez-vous m'aider et m'améliorer si nécessaire. merci d'avance.
bouton créé.

main:

function QuickApp:buttonQuit_onReleased(event)
    if debug then
        self:debug("QuickApp:buttonQuit_onReleased() - deviceId :", event.deviceId, "- Element name :", event.elementName, "- Event :", event.eventType)
    end
    self:quit()

 

--
-- Quit
--
function QuickApp:quit()
    if debug then
        self:debug("QuickApp:quit()")
    end
    self:playerAction("Quit", false, "Quiting Player", KODI.ApplicationQuit)
end

 

KODI:

--
-- Quit player
--
function KODI:ApplicationQuit(callback)
    if debug then
        self:debug(tools:args("KODI:ApplicationQuit", callback))
    end
    -- {"jsonrpc":"2.0","method":"Application.Quit","params":{},"id":"1"}
    local payload = {jsonrpc="2.0", method="Application.Quit", id={"ApplicationQuit"}}
    self:postAPI("/jsonrpc", payload, function(result) return type(result) == "string" and result == "OK" and true or false end, callback)
end

 

Je reçois Quit failed

 

pouvez-vous m'aider en cas de besoin. je vous remercie d'avance

 

cela peut-il aussi être fait avec des sous-titres
Modifié par Kage

Partager ce message


Lien à poster
Partager sur d’autres sites

The Quit button is now in. But the Kodi has a new version Kodi 20 it got stuck on python 2.25 have you manage to create i new version of the addon. regards Kage

Partager ce message


Lien à poster
Partager sur d’autres sites

Sorry I did not work on a new plugin addon version compatible with Python 3.

 

Honestly I don't even know if I will have enough time one day... this is very low priority for me.

Partager ce message


Lien à poster
Partager sur d’autres sites

×