QuickApp + Addon pour KODI
Version 2.12
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
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 :
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 :
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
Normal
ON
OFF
Play
Pause
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.
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.
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é.
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.
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) :
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 :
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
Nouvelle installation :
Kodi_v2.12.fqa
Mise à jour :
Fichier main : Kodi v2.12 - Main.lua
Fichier KODI : Library - KODI v1.12.lua
Fichier tools : Library - tools v2.20.lua
Add-on :
HC3.addon-1.0.0.zip