Aller au contenu
ADN182

Addon Xbmc Kodi By Adn182

Recommended Posts

Bonjour à tous, 

 

UPDATE 24-02-18 : New Scene for Kodi v18 (HC2 Addon Scene v1.1.lua)

UPDATE 04-10-19 : New Version HC2.addon-1.4.2-Lazer.zip - Upgrade pour accéder 10 Caméra Thanks to Lazer

 

Petit post pour vous faire partager mon addon Kodi qui « s’interface » avec notre petit boite d’aluminium.

Celui-ci va vous permettre par exemple: de fermer les volets à l'allumage de Kodi, allumer le vidéos projecteur éteindre les lumières à la lecture d'une vidéos...

Quelqu'un sonne ! On met la vidéo en pause, on affiche la caméra de la porte d'entrée...

 

L'addon à été fait de façon à ce qu'il donne un retour d'information permettant de guider l'utilisateur sur les différentes étape d’installation et de configuration de l'addon (Gestion d'erreur).

 

Assez parler passons au chose sérieuse.

 

Caractéristiques de l'Addon :

- Permet de déclencher une « action » en fonction de l’état de Kodi

  • Les différents événements :
    • On
    • Off
    • Accès aux différents Menu (Home, Météo, Vidéo, Musique, Image, Programme, Paramètres).
    • Evènement du Lecteur (Play, Pause, Reprise, Stop, Fin).
    • Afficher le titre de la musique ou la vidéo joué dans le panneau Variables de la HC2 => à partir de la version 1.4 les variables globales ne sont plus utilisées, le déclenchement se fait par les arguments dans la scène.

- Affichage sous forme de pop-up d’un flux d’image (le flux d’une caméra)

  • Le temps d'affichage de la popup ainsi que le temps de rafraîchissement entre chaque image est configurable dans l'addon, mais également lors du déclenchement par API.

          Exemple :

                                      KODI Cam.png

 

- Créer des variables en fonction des caméras dans la HC2.  Depuis la version 1.4 le lancement de la caméra peut se faire avec le nom des caméras dans la HC2. Cela évite d'avoir un mapping à maintenir.

- Récupère les cameras présentent dans la HC2.

- Afficher un Menu permettant d’interagir avec les modules (virtuel), scène de la box.

 

Installation & Fonctionnement : 
- Installer le fichier zippé joint au post dans la section ajout d’extension de Kodi.
- Configurer l’addon avec les paramètres de votre HC2.

  • Adresse IP ou Nom de la HC2
  • Port (par défaut 80)
  • Nom de la Scene
  • Nom de l'Instance (depuis la version 1.4)
  • Nom d’Utilisateur HC2
  • Mot de passe Utilisateur HC2
  • 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)

5acc9f2731d8b_2018-04-1013_23_33-Clipboard.thumb.png.9b5435e59666e8fca116a453c36da56f.png

Version <= 1.3.5

 
  • Le nom de la variable permet d’identifier le MediaCenter dans la HC2. Si vous en avez plusieurs mettre un nom différents pour chaque MediaCenter, exemple : KODI_Salon et KODI_Chambre. (Une Scène par Kodi)

 

  • Depuis la version 1.4 vous pouvez faire une seule scène pour la gestion de plusieurs Kodi (instances)
  • Plus le délai d'attente après le déclenchement de chaque variable est faible plus c'est réactif, sauf qu'il arrive parfois que la variable soit mise à jour très rapidement et la scéne de la HC2 n'a pas le temps d'afficher les différentes étapes. Ex : Vous lancer une vidéos que vous ne deviez pas lancer (vous appuyer donc sur stop la vidéos à peine démarrer). Si le délai est de Zéro alors la scène affiche : Vidéo_Started => Menu Vidéos => Menu Vidéos alors qu'elle devrait afficher : Vidéo_Started => Videos_Stopped => Menu Vidéos le délai permet de palier à ce problème. Si vous rencontrer ce type de phénomène alors augmenter les délais de déclenchement entre chaque Variable.
  • 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 HC2. Ex : Si on laisse « Accès au Menu Home » à  "No" la Home Center 2 ne sera pas capable de déclencher une action lorsque vous serez sur la page d’accueil de votre média center préférer icon_wink.gif.

  5acc9f2cc3018_2018-04-1013_24_03-Clipboard.thumb.png.866a195cf460fda97b90c327dd7ed8b3.png

 

- Redémarrer Kodi une fois l’addon configuré.

Version <= 1.3.5

 
  • L’addon va créer les variables dans votre HC2. (variable d’état, les id des caméras, variable de titre).

 

 

Paramètrage HC2 :

Version <= 1.3.5 :

 

Passons maintenant au interaction avec la HC2, pour cela il va falloir créer une scène portant le même non que la variable dans l'Addon (KODI_Salon) dans celle-ci y mettre le code joint en remplaçant KODI_Salon par votre variable : 

 

Kodi HC2 Addon Scene (inf=1.3.5).lua

 

Ensuite dans chaque section "--action" mettre les commandes que vous souhaitez exécuter. Ex: Fermer les volets à  l'allumage de KODI, descendre la toile de projection, allumer le vidéos projecteur éteindre les lumières à  la lecture d'une vidéos...

 

Un exemple pour mettre la luminosité à 30% lors de la pause d'une vidéo : 

 

-- Pause d'une video
if ( VariableKODI == "Video_Paused" )
then
fibaro:call(49, "setValue", "30")
end

 

Version >= 1.4 :

Passons maintenant au interaction avec la HC2, pour cela il va falloir créer une scène portant le même non que la scène dans l'Addon (KODI) dans celle-ci y insérer le code suivant :

 

HC2 Addon Scene v1.lua (Kodi =< v17)

HC2 Addon Scene v1.1.lua (Kodi >= v18)

 

Dans cette scéne remplir les informations d'instances. La scène peut supporté plusieurs Kodi (instance). L'instance par défaut est utilisé si aucune instance n'est renseigné dans l'addon ou par la suite dans les lancement LUA.

local Instance={}
Instance.default = {ip = "192.168.0.x", port = 8080, user = 'kodi', pass = '1234', vd = 123}
Instance.Salon = {ip = "192.168.0.x", port = 8081, user = 'kodi', pass = '1234', vd = 123} (Un VD est associé à une instance)

Ensuite mettre votre propre code pour chaque fonction (On, Video_Start....)

-- Addon Function
function Start.On(instance)
	fibaro:debug("On")
end

Si vous souhaiter différencier les actions en fonction des instances il suffit de faire comme ceux-ci : 

function Start.On(instance)
	if instance == "Salon" then
		fibaro:debug("Action Spécifique pour l'instance Salon")
	end
	
	fibaro:debug ("On")
end

Ainsi le debug "On" s'affiche pour toutes les instances et "Action...." uniquement pour l'instance Salon.

 

Camera

Le temps d'affichage ainsi que le rafraîchissement entre chaque image est désormais configurable depuis la page de l'addons ainsi que via l'API Kodi.

Version <= 1.3.5 :

 

Si vous avez des caméras paramètres dans votre HC2 celle-ci seront reporter dans l’addon et vous pourrez visualiser celle-ci dans Kodi en exécutant la commande suivante dans un navigateur : 

Citation

http://userKODI:passwordKODI@IpaddressKODI:portKODI/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Addons.ExecuteAddon","params":{"addonid":"HC2.addon","params":{"fonction":"ActiveCamera", "idcam":"1","uptime":"30","refresh":"1000"}}}

Remplacer les écriture en rouge par vos paramètres Kodi et le chiffre en bleu par l'id de la caméra à afficher (l'id de la caméra se trouve dans le panneau variable de la HC2). Concernant les paramètres uptime et refresh ils ne sont pas obligatoire. Lors d'un déclenchement il prendrons les valeurs par défaut configuré dans l'Addon si vous les forcer alors cela prendra ces valeurs.

 

Par exemple sur la ligne ci-dessus elle est configuré pour afficher la caméra pendant 30 secondes (uptime 30s) et rafraîchir chaque image toutes les secondes (refresh 1000 ms => 1s)

 

(Il faut bien sur auparavant avoir configurer Kodi pour pouvoir être contrôler par HTTP pour ce faire je vous renvoi vers cette page de configuration :http://kodi.wiki/view/Settings/Services/Control).

 

Vous pouvez également exécuter ces commandes par le biais d'un virtual device en Lua avec le code suivant 

 

KODI = Net.FHttp('192.168.x.x', 80);
KODI:setBasicAuthentication("userKODI","passwordKODI")
response = KODI:GET('/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Addons.ExecuteAddon","params":{"addonid":"HC2.addon","params":{"fonction":"ActiveCamera","idcam":"1","uptime":"30","refresh":"1000"}}}');
resultat = json.decode(response);
if resultat.result == "OK"
then
fibaro:log("Notification caméra envoyé àKODI");
else
fibaro:log("Erreur suite àl’exécution de la commande");
end

 

J'ai intégrer le virtual device au post (XBMC_Salon.zip). Dans celui-ci j'ai implémente la fonction Wake On Lan de Krikroff (Merci à lui ;)) pour permettre de démarrer mon média center, il y a une fonction permettant d'éteindre Kodi et 3 boutons d'actionnement de l'affichage des caméras sur Kodi.

 

On peut alors imaginer que quand on rentre dans le menu météo (qui me sert très peu) on affiche les caméras :

ou "pressButton", "3" correspond au bouton du virtual device créé précédemment actionnant la caméra numéro 1.

 

-- Menu Weather
if ( VariableKODI == "Menu_Weather" )
then
fibaro:call(60, "pressButton", "3")
end

 

Version >= 1.4 :

 

 

Si vous avez des caméras paramètres dans votre HC2 celle-ci seront reporter dans l’addon et vous pourrez visualiser celle-ci dans Kodi en exécutant la commande suivante dans un navigateur : 

Citation

http://userKODI:passwordKODI@IpaddressKODI:portKODI/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Addons.ExecuteAddon","params":{"addonid":"HC2.addon","params":{"fonction":"ActiveCamera", "name":"Cam_Salon","uptime":"30","refresh":"1000"}}}

Remplacer les écriture en rouge par vos paramètres Kodi et le chiffre en bleu par l'id de la caméra à afficher (l'id de la caméra se trouve dans le panneau variable de la HC2). Concernant les paramètres uptime et refresh ils ne sont pas obligatoire. Lors d'un déclenchement il prendrons les valeurs par défaut configuré dans l'Addon si vous les forcer alors cela prendra ces valeurs.

 

Par exemple sur la ligne ci-dessus elle est configuré pour afficher la caméra pendant 30 secondes (uptime 30s) et rafraîchir chaque image toutes les secondes (refresh 1000 ms => 1s)

 

(Il faut bien sur auparavant avoir configurer Kodi pour pouvoir être contrôler par HTTP pour ce faire je vous renvoi vers cette page de configuration :http://kodi.wiki/view/Settings/Services/Control).

 

Pour afficher une caméra connu de la HC2 depuis la scène Kodi : 


function Start.On(instance)
	fibaro:debug("On")
	Camera["view"](instance, "Cam_Salon") -- Affichera la caméra "Cam_Salon" à l'ouverture du médiacenter
end

Pour afficher une caméra connu de la HC2 depuis une autre scène ou virtual device :


local _kodinstance = "Salon"
local _kodiscene = 123
fibaro:startScene(_kodiscene, {{instance = _kodinstance, camera = "Cam_Salon"}})

 

 

VD : 

Le Virtual device permet de controler Kodi et d'afficher les caméras

Kodi v1.vfib

VD.png.cb9153da702ddfb830ad2353ccb114f1.png

 

Notification Action depuis VD / Scène : 

Tout comme pour afficher une caméra vous pouvez executer des actions depuis une autre scène, VD, Play, Pause...

 

Affiche un Caméra : 

local _kodinstance = "Salon"
local _kodiscene = 123
fibaro:startScene(_kodiscene, {{instance = _kodinstance, camera = "Cam_Salon"}})

Play : 

local _kodinstance = "Salon"
local _kodiscene = 123
fibaro:startScene(_kodiscene, {{instance = _kodinstance, player = "PlayPause"}})

 

Menu : 

Fibaro Menu.png

Le Menu permet de piloter les lumières, volets, "actionneurs", scène, virtual device visible dans la HC2 et d'actionner ceux-ci (turnOn, turnOff).

 

Le Menu commence par afficher vos Sections puis Vos pièces dans cette Sections le type de module pour enfin afficher les modules de cette pièce
Sections => Rooms => Type => Device 

 

Activation du Menu

Depuis la 1.4 le menu peut s'afficher en exécutant l'addon (Addon de type Programme) ou comme auparavant 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 voir : http://kodi.wiki/view/Keymaps)

 

Voici le contenu de mon fichier keyboard.xml (redémarrer Kodi une fois celui-ci mis ne place) :

<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 -->
        </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>
        </keyboard>
	</fullscreenvideo>
</keymap>

Ici un <ctrl> + y permet d'afficher le menu ou encore l'appuie de la touche rouge/bleu sur votre télécommande de votre MédiaCenter ou encore un appuie long sur la touche Menu.

Il suffit ensuite de ce balader dans la Section souhaité => La pièce => le type de module (Lumière, Volet, Actionneur) => puis actionner le module voulu. Vous pouvez désormais revenir dans les sections précédente du menu avec la flèche gauche et la flèche de droite pour accéder à la section suivante.

 

GEA :

Dans la fonction config (function config())de Gea insérer les lignes suivantes (en prenant soin de remplacé par l'ID de votre scène) : 


 	GEA.options.kodi_notif = {name = "Kodi_Notif",
    action = function(message) local _kodiscene = 100
	fibaro:startScene(_kodiscene, {{notif = GEA.getMessage(message)}}) end,
}

  	GEA.options.kodi_player = {name = "Kodi_Player",
    action = function(message) local _kodiscene = 100
	fibaro:startScene(_kodiscene, {{player = GEA.getMessage(message)}}) end,
}
  
    GEA.options.kodi_cam = {name = "Kodi_Cam",
    action = function(message) local _kodiscene = 100
	fibaro:startScene(_kodiscene, {{camera = GEA.getMessage(message)}}) end,
}

Ensuite pour déclencher une action : 

Play/Pause du lecteur : 
{"Kodi_Player", "PlayPause"}

Afficher une caméra : 
{"Kodi_Cam", "DoorBird"}

Recevoir une notification : 
{"Kodi_Notif", "Test"}

Exemple recevoir une notification au démarrage de GEA : 

GEA.add(true, 0, "",{{"Kodi_Notif", "GEA demarrer à #time# le #datefull#"}})

 

 

Icône : 

Kodi.png.553de70ec9a014ddaf31fefd76df9d5d.png

 

 

(Version > 1.0.6  =< 1.0.9  :  Compatible XBMC Gotham v13) HC2.addon-1.0.9.zip

(Version > 1.0.10 : Compatible Kodi avec version de firmware < V4) HC2.addon-1.0.10.zip

(Version > 1.1.0-beta : Compatible Kodi avec la V4 Fibaro) HC2.addon-1.3.5.zip

De la version 1.3 à 1.3.5 Obligation de mettre la scène Fibaro en déclenchement sur Variable : 
--[[
%% properties
%% globals
KODI_Cuisine
--]]

(Version >= 1.4 : Necessite une version de firmware supérieur à 4.11x) 

 

Changelog :

V1.4.2 (Thanks To Lazer):

- Possibilité d'ajouté 10 Caméra contre 5 dans les versions précédente

V1.4.1

- Correction du déclenchement d'une vidéo suit à une evolution dans Kodi v18 : fix onPlayBackStarted replaced by onAVStarted() 

V1.4 :

- Refonte du code :

  • Possibilité de lancer le menu en exécutant l'addon
  • Mise à jour de la structure en version 17
  • Prise en charge multi instance (Une scène peut contrôler plusieurs Kodi

- Amélioration du Menu : ajout de la gestion des scènes, virtual devices et caméra

V1.3.5 :

Traduction du Menu en Anglais

V1.3.3:
- Amélioration du Menu : Possibilité de quitté celui-ci avec le retour arrière, déplacement et actionnement via les flèches (Gauche, Droite), Visualisation de l'état des modules.

V1.3.2:

- Correction du Menu: Ajout des Notifications sur actions, Spécification de la pièce lors de l'action du module, gestion des erreurs, déplacement danq le dans le menu. 

V1.3.1:

- Correction du Menu pour prendre en compte les caractères accentués

- Possibilité de piloté la camera depuis l'API en y ajoutant le délai d'affichage et de rafraîchissement

- Correction sur la remontée du titre et genre dans la HC2

- Configuration entre le temps interrogation entre chaque appel pour changement de variable

- Récupération Uniquement des modules visible et Activé dans le HC2

V1.3.0:

- Suppression du déclenchement de Scène via API pour favoriser le déclenchement de variable et ainsi réduire les appels àla HC2 (Merci Lazer)

- Beta : Ajout d'un menu permettant de controler les modules de type Lumière

V1.2.0:

- Optimisation du code et réduction des appels fait àla HC2 qui devrait corriger des problèmes de TimeOut

V1.1.3-beta:

- Correction : Erreur quand l'utilisateur crée une caméra dans l'addon

V1.1.2-beta :

- Correction de l'affichage des TAG

- Ajout de trace dans le Debug

V1.1.1-beta :

- Tous les types de camera sont importées : défini par Fibaro (Plugin) ou par l'utilisateur

- Ajout du Tag Genre

- Correction de bug n'affichant pas le titre dans la balise TAG

 

UPDATE 04-10-19 :  New Version HC2.addon-1.4.2-Lazer.zip - Upgrade pour accéder 10 Caméra Thanks to Lazer

 

N'hésitez pas me faire un retour icon_wink.gif difficulté rencontré, m'indiquez les bugs ou améliorations, fonctionnalités à ajouter !

 

 

Modifié par ADN182
Upgrade Camera Number
  • Upvote 4

Partager ce message


Lien à poster
Partager sur d’autres sites

?? Il est de qui cet Addon ? Shad ou ADN182 ? Car dans la présentation de Shad, il dit qu'il a créé un addon pour XBMC et il vient ici poster No comment

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

A moi, Shad en a créé un également. j'avais créé celui-ci à  partir de celui que j'ai créé de la Zipabox qui découle du travaille de Cédric Locqueneux, Mickael Grenier et Doobiest.

Partager ce message


Lien à poster
Partager sur d’autres sites

Sil il y a un problème avec le post faites le moi savoir (Shad ou aux Admin). Je suis la pour partager des choses...

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y a pas de problème et nous ne sommes pas là  pour jouer aux arbitres !

J'espère que les auteurs sont des gens assez responsables pour ne pas revendiquer un travail qui ne lui appartient pas...

 

Il y aurait donc 2 addons pour Xbmc.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne m'étais pas interessé a ces addons, car je n'utilise plus XBMC bien que ma vidéothèque (MyMovies) est intégré dedans.

Maintenant, à  la lecture de ce tuto, je trouve que la procédure est assez automatiser, simple...

Je vais donc redémarrer mon xbmc histoire d'installer l'addon, et faire la mise a jour de XBMC car je pense que mon frodo date un peut.

 

Pas de probleme avec les Skins et l'addon ?

 

Merci pour le partage !

Partager ce message


Lien à poster
Partager sur d’autres sites

Donc il n'y a aucun soucis, perso sur mon addon j'ai juste quelque remonté au niveau de gotham qui ne fonctionnerrait pas àchaque.

Partager ce message


Lien à poster
Partager sur d’autres sites

je confirme, sous XBMC confluence ça fonctionne nickel

 

PS:Shad a quand l addon sous Plex ?  :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi je n'utilise pas plex ^^.

Je sais même pas s'ils ont une API fonctionnelle.

Et je vais même allé plus loin, je ne vois absolument pas l'interet d'utiliser plex, excepter pour une famille de 10 personnes qui n'a pas un réseau gigabit et qu'il faut diminuer le bitrate^^.

Pour moi xbmc est bien meilleur et plus complet.

Partager ce message


Lien à poster
Partager sur d’autres sites

rofffl le prend pas mal ^^.

 

Mais si tu veux fais le code je veux bien te donner un coup ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Une alternative : PleXBMC. C'est un Addon qui permet d’accéder au contenu d'un serveur Plex tout en étant sur XBMC.

 

PleXBMC

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais le fonctionne est un peu comment dire, pourrie??

Partager ce message


Lien à poster
Partager sur d’autres sites

testé il y a quelques mois sur Rpi + Plexbmc ca fonctionne, certes avec quelques ralentissements sur l'interface mais une fois le films lancé c'est good.

Partager ce message


Lien à poster
Partager sur d’autres sites

Super Plugin et tres bon script LUA , merci bien :-)

Une petite question, y aurait il moyen d'avoir pour la variable la valeur shutdown (autre que le Off simple qui dit sur xbmc est éteint)

Comme ça, dès qu'on éteint l'ordi avec XBMC on peut lancer un autre script !

Merci en tout cas , c vraiment cool déjàde pouvoir actionner des modules àla pause , reprise, etc...

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, et pour ta requête non ce n'est possible ou je n'ai pas trouvé comment faire.

Pour l'instant le plugin est en pause le temps qu'ils sortent la nouvelle fonction.

Pour info, je travaille déjà  sur un système pour protéger les enfants des films a ne pas voir :D, faut juste que je comprenne comment sa marche avant :(

 

edit: J'avais pas vue que c'était pas mon fil.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je me dis que peut être en testant si l'ordi est allumé (ping ou envoi de requete au HC2 àla fermeture) plus la valeur off venant d'XBMC, ça pourrait peut être le faire ! A tester..

Oui sinon on va entendre la V4 ...patiemment... peut être qu'il y aura quelque chose de bien au niveau multimédia.

Partager ce message


Lien à poster
Partager sur d’autres sites

La seul chose possible àfaire est de "pinger" ton xbmc, et la tu seras s'il est allumé ou pas.

Moi sa m’intéresse pas car il est allumé h24.

Partager ce message


Lien à poster
Partager sur d’autres sites

×