<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rebecca.Poustis</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rebecca.Poustis"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Rebecca.Poustis"/>
	<updated>2026-05-28T22:26:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC/Fiche_Suivi&amp;diff=16477</id>
		<title>Extensions XBMC/Fiche Suivi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC/Fiche_Suivi&amp;diff=16477"/>
		<updated>2014-03-27T00:03:34Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Dépôts Git */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Suivi de l&#039;avancement du projet =&lt;br /&gt;
[[Image:Gant_xbmc_previsionnel.png| Planning Prévisionnel |thumb|left|510px]] &lt;br /&gt;
[[Image:Gant_xbmc_final.png| Planning Effectif |thumb|right|550px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 1 (semaine 5) : 27 janvier au 2 février==&lt;br /&gt;
&lt;br /&gt;
Lundi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*MPI et Séminaire &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi : &lt;br /&gt;
*Choix du projet&amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*Recherche documentaire sur les différentes technologies envisagées pour le projet&amp;lt;br/&amp;gt;&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
*Définition des différentes tâches réalisables suite à nos recherches. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 2 (semaine 6) : 3 au 9 février==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Ecrire le cahier des charges du projet afin de chiffrer la durée de chaque tâche et leur priorité&amp;lt;br/&amp;gt;&lt;br /&gt;
*Etudier la réalisation de plugins sur XBMC et réaliser un &#039;&#039;HelloWord&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Commencer les premières tâches décidées dans le cahier des charges&amp;lt;br/&amp;gt;&lt;br /&gt;
Lundi : &amp;lt;br/&amp;gt;&lt;br /&gt;
* MPI et Séminaire &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi: &amp;lt;br/&amp;gt;&lt;br /&gt;
*Finalisation du cahier des charges &amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*Hue : Communication avec le système et découverte plugin XBMC &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Création du plugin, étude approfondie d&#039;OpenHab &amp;lt;br/&amp;gt;&lt;br /&gt;
Jeudi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*MPI &amp;lt;br/&amp;gt;&lt;br /&gt;
Vendredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*Hue : Intégration à XBMC du code python, et configuration de l&#039;interface de paramétrage &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Récupération des Etages de la maison, et affichage dans XBMC&amp;lt;br/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
==Sprint 3 (semaine 7) : 10 au 16 février==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Extension OpenHab : Listes dynamiques des pièces de la maison avec sous menus dynamiques &amp;lt;br/&amp;gt;&lt;br /&gt;
*Utilisation de l’algo de détermination de k couleurs dominantes (méthode basée sur k-means)&amp;lt;br/&amp;gt;&lt;br /&gt;
*Extension Philips Hue : intégration de la synchronisation des lampes avec l’image à l’écran. Prise en compte de la vidéo&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lundi : &amp;lt;br/&amp;gt;&lt;br /&gt;
* MPI et Séminaire &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi :  &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Recherche sur la navigation dans les menus et traitement des exceptions pouvant être générée. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt; &lt;br /&gt;
*OpenHab : Mise en place de la navigation dans les différentes pièces de la maison, et affichage dans le menu de l&#039;ensemble des capteurs. Etude sur l&#039;utilisation de label générique pour l&#039;affichage des informations et des messages d&#039;erreur. &amp;lt;br/&amp;gt;&lt;br /&gt;
Vendredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Etude sur les techniques pour réaliser l&#039;interface  XBMC d&#039;une pièce. Prototypage à l&#039;aide d&#039;une librairie python de l&#039;affichage des capteurs. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 4 (semaine 8) : 17 au 23 février==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Extension OpenHab : Récupération et modification des informations des différentes pièces de la maison&lt;br /&gt;
*Extension reflexive remote : Etude de l&#039;existant et compréhension du code&lt;br /&gt;
*Extension caméra de surveillance : Intégration dans XBMC (interaction de l&#039;utilisateur avec la caméra depuis l&#039;interface)&lt;br /&gt;
&lt;br /&gt;
Lundi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : recherche affichage des labels à partir de fichier XML &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : gérer l&#039;affichage des labels et de leurs valeurs, à partir du framework PyXBMCt (http://romanvm.github.io/PyXBMCt/) &amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt; &lt;br /&gt;
* Openhab : gérer l&#039;affichage des labels et de leurs valeurs, mise en œuvre du framework dans l&#039;interface &amp;lt;br/&amp;gt;&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : finalisation de l&#039;affichage des labels et de leurs valeurs, gestion des exceptions et tests du plugin &amp;lt;br/&amp;gt;&lt;br /&gt;
Vendredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Reflexive remote : étude de l&#039;existant&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 5 (semaine 9) : 24 au 28 février==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Finalisation des plugins : nettoyage et restructuration du code&lt;br /&gt;
*Extension reflexive remote&lt;br /&gt;
*Intégration de NFC&lt;br /&gt;
*Re-priorisation des objectifs&lt;br /&gt;
&lt;br /&gt;
Lundi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : écriture de la doc&lt;br /&gt;
* Caméra : auto-configuration &lt;br /&gt;
&lt;br /&gt;
Mardi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* OpenHab : Validation du plugin &lt;br /&gt;
* NFC : Compréhension de NFC et Android&lt;br /&gt;
* Caméra : Finalisation du plugin&lt;br /&gt;
* Re-priorisation des objectifs : rendez-vous avec N. Palix&lt;br /&gt;
&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* NFC : Intégration dans la remote&lt;br /&gt;
* Reflexive remote : Ecriture du cahier des charges&lt;br /&gt;
* Reflexive remote : Récupération du menu principal&lt;br /&gt;
&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* NFC : Ecriture d&#039;un tag particulier pour lancer un menu de xbmc&lt;br /&gt;
* Reflexive remote : Intégration de OpenHab&lt;br /&gt;
&lt;br /&gt;
Vendredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* NFC : finalisation de l&#039;application&lt;br /&gt;
* Reflexive remote : Finalisation, récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
==Sprint 6 (semaine 11) : 10 au 14 mars==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
* Terminer la reflexive remote&lt;br /&gt;
** Récupérer le menu principal de XBMC sous forme de liste&lt;br /&gt;
** Ajouter Open Hab dans le menu principal&lt;br /&gt;
** Modifier la remote avec les nouveaux menus et les rendre dynamiques&lt;br /&gt;
** Déterminer le protocole de communication entre la télécommande et le serveur XBMC&lt;br /&gt;
** Gérer la navigation (afficher les listes ou exécuter les plugins)&lt;br /&gt;
** Rafraîchir automatiquement la télécommande lors de la sortie de veille, ou en appuyant sur un bouton&lt;br /&gt;
&lt;br /&gt;
Lundi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ajout d&#039;OpenHab dans le menu principal&lt;br /&gt;
* Début de l&#039;étape 3: modifier l&#039;interface de l&#039;application selon l&#039;entrée (si c&#039;est une liste l&#039;afficher, sinon lancer la télécommande)&lt;br /&gt;
&lt;br /&gt;
Mardi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Etape 3: suite&lt;br /&gt;
&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Etape 3: suite&lt;br /&gt;
&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Etape 3: fin&lt;br /&gt;
&lt;br /&gt;
Vendredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Documentation de l&#039;étape 3&lt;br /&gt;
* Documentation des dépôts BitBuckets pour les différents plugins&lt;br /&gt;
* Rédaction du dossier pour le Management de Projet Innovant&lt;br /&gt;
&lt;br /&gt;
==Sprint 7 (semaine 12) : 17 au 21 mars==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
* Terminer la reflexive remote&lt;br /&gt;
* Intégrer le plugin de reconnaissance vocale SARAH&lt;br /&gt;
&lt;br /&gt;
Lundi :&lt;br /&gt;
* Documentation&lt;br /&gt;
* Suite Reflexive remote (Android + noyau)&lt;br /&gt;
Mardi :&lt;br /&gt;
* Suite Reflexive remote (Android + noyau)&lt;br /&gt;
* Etude du plugin SARAH&lt;br /&gt;
Mercredi :&lt;br /&gt;
* Suite Reflexive remote (Android + noyau)&lt;br /&gt;
* Début d&#039;intégration du plugin SARAH&lt;br /&gt;
Jeudi :&lt;br /&gt;
* Fin de l&#039;intégration de SARAH&lt;br /&gt;
* Suite Reflexive remote (Android + noyau)&lt;br /&gt;
Vendredi :&lt;br /&gt;
* Documentation et slides de la présentation&lt;br /&gt;
* Suite Reflexive remote (Android + noyau)&lt;br /&gt;
&lt;br /&gt;
==Sprint 8 (semaine 13) : 24 au 27 mars==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
* Terminer et tester la reflexive remote&lt;br /&gt;
* Finaliser toutes les extensions&lt;br /&gt;
* Terminer la documentation (poster, flyers, video, screencast, wiki, code)&lt;br /&gt;
&lt;br /&gt;
Lundi :&lt;br /&gt;
* Ajout de fonctionnalités au plugin Philips Hue&lt;br /&gt;
* Création du poster et du flyer&lt;br /&gt;
* Fin du plugin Reflexive Remote&lt;br /&gt;
&lt;br /&gt;
=Dépôts Git=&lt;br /&gt;
&lt;br /&gt;
[https://bitbucket.org/xbmcproject Dépôt Bitbucket] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/NicolasAfonso/xbmc/tree/jsonrpcextension XBMC modifié] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://bitbucket.org/xbmcproject/xbmc-openhab-plugin Openhab Plugin] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk Reflexive Remote] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/NicolasAfonso/script.xbmc.hue.ambilight Ambilight Plugin] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon Dlink Addon] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://1drv.ms/OVMkoB Lien] vers l&#039;Installateur de notre version d&#039;XBMC modifiée, avec l&#039;ensemble des plugins développés, utilisés (SARAH) et ceux nécessaires à la bonne exécution du tout (plugins dépendants).&lt;br /&gt;
&lt;br /&gt;
= Documents et liens annexes =&lt;br /&gt;
&lt;br /&gt;
[[Media:CahierDesCharges.pdf | Cahier des charges]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Media:Rapport MPI - AFONSO BIANCO LARTIGUE MARTINEZ POUSTIS.pdf | Rapport Gestion et Management du Projet]]&lt;br /&gt;
Supports soutenance&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16476</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16476"/>
		<updated>2014-03-27T00:03:26Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Ajouter de commandes vocales dans SARAH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
[https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip script.DLinkCameraXBMCAddon.zip]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
Bien que nous ayons essayé de rendre le plus générique possible notre plugin, nous avons été confronté au problème de non-standardisation des camera D-Link et de l&#039;inexistence de documentation. Nous avons néanmoins essayé de rendre le plus aisé possible l&#039;ajout de nouvelles caméras. Pour ce faire, il faudra isoler deux informations essentielles, qui sont spécifiques à un modèle de caméra :&lt;br /&gt;
* le nom du fichier xml de description : type [path sur serveur][nomfichier].xml&lt;br /&gt;
* l&#039;url d&#039;accès au flux vidéo sur la caméra&lt;br /&gt;
&lt;br /&gt;
Ensuite les ajustements dans le code sont les suivantes :&lt;br /&gt;
- ajouter le choix de cette camera dans les settings du plugin. On ajoute une valeur dans la liste enum d&#039;id &amp;quot;camera_id&amp;quot; dans le fichier settings.xml.&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
* une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
* une méthode GetCurrentListDisplayed qui permet d&#039;obtenir la liste de menu actuellement affichée dans XBMC. Seuls les labels des items sont retournés. Si aucune liste n&#039;est affichée (exécution d&#039;un script, lecture de média, settings...), la méthode revoie une liste vide.&lt;br /&gt;
* une méthode NavigateInListItem qui génére un clic sur un item de la liste actuellement affichée à partir de son label placé en paramétre. Cette méthode vérifie si une liste est affichée et, si le paramétre apparait bel et bien dans cette liste. Dans les cas contraires, la méthode renvoie l&#039;erreur InvalidParameter au client.&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://1drv.ms/OVMkoB lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;br /&gt;
&lt;br /&gt;
=Dépôts Git=&lt;br /&gt;
&lt;br /&gt;
[https://bitbucket.org/xbmcproject Dépôt Bitbucket] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/NicolasAfonso/xbmc/tree/jsonrpcextension XBMC modifié] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://bitbucket.org/xbmcproject/xbmc-openhab-plugin Openhab Plugin] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk Reflexive Remote] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/NicolasAfonso/script.xbmc.hue.ambilight Ambilight Plugin] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon Dlink Addon] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://1drv.ms/OVMkoB Lien] vers l&#039;Installateur de notre version d&#039;XBMC modifiée, avec l&#039;ensemble des plugins développés, utilisés (SARAH) et ceux nécessaires à la bonne exécution du tout (plugins dépendants).&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16474</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16474"/>
		<updated>2014-03-26T23:54:00Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
[https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip script.DLinkCameraXBMCAddon.zip]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
Bien que nous ayons essayé de rendre le plus générique possible notre plugin, nous avons été confronté au problème de non-standardisation des camera D-Link et de l&#039;inexistence de documentation. Nous avons néanmoins essayé de rendre le plus aisé possible l&#039;ajout de nouvelles caméras. Pour ce faire, il faudra isoler deux informations essentielles, qui sont spécifiques à un modèle de caméra :&lt;br /&gt;
* le nom du fichier xml de description : type [path sur serveur][nomfichier].xml&lt;br /&gt;
* l&#039;url d&#039;accès au flux vidéo sur la caméra&lt;br /&gt;
&lt;br /&gt;
Ensuite les ajustements dans le code sont les suivantes :&lt;br /&gt;
- ajouter le choix de cette camera dans les settings du plugin. On ajoute une valeur dans la liste enum d&#039;id &amp;quot;camera_id&amp;quot; dans le fichier settings.xml.&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
* une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
* une méthode GetCurrentListDisplayed qui permet d&#039;obtenir la liste de menu actuellement affichée dans XBMC. Seuls les labels des items sont retournés. Si aucune liste n&#039;est affichée (exécution d&#039;un script, lecture de média, settings...), la méthode revoie une liste vide.&lt;br /&gt;
* une méthode NavigateInListItem qui génére un clic sur un item de la liste actuellement affichée à partir de son label placé en paramétre. Cette méthode vérifie si une liste est affichée et, si le paramétre apparait bel et bien dans cette liste. Dans les cas contraires, la méthode renvoie l&#039;erreur InvalidParameter au client.&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://1drv.ms/OVMkoB lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16472</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16472"/>
		<updated>2014-03-26T23:52:37Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
[[https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip]]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
Bien que nous ayons essayé de rendre le plus générique possible notre plugin, nous avons été confronté au problème de non-standardisation des camera D-Link et de l&#039;inexistence de documentation. Nous avons néanmoins essayé de rendre le plus aisé possible l&#039;ajout de nouvelles caméras. Pour ce faire, il faudra isoler deux informations essentielles :&lt;br /&gt;
* le nom du fichier xml de description : type [path][]&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
* une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
* une méthode GetCurrentListDisplayed qui permet d&#039;obtenir la liste de menu actuellement affichée dans XBMC. Seuls les labels des items sont retournés. Si aucune liste n&#039;est affichée (exécution d&#039;un script, lecture de média, settings...), la méthode revoie une liste vide.&lt;br /&gt;
* une méthode NavigateInListItem qui génére un clic sur un item de la liste actuellement affichée à partir de son label placé en paramétre. Cette méthode vérifie si une liste est affichée et, si le paramétre apparait bel et bien dans cette liste. Dans les cas contraires, la méthode renvoie l&#039;erreur InvalidParameter au client.&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://1drv.ms/OVMkoB lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16463</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16463"/>
		<updated>2014-03-26T23:23:47Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
Bien que nous ayons essayé de rendre le plus générique possible notre plugin, nous avons été confronté au problème de non-standardisation des camera D-Link et de l&#039;inexistence de documentation. Nous avons néanmoins essayé de rendre le plus aisé possible l&#039;ajout de nouvelles caméras. Pour ce faire, il faudra isoler deux informations essentielles :&lt;br /&gt;
* le nom du fichier xml de description : type [path][]&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
*une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
*une méthode GetCurrentListDisplayed qui permet d&#039;obtenir la liste de menu actuellement affichée dans XBMC. Seuls les labels des items sont retournés. Si aucune liste n&#039;est affichée (exécution d&#039;un script, lecture de média, settings...), la méthode revoie une liste vide.&lt;br /&gt;
*une méthode NavigateInListItem qui génére un clique sur un item de la liste actuellement affichée à partir de son label placé en paramétre. Cette méthode vérifie si une liste est affichée et, si le paramétre apparait bel et bien dans cette liste. Dans les cas contraires, la méthode renvoie l&#039;erreur InvalidParameter au client. &lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://1drv.ms/OVMkoB lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16457</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16457"/>
		<updated>2014-03-26T23:04:19Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Reconnaissance vocale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
Bien que nous ayons essayé de rendre le plus générique possible notre plugin, nous avons été confronté au problème de non-standardisation des camera D-Link et de l&#039;inexistence de documentation. Nous avons néanmoins essayé de rendre le plus aisé possible l&#039;ajout de nouvelles caméras. Pour ce faire, il faudra isoler deux informations essentielles :&lt;br /&gt;
* le nom du fichier xml de description : type [path][]&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16455</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16455"/>
		<updated>2014-03-26T23:03:41Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16453</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16453"/>
		<updated>2014-03-26T23:01:50Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Aperçu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16452</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16452"/>
		<updated>2014-03-26T23:01:36Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Aperçu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16451</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16451"/>
		<updated>2014-03-26T23:01:01Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Plugin Philips Hue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16450</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16450"/>
		<updated>2014-03-26T22:59:40Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Plugin OpenHab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16448</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16448"/>
		<updated>2014-03-26T22:57:30Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Aperçu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:XBMC_phillipsHue_demo.JPG|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16447</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16447"/>
		<updated>2014-03-26T22:55:13Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Aperçu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:XBMC_philipsHue_demo.jpg|Visualisation d&#039;ambilight|thumb|left|500px]] &lt;br /&gt;
[[Image:XBMC_SettingsPhilipsHueExtension.png|Configuration des settings|thumb|right|500px]]&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[http://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon/downloads/script.DLinkCameraXBMCAddon.zip lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[https://bitbucket.org/xbmcproject/xbmc-remote-fork/downloads/RemoteReflexive.apk lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16443</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16443"/>
		<updated>2014-03-26T22:46:42Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Plugin Philips Hue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16440</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16440"/>
		<updated>2014-03-26T22:40:37Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Principe de fonctionnement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16439</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16439"/>
		<updated>2014-03-26T22:38:49Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Aperçu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera (auto configuration, récupération du flux video), la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin :&lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
&lt;br /&gt;
Nous avons étendu l&#039;API JSON-RPC du noyau XBMC :&lt;br /&gt;
- une méthode GetCurrentMainMenu qui permet de retourner l&#039;état actuel de la barre de menu principal. Cet état est loin d&#039;être statique, des nouvelles entrées peuvent apparaître (insertion d&#039;un disque dans la machine où est installée le media center, activation d&#039;une carte tuner TV) ou disparaître (demande explicite de l&#039;utilisateur dans les paramètres d&#039;un skin de ne pas afficher tel ou tel menu). De plus, il est inutile de renvoyer des menus ne contenant aucun média (on ne renvoie pas le menu vidéo si aucune n&#039;est présente dans notre médiathèque).&lt;br /&gt;
&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16435</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16435"/>
		<updated>2014-03-26T22:28:32Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Aperçu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera, la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
L&#039;installation du plugin : &lt;br /&gt;
&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin :&lt;br /&gt;
https://bitbucket.org/xbmcproject/script.dlinkcameraxbmcaddon&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.dlinkcameraxbmcaddon.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16433</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16433"/>
		<updated>2014-03-26T22:27:40Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera, la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16432</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16432"/>
		<updated>2014-03-26T22:27:14Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
L&#039;idée de cet addon était de pouvoir utiliser XBMC pour lire le flux&lt;br /&gt;
video d&#039;une caméra de surveillance. Notre plugin, donne à&lt;br /&gt;
l&#039;utilisateur de choisir entre deux modèles cités. Au lancement du script,&lt;br /&gt;
si l&#039;adresse IP de la caméra n&#039;a pas été saisie par l&#039;utilisateur, une&lt;br /&gt;
recherche du modèle selectionné s&#039;exécute. Une fois le périphérique&lt;br /&gt;
repéré sur le réseau, le flux video est lu par le lecteur de XBMC via&lt;br /&gt;
l&#039;adresse HTTP de celui-ci. Le recherche se base sur la recherche d&#039;un&lt;br /&gt;
périphérique [http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP]. Pendant la lecture, un overlay a été créé pour pouvoir contrôlé&lt;br /&gt;
via XBMC l&#039;un des deux modèles de camera ([http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L]). Cela est rendu&lt;br /&gt;
possible car celles-ci disposent d&#039;un serveur web interne accessible&lt;br /&gt;
directement sur le port 80, avec l&#039;adresse attribuée dans le réseau&lt;br /&gt;
local. Les mouvements de la caméras lui sont donc adressés par des&lt;br /&gt;
requêtes HTTP.&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python:&lt;br /&gt;
* addon.py regroupe la classe Camera, la definition de l&#039;overlay et le&lt;br /&gt;
script de lancement. &lt;br /&gt;
* resources/lib/camDriver.py regroupe les methodes pour interagir avec la camera.&lt;br /&gt;
* resources/lib/settings.py qui a pour but de récupérer les settings saisis par&lt;br /&gt;
l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16429</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16429"/>
		<updated>2014-03-26T22:26:25Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]). Celles-ci disposent d&#039;un serveur web interne accessible directement sur le port 80, avec l&#039;adresse attribuée dans le réseau local. On peut alors directement, par des requêtes &lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
1) la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
2) l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16428</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16428"/>
		<updated>2014-03-26T22:25:48Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]). Celles-ci disposent d&#039;un serveur web interne accessible directement sur le port 80, avec l&#039;adresse attribuée dans le réseau local. On peut alors directement, par des requêtes &lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Ajout d&#039;une nouvelle caméra ====&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Pour installer l&#039;application Remote XBMC avec nos modifications, il suffit d&#039;installer :&lt;br /&gt;
* la version modifiée de XBMC téléchargeable sur ce [[lien]]&lt;br /&gt;
* l&#039;apk de la télécommande modifiée disponible sur ce [[lien]]&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16426</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16426"/>
		<updated>2014-03-26T22:16:27Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]). Celles-ci disposent d&#039;un serveur web interne accessible directement sur le port 80, avec l&#039;adresse attribuée dans le réseau local. On peut alors directement, par des requêtes &lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16425</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16425"/>
		<updated>2014-03-26T22:16:14Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]). Celles-ci disposent d&#039;un serveur web interne accessible directement sur le port 80, avec l&#039;adresse attribuée dans le réseau local. On peut alors directement, par des requêtes &lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16424</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16424"/>
		<updated>2014-03-26T22:15:50Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]). Celles-ci disposent d&#039;un serveur web interne accessible directement sur le port 80, avec l&#039;adresse attribuée dans le réseau local. On peut alors directement, par des requêtes &lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interaction avec le noyau de XBMC :&#039;&#039;&#039;&lt;br /&gt;
[[Image:XBMC_remote_example.png|Diagramme de séquence]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16422</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16422"/>
		<updated>2014-03-26T22:12:21Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
&lt;br /&gt;
=== Principe de fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Nous avons été amenés à travailler sur des caméras de la marque D-Link (les modèles [http://www.dlink.com/fr/fr/support/product/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222L] et [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-932l-day-night-cloud-camera DCS-932L]).&lt;br /&gt;
&lt;br /&gt;
=== Architecture logicielle ===&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
=== Aperçu ===&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|200px&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons|200px&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|200px&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|200px&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|200px&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16420</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16420"/>
		<updated>2014-03-26T22:06:43Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|200px&lt;br /&gt;
Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|200px&lt;br /&gt;
Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|200px&lt;br /&gt;
Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|200px&lt;br /&gt;
Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|200px&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16419</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16419"/>
		<updated>2014-03-26T22:03:45Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;un plugin d&#039;interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
Enfin, si le temps le permet, d&#039;inclure, de tester voire d&#039;implémenter d&#039;autres extensions telles que :&lt;br /&gt;
* commande vocale d&#039;XBMC&lt;br /&gt;
* commande gestuelle&lt;br /&gt;
* implémentation du profil UPnP Low Power&lt;br /&gt;
* suivi d&#039;utilisateurs d&#039;XBMC entre plusieurs instances du logiciel, et ce de manière automatique&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|200px]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16417</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16417"/>
		<updated>2014-03-26T21:57:07Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|center|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|right|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|right|200px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16415</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16415"/>
		<updated>2014-03-26T21:54:05Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|200px]]&lt;br /&gt;
[[File:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|left|200px]]&lt;br /&gt;
[[File:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|left|200px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16414</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16414"/>
		<updated>2014-03-26T21:53:05Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|left|200px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16412</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16412"/>
		<updated>2014-03-26T21:51:31Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|right|800px]]&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|left|200px]]&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16411</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16411"/>
		<updated>2014-03-26T21:51:07Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|800px]]&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|left|200px]]&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16409</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16409"/>
		<updated>2014-03-26T21:48:33Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|right|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|left|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|right|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|left|200px]]&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16408</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16408"/>
		<updated>2014-03-26T21:47:17Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple d&#039;application :&#039;&#039;&#039;&lt;br /&gt;
[[Image:xbmc_Menu_modifie.png|Etape 1 : Menu principal dynamique|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_List_addons.png|Etape 2 : Liste des addons|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_floors.png|Etape 3 : Navigation dans les étages|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_Openhab_rooms.png|Etape 4 : Navigation dans les pièces|thumb|200px]]&lt;br /&gt;
[[Image:xbmc_Remote.png|Etape 5 : Affichage de la remote|thumb|200px]]&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Xbmc_Remote.png&amp;diff=16407</id>
		<title>File:Xbmc Remote.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Xbmc_Remote.png&amp;diff=16407"/>
		<updated>2014-03-26T21:45:30Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Xbmc_Openhab_rooms.png&amp;diff=16406</id>
		<title>File:Xbmc Openhab rooms.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Xbmc_Openhab_rooms.png&amp;diff=16406"/>
		<updated>2014-03-26T21:43:48Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Xbmc_Openhab_floors.png&amp;diff=16405</id>
		<title>File:Xbmc Openhab floors.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Xbmc_Openhab_floors.png&amp;diff=16405"/>
		<updated>2014-03-26T21:43:03Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Xbmc_List_addons.png&amp;diff=16404</id>
		<title>File:Xbmc List addons.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Xbmc_List_addons.png&amp;diff=16404"/>
		<updated>2014-03-26T21:41:33Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Xbmc_Menu_modifie.png&amp;diff=16403</id>
		<title>File:Xbmc Menu modifie.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Xbmc_Menu_modifie.png&amp;diff=16403"/>
		<updated>2014-03-26T21:34:06Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Xbmc_Menu_origine.png&amp;diff=16402</id>
		<title>File:Xbmc Menu origine.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Xbmc_Menu_origine.png&amp;diff=16402"/>
		<updated>2014-03-26T21:28:24Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16401</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16401"/>
		<updated>2014-03-26T21:27:08Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Télécommande Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:XBMC_Hue_fonctionnement.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
[[Image:XBMC_Hue_archi.png|Fonctionnement plugin Phillips Hue|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
[[Image:OpenHab_video_Fonctionnement.png|Fonctionnement Plugin Video|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
[[Image:XBMC_Telecommande_global.png| Fonctionnement Télécommande|thumb|left|600px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
====Noyau====&lt;br /&gt;
====Télécommande Android ====&lt;br /&gt;
Modifications apportées à la [https://github.com/freezy/android-xbmcremote télécommande officielle] :&lt;br /&gt;
&lt;br /&gt;
* Récupération dynamique du menu principal&lt;br /&gt;
&lt;br /&gt;
* Récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
* Navigation dans les listes à l&#039;intérieur des addons&lt;br /&gt;
&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
[[Image:sarah-logo.png|Sarah|thumb|left|250px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16347</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16347"/>
		<updated>2014-03-26T10:35:52Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veut être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins, qui seront développés, vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de contrôler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android développée par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grâce à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveurs openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC, directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécessaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : http://bitbucket.org/xbmcproject/xbmc-openhab-plugin&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/downloads/script.module.openhab_v1.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponibles sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Présentation===&lt;br /&gt;
&lt;br /&gt;
Nous sommes partis d&#039;un plugin XBMC existant. &lt;br /&gt;
&lt;br /&gt;
Code original :&lt;br /&gt;
https://github.com/cees-elzinga/script.xbmc.hue.ambilight&lt;br /&gt;
&lt;br /&gt;
Ce plugin implémente le système [http://en.wikipedia.org/wiki/Ambilight Ambilight] pour les Philips Hue. Ce système capture les couleurs&lt;br /&gt;
dominantes de l&#039;image du média en cours de lecture et les transmet aux&lt;br /&gt;
ampoules Hue. Ce qui améliore grandement l&#039;immersion de l&#039;utilisateur. &lt;br /&gt;
&lt;br /&gt;
====Amélioration====&lt;br /&gt;
&lt;br /&gt;
Nous avons voulu ajouter des effets d&#039;ambiance lorsqu&#039;il n&#039;y a pas de&lt;br /&gt;
média en cours de lecture. Nous avons donc ajouté un mode&lt;br /&gt;
d&#039;utilisation des lampes de Philips à savoir le changement de couleur&lt;br /&gt;
automatique de chaque lampe. Les couleurs sont aléatoires et&lt;br /&gt;
indépendantes pour chaque ampoule. L&#039;utilisateur peut configurer ce&lt;br /&gt;
mode selon 3 paramètres : la luminosité, la saturation et&lt;br /&gt;
la fréquence de changement de couleur des ampoules.&lt;br /&gt;
&lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
&lt;br /&gt;
SHEMA&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur interagit avec les différentes options du plugin grâce aux&lt;br /&gt;
settings de celui-ci et sélectionne l&#039;addon pour lancer le script.&lt;br /&gt;
La communication entre le plugin et le pont Hue est réalisée grâce à&lt;br /&gt;
l&#039;[http://developers.meethue.com/ API Philips].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle===&lt;br /&gt;
&lt;br /&gt;
SHEMA&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose de 3 fichiers sources python: &amp;lt;br/&amp;gt;&lt;br /&gt;
* default.py qui regroupe les fonctions de calcul de couleurs&lt;br /&gt;
dominantes d&#039;ambilight, la classe Hue qui représente le pont Hue et&lt;br /&gt;
la boucle principale du script.&lt;br /&gt;
* resources/lib/tools.py définit les fonctionnalités de&lt;br /&gt;
communication avec les lampes. Dans ce fichier, sont implémentées&lt;br /&gt;
des fonctions telles que l&#039;auto-recherche du pont sur le réseau,&lt;br /&gt;
les méthodes d&#039;envoi des requêtes JSON.&lt;br /&gt;
* resources/lib/settingsAmbilight.py qui a pour but de récupérer&lt;br /&gt;
les settings saisis par l&#039;utilisateur.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===L&#039;installation du plugin===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [https://github.com/NicolasAfonso/script.xbmc.hue.ambilight extension Philips Hue pour XBMC]&lt;br /&gt;
&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose&lt;br /&gt;
script.xbmc.hue.ambilight.zip -&amp;gt; Validate &lt;br /&gt;
&lt;br /&gt;
3) Configurer les plugins à souhait. Ne pas oublier de faire la&lt;br /&gt;
recherche automatique du pont Hue sur le réseau si vous ne connaissez&lt;br /&gt;
pas son adresse IP&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui possède un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture. L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécessaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espace&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** Remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16327</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16327"/>
		<updated>2014-03-26T09:27:57Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Présentation du sujet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veux être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de ce projet de 8 semaines est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].&amp;lt;br/&amp;gt;&lt;br /&gt;
Les plugins qui seront développés vont permettre d&#039;ajouter les fonctions suivantes : &lt;br /&gt;
* Réalisation d&#039;un plugin de domotique basé sur [http://www.openhab.org/ OpenHab]&lt;br /&gt;
* Réalisation d&#039;une interaction avec les lampes [http://meethue.com/ Philips Hue]&lt;br /&gt;
* Réalisation d&#039;un plugin permettant de controler des caméras de surveillance D-Link&lt;br /&gt;
* Amélioration de la télécommande Android developpé par la &amp;quot;Team-XBMC&amp;quot; : &lt;br /&gt;
**Ajout d&#039;un système permettant de rendre la télécommande réflexive&lt;br /&gt;
**Ajout d&#039;une fonction NFC permettant de lancer de la musique (par genre ou album)&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spécifications =&lt;br /&gt;
== Plugin OpenHab ==&lt;br /&gt;
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. &lt;br /&gt;
===Principe de fonctionnement===&lt;br /&gt;
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grace à celui-ci, l&#039;utilisateur est en mesure de consulter et d&#039;agir sur les l&#039;états des objets connectés gérés par son serveur openHAB &amp;lt;br/&amp;gt;&lt;br /&gt;
La communication entre le plugin et le serveur openHab est réalisée à l&#039;aide de [http://github.com/openhab/openhab/wiki/REST-API l&#039;API REST] disponible sur les serveur openHAB (la connexion utilisée est du type JSON-RPC). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Architecture logicielle ===&lt;br /&gt;
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt; &lt;br /&gt;
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : &lt;br /&gt;
* Le premier est l&#039;OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d&#039;objets disponibles dans un serveur openHab.&lt;br /&gt;
* Le second est le Framework [http://github.com/romanvm/PyXBMCt PyXBMCt] développé par Roman Miroshnychenko. Celui-ci permet de réaliser des interfaces graphiques pour XBMC directement en python. &lt;br /&gt;
* Le troisième est le composant principal. Il gère l&#039;affichage et l&#039;envoi des requêtes nécéssaires pour modéliser l&#039;habitation dans XBMC.&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
Les sources sont disponibles sur le dépôt de sources suivant : https://bitbucket.org/xbmcproject/xbmc/src&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Plugin==== &lt;br /&gt;
L&#039;installation du plugin : &amp;lt;br/&amp;gt;&lt;br /&gt;
1) Récupérer l&#039;archive zip du plugin : [http://bitbucket.org/xbmcproject/xbmc-openhab-plugin/get/e94f369ef62d.zip openHab XBMC plugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) System -&amp;gt; Addons -&amp;gt; Install from ZIP file -&amp;gt; choose openHab_XBMC_plugin.zip -&amp;gt; Validate&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration : &amp;lt;br/&amp;gt;&lt;br /&gt;
Par défaut, le plugin utilise les valeurs suivantes : &lt;br /&gt;
* Adresse serveur : 127.0.0.1&lt;br /&gt;
* Port du serveur : 8080&lt;br /&gt;
* Nom du serveur : demo&lt;br /&gt;
* Id du serveur : demo&lt;br /&gt;
Ces valeurs sont modifiables dans les paramètres du plugin.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====OpenHab==== &lt;br /&gt;
Les détails concernant l&#039;installation d&#039;OpenHab sont disponible sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aperçu===&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_1.png|Fig 3 : Accueil Add-on|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_2.png|Fig 4 : Vue Etages|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Screenshot_xbmcOpenhab_3.png|Fig 5 : Vue pièces|thumb|left|600px]][[Image:Screenshot_xbmcOpenhab_4.png|Fig 6 : Détails pièces|thumb|center|600px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plugin Philips Hue ==&lt;br /&gt;
== Plugin Caméra de surveillance ==&lt;br /&gt;
== Télécommande ==&lt;br /&gt;
=== Réflexivité ===&lt;br /&gt;
=== NFC ===&lt;br /&gt;
Le module NFC ajouté dans la télécommande Android d&#039;XBMC permet de lancer un artiste ou un type de musique. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Principe de fonctionnement ====&lt;br /&gt;
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisateur à la possibilité de lire et d&#039;écrire un TAG NFC depuis la télécommande d&#039;XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAGs utilisés peuvent être configurés directement depuis la télécommande, qui posséde un lecteur NFC. La communication est réalisée avec [http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 l&#039;API JSON-RPC] disponible sur les instances XBMC.&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Architecture logicielle ====&lt;br /&gt;
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité NFCWriterActivity permet de lire et d&#039;écrire les TAGs NFC. &amp;lt;br/&amp;gt;&lt;br /&gt;
La classe NFCWriterController permet d&#039;envoyer les requêtes de lecture au serveur XBMC. &amp;lt;br/&amp;gt;&lt;br /&gt;
L&#039;activité est lancée par la classe HomeController, lorsque l&#039;utilisateur exécute l&#039;activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture.L&#039;utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le mode écriture peut être activé par l&#039;utilisateur dans les menus musique et genre. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture album :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
*Record 3 : Artist &lt;br /&gt;
*Record 4 : Year&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lecture genre de musique :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Record 0 : Type&lt;br /&gt;
*Record 1 : Id&lt;br /&gt;
*Record 2 : Name&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
==== Aperçu ====&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance vocale ==&lt;br /&gt;
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l&#039;internet des objets.&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
* reconnaissance vocale et gestuelle via fichiers XML&lt;br /&gt;
* reconnaissance faciale avec une Kinect&lt;br /&gt;
* reconnaissance des QRCodes&lt;br /&gt;
&lt;br /&gt;
Les requêtes HTTP générées exécutent des scripts NodeJS pour l&#039;interaction domotique ou la recherche d&#039;information.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture de SARAH repose principalement sur un programme C# et un programme NodeJS :&lt;br /&gt;
&lt;br /&gt;
Le programme C# :&lt;br /&gt;
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP&lt;br /&gt;
* Répond à la requête et produit un retour vocal&lt;br /&gt;
Le programme NodeJS :&lt;br /&gt;
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l&#039;information&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/&lt;br /&gt;
* Microsoft .NET 4.5&lt;br /&gt;
* Microsoft Speech Platform&lt;br /&gt;
* Speech Platform Runtime&lt;br /&gt;
* SDK Kinect (non nécéssaire pour la reconnaissance vocale)&lt;br /&gt;
&lt;br /&gt;
==== Tutoriel ====&lt;br /&gt;
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/&lt;br /&gt;
&lt;br /&gt;
* Télécharger l&#039;archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/&lt;br /&gt;
* Extraire dans un dossier dont le chemin ne comporte pas d&#039;espaces&lt;br /&gt;
* Dans le répertoire &amp;quot;plugins&amp;quot;, créer un dossier &amp;quot;xbmc&amp;quot;&lt;br /&gt;
* Télécharger l&#039;archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc&lt;br /&gt;
* Copier le contenu du répertoire &amp;quot;plugins&amp;quot; de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier &amp;quot;/plugins/xbmc&amp;quot; précédemment créé&lt;br /&gt;
* Modifier le fichier xbmc.prop :&lt;br /&gt;
** remplacer &amp;quot;[FIXME]:[FIXME]&amp;quot; par &amp;quot;127.0.0.1:8077&amp;quot;&lt;br /&gt;
* Décompresser l&#039;archive addonSarahAndXbmc.V1.0.zip présente dans &amp;quot;Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins&amp;quot;&lt;br /&gt;
* Copier le répertoire &amp;quot;sarah.addon&amp;quot; dans le dossier &amp;quot;addons&amp;quot; de XBMC&lt;br /&gt;
&lt;br /&gt;
=== Configuration de XBMC ===&lt;br /&gt;
* System/Services/Webserver&lt;br /&gt;
** Autoriser le contrôle d&#039;XBMC via HTTP&lt;br /&gt;
** Port : 8077&lt;br /&gt;
** Supprimer le nom d&#039;utilisateur&lt;br /&gt;
** Supprimer le mot de passe&lt;br /&gt;
* System/Services/Remote control&lt;br /&gt;
** Tout autoriser&lt;br /&gt;
* System/System/Video output&lt;br /&gt;
** Mode fenêtré&lt;br /&gt;
* System/System/Audio output&lt;br /&gt;
** Play GUI Sounds : Never&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Vérification de la configuration&lt;br /&gt;
** &amp;quot;localhost:8077&amp;quot; doit vous rediriger vers l&#039;interface d&#039;XBMC&lt;br /&gt;
** &amp;quot;localhost:8080&amp;quot; doit afficher l&#039;interface web de SARAH&lt;br /&gt;
*** Sur l&#039;interface web cliquer sur l&#039;icône &amp;quot;actualiser&amp;quot; du plugin XBMC -&amp;gt; icône &amp;quot;planète&amp;quot; (documentation) -&amp;gt; &amp;quot;Test de la configuration&amp;quot; et vérifier que tous les contrôles soient OK&lt;br /&gt;
&lt;br /&gt;
=== Exécution ===&lt;br /&gt;
* Dans l&#039;archive &amp;quot;WSRRelease314&amp;quot;, lancer &amp;quot;Server_NodeJS.cmd&amp;quot;&lt;br /&gt;
* Lancer &amp;quot;Client_Microphone.cmd&amp;quot;&lt;br /&gt;
* Pour tester, dire &amp;quot;Sarah, il est quelle heure ?&amp;quot;&lt;br /&gt;
* Si Sarah répond, lancer XBMC&lt;br /&gt;
* Dire &amp;quot;Sarah, active le mode XBMC&amp;quot;&lt;br /&gt;
* À partir d&#039;ici, toutes les commandes de Sarah sont utilisables (récapitulatif ici : https://github.com/PasDeBol/Sarah-Plugin-Xbmc/blob/master/info/liste%20compl%C3%A8te%20des%20commandes.txt)&lt;br /&gt;
&lt;br /&gt;
=== Ajouter de commandes vocales dans SARAH ===&lt;br /&gt;
* Ouvrir le fichier &amp;quot;WSRRelease314/plugins/xbmc/xbmc.xml&amp;quot;&lt;br /&gt;
* Ajouter une ligne : &amp;lt;item&amp;gt;(1)&amp;lt;tag&amp;gt;out.action.action=&amp;quot;(2)&amp;quot;&amp;lt;/tag&amp;gt;&amp;lt;tag&amp;gt;out.action.xbmc=&amp;quot;(3)&amp;quot; &amp;lt;/tag&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l&#039;application XBMC)&lt;br /&gt;
** (2) : l&#039;action SARAH correspondant à votre commande&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16158</id>
		<title>Projet biometrie-2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16158"/>
		<updated>2014-03-17T13:52:22Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Serrure faciale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet biométrie 2013-2014&lt;br /&gt;
= Présentation=&lt;br /&gt;
==Sujet==&lt;br /&gt;
Application android de serrure vocale et faciale.&lt;br /&gt;
&lt;br /&gt;
Dépot git [https://github.com/thomasNDS/biometry-lock-facial-and-vocal]&lt;br /&gt;
&lt;br /&gt;
==Technologies ==&lt;br /&gt;
* Android&lt;br /&gt;
* OpenCV&lt;br /&gt;
* Lium&lt;br /&gt;
* Eclipse&lt;br /&gt;
* git&lt;br /&gt;
=Sous projets =&lt;br /&gt;
== IHM ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Walid&lt;br /&gt;
* Elisa&lt;br /&gt;
===Sujet ===&lt;br /&gt;
* Acquisition et comparaison de visages et voix avec la base de données&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://developer.android.com/tools/sdk/eclipse-adt.html ADT]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Interface générale ====&lt;br /&gt;
* Création d&#039;une interface d&#039;accueil (choix enregistrement ou identification)&lt;br /&gt;
==== Acquisition des données ====&lt;br /&gt;
* Interface globale pour l&#039;acquisition de visage et de voix&lt;br /&gt;
** Ovale fixe sur l&#039;écran pour centrer la tête de l&#039;utilisateur&lt;br /&gt;
** Texte prédéfini à lire pendant l&#039;acquisition faciale&lt;br /&gt;
** Prise de photos en rafale pendant la lecture&lt;br /&gt;
* Enregistrement dans la base de données de l&#039;image et du fichier son&lt;br /&gt;
==== Identification ==== &lt;br /&gt;
* Interface de sélection de profil&lt;br /&gt;
** Nom et Prénom&lt;br /&gt;
* Bouton de déconnexion&lt;br /&gt;
&lt;br /&gt;
== Serrure vocale ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Nicolas&lt;br /&gt;
* Morgan&lt;br /&gt;
* Lotfi&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure vocale : &lt;br /&gt;
* Enrôlement du locuteur&lt;br /&gt;
* Identification du locuteur&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://www-lium.univ-lemans.fr/diarization/doku.php/welcome LIUM speaker]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Enrôlement du locuteur ====&lt;br /&gt;
* Enregistrement de la parole du locuteur (création d&#039;un fichier wav contenant la parole du locuteur)&lt;br /&gt;
* Transcription du fichier wav en mfcc [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Puis [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
==== Identification du locuteur ==== &lt;br /&gt;
* Enregistrement de la parole du locuteur (récupération d&#039;un fichier wav)&lt;br /&gt;
* Transcription du fichier wav en seg [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Identification du locuteur [http://www-lium.univ-lemans.fr/diarization/doku.php/speaker_identification lienLyum]&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance de visages ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Rebecca&lt;br /&gt;
* Thomas&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure faciale :&lt;br /&gt;
* Ajout d&#039;un individu dans la base de donnée&lt;br /&gt;
* Authentification d&#039;un individus&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
* Reconnaissance de visage avec OpenCV&lt;br /&gt;
&lt;br /&gt;
=== Tâches ===&lt;br /&gt;
*Identification de la personne (authentification, identif sans connaissance, classe de rejet)&lt;br /&gt;
*BD : avec tous les visages (plusieurs photos par personne (10 avec la même position))&lt;br /&gt;
*Authentification&lt;br /&gt;
*Présentation de la personne, choix entre plusieurs profils, ok ou rejet&lt;br /&gt;
*2 phases : apprentissage et évaluation&lt;br /&gt;
*Algo : entrainement des modèles et évaluation&lt;br /&gt;
*Capture du visage + extraction des points d’intérêt (openCV)&lt;br /&gt;
*Tester rejet avec utilisateur sans profil&lt;br /&gt;
*Verifier centrage du visage&lt;br /&gt;
===Etapes===&lt;br /&gt;
*Regarder projet de l’an passé&lt;br /&gt;
*Tuto de openCV/Android&lt;br /&gt;
*Commencer application : &lt;br /&gt;
*Saisie d’image (prise photo + BD)&lt;br /&gt;
*Points d’intérêt (openCV ?)&lt;br /&gt;
*Authentification (entrainement et évaluation)&lt;br /&gt;
*Intégration avec IHM&lt;br /&gt;
*Multi-image (si simple)&lt;br /&gt;
*Identification avec rejet&lt;br /&gt;
*Identification sans rejet&lt;br /&gt;
&lt;br /&gt;
===Tutoriel: installation du NDK et configuration avec Eclipse ===&lt;br /&gt;
* Téléchargement du NDK [http://developer.android.com/tools/sdk/ndk/index.html#Installing]&lt;br /&gt;
* Extraire le dossier&lt;br /&gt;
* Dans Eclipse : Window &amp;gt; Preferences &amp;gt; Android &amp;gt; NDK coller le path du lien vers le dossier d&#039;installation&lt;br /&gt;
* Dans le projet : clic droit sur le projet &amp;gt; project properties &amp;gt; C/C++ Build &amp;gt; Tool Chain Editor et selectionné Android Builder en tant que builder.&lt;br /&gt;
* Tuto pour installer OpenCV [http://www.seneschal.fr/index.php/recherches/84-installation-android-et-opencv-pour-android]&lt;br /&gt;
&lt;br /&gt;
=Projets des années passées =&lt;br /&gt;
* Reconnaissance faciale [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_RECONNAISSANCE_FACIALE]&lt;br /&gt;
* Reconnaissance de signatures [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_SIGNATURES]&lt;br /&gt;
&lt;br /&gt;
=Avancement=&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
* Constitution des groupes&lt;br /&gt;
* Prise en main du SDK android&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK et connexion nos téléphones&lt;br /&gt;
* Installation et configuration du NDK android&lt;br /&gt;
* Installation de la librairie OpenCV pour android&lt;br /&gt;
* Etude des projets des années passées&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK &lt;br /&gt;
* Installation de [http://developer.android.com/tools/help/adb.html adb]&lt;br /&gt;
* Connexion des téléphones via adb&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Configuration du système de gestion de version&lt;br /&gt;
* Premiers tests avec openCV&lt;br /&gt;
* Enregistrement d&#039;images dans l&#039;application en utilisant l&#039;appareil photo&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Recherche de projets similaires&lt;br /&gt;
* Etude de l&#039;existant&lt;br /&gt;
* Test de l&#039;application utilisant la comparaison de scènes&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Interruption pédagogique===&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Premier test de l&#039;application utilisant HAAR&lt;br /&gt;
* Correction des bugs&lt;br /&gt;
* Configuration des environnements de développement&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Finalisation de l&#039;application &lt;br /&gt;
* Documentation sur les algorithmes&lt;br /&gt;
* Intégration avec les autres parties&lt;br /&gt;
* Préparation de la soutenance&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16157</id>
		<title>Projet biometrie-2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16157"/>
		<updated>2014-03-17T13:51:22Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Serrure faciale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet biométrie 2013-2014&lt;br /&gt;
= Présentation=&lt;br /&gt;
==Sujet==&lt;br /&gt;
Application android de serrure vocale et faciale.&lt;br /&gt;
&lt;br /&gt;
Dépot git [https://github.com/thomasNDS/biometry-lock-facial-and-vocal]&lt;br /&gt;
&lt;br /&gt;
==Technologies ==&lt;br /&gt;
* Android&lt;br /&gt;
* OpenCV&lt;br /&gt;
* Lium&lt;br /&gt;
* Eclipse&lt;br /&gt;
* git&lt;br /&gt;
=Sous projets =&lt;br /&gt;
== IHM ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Walid&lt;br /&gt;
* Elisa&lt;br /&gt;
===Sujet ===&lt;br /&gt;
* Acquisition et comparaison de visages et voix avec la base de données&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://developer.android.com/tools/sdk/eclipse-adt.html ADT]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Interface générale ====&lt;br /&gt;
* Création d&#039;une interface d&#039;accueil (choix enregistrement ou identification)&lt;br /&gt;
==== Acquisition des données ====&lt;br /&gt;
* Interface globale pour l&#039;acquisition de visage et de voix&lt;br /&gt;
** Ovale fixe sur l&#039;écran pour centrer la tête de l&#039;utilisateur&lt;br /&gt;
** Texte prédéfini à lire pendant l&#039;acquisition faciale&lt;br /&gt;
** Prise de photos en rafale pendant la lecture&lt;br /&gt;
* Enregistrement dans la base de données de l&#039;image et du fichier son&lt;br /&gt;
==== Identification ==== &lt;br /&gt;
* Interface de sélection de profil&lt;br /&gt;
** Nom et Prénom&lt;br /&gt;
* Bouton de déconnexion&lt;br /&gt;
&lt;br /&gt;
== Serrure vocale ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Nicolas&lt;br /&gt;
* Morgan&lt;br /&gt;
* Lotfi&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure vocale : &lt;br /&gt;
* Enrôlement du locuteur&lt;br /&gt;
* Identification du locuteur&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://www-lium.univ-lemans.fr/diarization/doku.php/welcome LIUM speaker]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Enrôlement du locuteur ====&lt;br /&gt;
* Enregistrement de la parole du locuteur (création d&#039;un fichier wav contenant la parole du locuteur)&lt;br /&gt;
* Transcription du fichier wav en mfcc [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Puis [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
==== Identification du locuteur ==== &lt;br /&gt;
* Enregistrement de la parole du locuteur (récupération d&#039;un fichier wav)&lt;br /&gt;
* Transcription du fichier wav en seg [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Identification du locuteur [http://www-lium.univ-lemans.fr/diarization/doku.php/speaker_identification lienLyum]&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance de visages ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Rebecca&lt;br /&gt;
* Thomas&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure faciale :&lt;br /&gt;
* Ajout d&#039;un individu dans la base de donnée&lt;br /&gt;
* Authentification d&#039;un individus&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
* Reconnaissance de visage avec OpenCV&lt;br /&gt;
&lt;br /&gt;
=== Tâches ===&lt;br /&gt;
*Identification de la personne (authentification, identif sans connaissance, classe de rejet)&lt;br /&gt;
*BD : avec tous les visages (plusieurs photos par personne (10 avec la même position))&lt;br /&gt;
*Authentification&lt;br /&gt;
*Présentation de la personne, choix entre plusieurs profils, ok ou rejet&lt;br /&gt;
*2 phases : apprentissage et évaluation&lt;br /&gt;
*Algo : entrainement des modèles et évaluation&lt;br /&gt;
*Capture du visage + extraction des points d’intérêt (openCV)&lt;br /&gt;
*Tester rejet avec utilisateur sans profil&lt;br /&gt;
*Verifier centrage du visage&lt;br /&gt;
===Etapes===&lt;br /&gt;
*Regarder projet de l’an passé&lt;br /&gt;
*Tuto de openCV/Android&lt;br /&gt;
*Commencer application : &lt;br /&gt;
*Saisie d’image (prise photo + BD)&lt;br /&gt;
*Points d’intérêt (openCV ?)&lt;br /&gt;
*Authentification (entrainement et évaluation)&lt;br /&gt;
*Intégration avec IHM&lt;br /&gt;
*Multi-image (si simple)&lt;br /&gt;
*Identification avec rejet&lt;br /&gt;
*Identification sans rejet&lt;br /&gt;
&lt;br /&gt;
===Tutoriel: installation du NDK et configuration avec Eclipse ===&lt;br /&gt;
* Téléchargement du NDK [http://developer.android.com/tools/sdk/ndk/index.html#Installing]&lt;br /&gt;
* Extraire le dossier&lt;br /&gt;
* Dans Eclipse : Window &amp;gt; Preferences &amp;gt; Android &amp;gt; NDK coller le path du lien vers le dossier d&#039;installation&lt;br /&gt;
* Dans le projet : clic droit sur le projet &amp;gt; project properties &amp;gt; C/C++ Build &amp;gt; Tool Chain Editor et selectionné Android Builder en tant que builder.&lt;br /&gt;
* Tuto pour installer OpenCV [http://www.seneschal.fr/index.php/recherches/84-installation-android-et-opencv-pour-android]&lt;br /&gt;
&lt;br /&gt;
=Projets des années passées =&lt;br /&gt;
* Reconnaissance faciale [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_RECONNAISSANCE_FACIALE]&lt;br /&gt;
* Reconnaissance de signatures [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_SIGNATURES]&lt;br /&gt;
&lt;br /&gt;
=Avancement=&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
* Constitution des groupes&lt;br /&gt;
* Prise en main du SDK android&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK et connexion nos téléphones&lt;br /&gt;
* Installation et configuration du NDK android&lt;br /&gt;
* Installation de la librairie OpenCV pour android&lt;br /&gt;
* Etude des projets des années passées&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK &lt;br /&gt;
* Installation de [http://developer.android.com/tools/help/adb.html adb]&lt;br /&gt;
* Connexion des téléphones via adb&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Configuration du système de gestion de version&lt;br /&gt;
* Premiers tests avec openCV&lt;br /&gt;
* Enregistrement d&#039;images dans l&#039;application en utilisant l&#039;appareil photo&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Recherche de projets similaires&lt;br /&gt;
* Etude de l&#039;existant&lt;br /&gt;
* Test de l&#039;application utilisant la comparaison de scènes&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Interruption pédagogique===&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Premier test de l&#039;application utilisant HAAR&lt;br /&gt;
* Correction des bugs&lt;br /&gt;
* Configuration des environnements de développement&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16156</id>
		<title>Projet biometrie-2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16156"/>
		<updated>2014-03-17T13:50:47Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Serrure faciale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet biométrie 2013-2014&lt;br /&gt;
= Présentation=&lt;br /&gt;
==Sujet==&lt;br /&gt;
Application android de serrure vocale et faciale.&lt;br /&gt;
&lt;br /&gt;
Dépot git [https://github.com/thomasNDS/biometry-lock-facial-and-vocal]&lt;br /&gt;
&lt;br /&gt;
==Technologies ==&lt;br /&gt;
* Android&lt;br /&gt;
* OpenCV&lt;br /&gt;
* Lium&lt;br /&gt;
* Eclipse&lt;br /&gt;
* git&lt;br /&gt;
=Sous projets =&lt;br /&gt;
== IHM ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Walid&lt;br /&gt;
* Elisa&lt;br /&gt;
===Sujet ===&lt;br /&gt;
* Acquisition et comparaison de visages et voix avec la base de données&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://developer.android.com/tools/sdk/eclipse-adt.html ADT]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Interface générale ====&lt;br /&gt;
* Création d&#039;une interface d&#039;accueil (choix enregistrement ou identification)&lt;br /&gt;
==== Acquisition des données ====&lt;br /&gt;
* Interface globale pour l&#039;acquisition de visage et de voix&lt;br /&gt;
** Ovale fixe sur l&#039;écran pour centrer la tête de l&#039;utilisateur&lt;br /&gt;
** Texte prédéfini à lire pendant l&#039;acquisition faciale&lt;br /&gt;
** Prise de photos en rafale pendant la lecture&lt;br /&gt;
* Enregistrement dans la base de données de l&#039;image et du fichier son&lt;br /&gt;
==== Identification ==== &lt;br /&gt;
* Interface de sélection de profil&lt;br /&gt;
** Nom et Prénom&lt;br /&gt;
* Bouton de déconnexion&lt;br /&gt;
&lt;br /&gt;
== Serrure vocale ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Nicolas&lt;br /&gt;
* Morgan&lt;br /&gt;
* Lotfi&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure vocale : &lt;br /&gt;
* Enrôlement du locuteur&lt;br /&gt;
* Identification du locuteur&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://www-lium.univ-lemans.fr/diarization/doku.php/welcome LIUM speaker]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Enrôlement du locuteur ====&lt;br /&gt;
* Enregistrement de la parole du locuteur (création d&#039;un fichier wav contenant la parole du locuteur)&lt;br /&gt;
* Transcription du fichier wav en mfcc [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Puis [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
==== Identification du locuteur ==== &lt;br /&gt;
* Enregistrement de la parole du locuteur (récupération d&#039;un fichier wav)&lt;br /&gt;
* Transcription du fichier wav en seg [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Identification du locuteur [http://www-lium.univ-lemans.fr/diarization/doku.php/speaker_identification lienLyum]&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance de visages ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Rebecca&lt;br /&gt;
* Thomas&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure faciale :&lt;br /&gt;
* Ajout d&#039;un individu dans la base de donnée&lt;br /&gt;
* Authentification d&#039;un individus&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
* Reconnaissance de visage avec OpenCV&lt;br /&gt;
&lt;br /&gt;
=== Tâches ===&lt;br /&gt;
*Identification de la personne (authentification, identif sans connaissance, classe de rejet)&lt;br /&gt;
*BD : avec tous les visages (plusieurs photos par personne (10 avec la même position))&lt;br /&gt;
*Authentification&lt;br /&gt;
*Présentation de la personne, choix entre plusieurs profils, ok ou rejet&lt;br /&gt;
*2 phases : apprentissage et évaluation&lt;br /&gt;
*Algo : entrainement des modèles et évaluation&lt;br /&gt;
*Capture du visage + extraction des points d’intérêt (openCV)&lt;br /&gt;
*Tester rejet avec utilisateur sans profil&lt;br /&gt;
*Verifier centrage du visage&lt;br /&gt;
===Etapes===&lt;br /&gt;
*Regarder projet de l’an passé&lt;br /&gt;
*Tuto de openCV/Android&lt;br /&gt;
*Commencer application : &lt;br /&gt;
*Saisie d’image (prise photo + BD)&lt;br /&gt;
*Points d’intérêt (openCV ?)&lt;br /&gt;
*Authentification (entrainement et évaluation)&lt;br /&gt;
*Intégration avec IHM&lt;br /&gt;
*Multi-image (si simple)&lt;br /&gt;
*Identification avec rejet&lt;br /&gt;
*Identification sans rejet&lt;br /&gt;
&lt;br /&gt;
===Tutoriel: installation du NDK et configuration avec Eclipse ===&lt;br /&gt;
* Téléchargement du NDK [http://developer.android.com/tools/sdk/ndk/index.html#Installing]&lt;br /&gt;
* Extraire le dossier&lt;br /&gt;
* Dans Eclipse : Window &amp;gt; Preferences &amp;gt; Android &amp;gt; NDK coller le path du lien vers le dossier d&#039;installation&lt;br /&gt;
* Dans le projet : clic droit sur le projet &amp;gt; project properties &amp;gt; C/C++ Build &amp;gt; Tool Chain Editor et selectionné Android Builder en tant que builder.&lt;br /&gt;
* Tuto pour installer OpenCV [http://www.seneschal.fr/index.php/recherches/84-installation-android-et-opencv-pour-android]&lt;br /&gt;
&lt;br /&gt;
=Projets des années passées =&lt;br /&gt;
* Reconnaissance faciale [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_RECONNAISSANCE_FACIALE]&lt;br /&gt;
* Reconnaissance de signatures [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_SIGNATURES]&lt;br /&gt;
&lt;br /&gt;
=Avancement=&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
* Constitution des groupes&lt;br /&gt;
* Prise en main du SDK android&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK et connexion nos téléphones&lt;br /&gt;
* Installation et configuration du NDK android&lt;br /&gt;
* Installation de la librairie OpenCV pour android&lt;br /&gt;
* Etude des projets des années passées&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK &lt;br /&gt;
* Installation de [http://developer.android.com/tools/help/adb.html adb]&lt;br /&gt;
* Connexion des téléphones via adb&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Configuration du système de gestion de version&lt;br /&gt;
* Premiers tests avec openCV&lt;br /&gt;
* Enregistrement d&#039;images dans l&#039;application en utilisant l&#039;appareil photo&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Recherche de projets similaires&lt;br /&gt;
* Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Interruption pédagogique===&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Premier test de l&#039;application utilisant HAAR&lt;br /&gt;
* Correction des bugs&lt;br /&gt;
* Configuration des environnements de développement&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16155</id>
		<title>Projet biometrie-2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16155"/>
		<updated>2014-03-17T13:49:26Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet biométrie 2013-2014&lt;br /&gt;
= Présentation=&lt;br /&gt;
==Sujet==&lt;br /&gt;
Application android de serrure vocale et faciale.&lt;br /&gt;
&lt;br /&gt;
Dépot git [https://github.com/thomasNDS/biometry-lock-facial-and-vocal]&lt;br /&gt;
&lt;br /&gt;
==Technologies ==&lt;br /&gt;
* Android&lt;br /&gt;
* OpenCV&lt;br /&gt;
* Lium&lt;br /&gt;
* Eclipse&lt;br /&gt;
* git&lt;br /&gt;
=Sous projets =&lt;br /&gt;
== IHM ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Walid&lt;br /&gt;
* Elisa&lt;br /&gt;
===Sujet ===&lt;br /&gt;
* Acquisition et comparaison de visages et voix avec la base de données&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://developer.android.com/tools/sdk/eclipse-adt.html ADT]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Interface générale ====&lt;br /&gt;
* Création d&#039;une interface d&#039;accueil (choix enregistrement ou identification)&lt;br /&gt;
==== Acquisition des données ====&lt;br /&gt;
* Interface globale pour l&#039;acquisition de visage et de voix&lt;br /&gt;
** Ovale fixe sur l&#039;écran pour centrer la tête de l&#039;utilisateur&lt;br /&gt;
** Texte prédéfini à lire pendant l&#039;acquisition faciale&lt;br /&gt;
** Prise de photos en rafale pendant la lecture&lt;br /&gt;
* Enregistrement dans la base de données de l&#039;image et du fichier son&lt;br /&gt;
==== Identification ==== &lt;br /&gt;
* Interface de sélection de profil&lt;br /&gt;
** Nom et Prénom&lt;br /&gt;
* Bouton de déconnexion&lt;br /&gt;
&lt;br /&gt;
== Serrure vocale ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Nicolas&lt;br /&gt;
* Morgan&lt;br /&gt;
* Lotfi&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure vocale : &lt;br /&gt;
* Enrôlement du locuteur&lt;br /&gt;
* Identification du locuteur&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://www-lium.univ-lemans.fr/diarization/doku.php/welcome LIUM speaker]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Enrôlement du locuteur ====&lt;br /&gt;
* Enregistrement de la parole du locuteur (création d&#039;un fichier wav contenant la parole du locuteur)&lt;br /&gt;
* Transcription du fichier wav en mfcc [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Puis [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
==== Identification du locuteur ==== &lt;br /&gt;
* Enregistrement de la parole du locuteur (récupération d&#039;un fichier wav)&lt;br /&gt;
* Transcription du fichier wav en seg [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Identification du locuteur [http://www-lium.univ-lemans.fr/diarization/doku.php/speaker_identification lienLyum]&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance de visages ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Rebecca&lt;br /&gt;
* Thomas&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure faciale :&lt;br /&gt;
* Ajout d&#039;un individu dans la base de donnée&lt;br /&gt;
* Authentification d&#039;un individus&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
* Reconnaissance de visage avec OpenCV&lt;br /&gt;
&lt;br /&gt;
=== Tâches ===&lt;br /&gt;
*Identification de la personne (authentification, identif sans connaissance, classe de rejet)&lt;br /&gt;
*BD : avec tous les visages (plusieurs photos par personne (10 avec la même position))&lt;br /&gt;
*Authentification&lt;br /&gt;
*Présentation de la personne, choix entre plusieurs profils, ok ou rejet&lt;br /&gt;
*2 phases : apprentissage et évaluation&lt;br /&gt;
*Algo : entrainement des modèles et évaluation&lt;br /&gt;
*Capture du visage + extraction des points d’intérêt (openCV)&lt;br /&gt;
*Tester rejet avec utilisateur sans profil&lt;br /&gt;
*Verifier centrage du visage&lt;br /&gt;
===Etapes===&lt;br /&gt;
*Regarder projet de l’an passé&lt;br /&gt;
*Tuto de openCV/Android&lt;br /&gt;
*Commencer application : &lt;br /&gt;
*Saisie d’image (prise photo + BD)&lt;br /&gt;
*Points d’intérêt (openCV ?)&lt;br /&gt;
*Authentification (entrainement et évaluation)&lt;br /&gt;
*Intégration avec IHM&lt;br /&gt;
*Multi-image (si simple)&lt;br /&gt;
*Identification avec rejet&lt;br /&gt;
*Identification sans rejet&lt;br /&gt;
&lt;br /&gt;
===Tutoriel: installation du NDK et configuration avec Eclipse ===&lt;br /&gt;
* Téléchargement du NDK [http://developer.android.com/tools/sdk/ndk/index.html#Installing]&lt;br /&gt;
* Extraire le dossier&lt;br /&gt;
* Dans Eclipse : Window &amp;gt; Preferences &amp;gt; Android &amp;gt; NDK coller le path du lien vers le dossier d&#039;installation&lt;br /&gt;
* Dans le projet : clic droit sur le projet &amp;gt; project properties &amp;gt; C/C++ Build &amp;gt; Tool Chain Editor et selectionné Android Builder en tant que builder.&lt;br /&gt;
* Tuto pour installer OpenCV [http://www.seneschal.fr/index.php/recherches/84-installation-android-et-opencv-pour-android]&lt;br /&gt;
&lt;br /&gt;
=Projets des années passées =&lt;br /&gt;
* Reconnaissance faciale [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_RECONNAISSANCE_FACIALE]&lt;br /&gt;
* Reconnaissance de signatures [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_SIGNATURES]&lt;br /&gt;
&lt;br /&gt;
=Avancement=&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
* Constitution des groupes&lt;br /&gt;
* Prise en main du SDK android&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK et connexion nos téléphones&lt;br /&gt;
* Installation et configuration du NDK android&lt;br /&gt;
* Installation de la librairie OpenCV pour android&lt;br /&gt;
* Etude des projets des années passées&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK &lt;br /&gt;
* Installation de [http://developer.android.com/tools/help/adb.html adb]&lt;br /&gt;
* Connexion des téléphones via adb&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Configuration du système de gestion de version&lt;br /&gt;
* Premiers tests avec openCV&lt;br /&gt;
* Enregistrement d&#039;images dans l&#039;application en utilisant l&#039;appareil photo&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Recherche de projets similaires&lt;br /&gt;
* Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Interruption pédagogique===&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16154</id>
		<title>Projet biometrie-2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16154"/>
		<updated>2014-03-17T13:48:35Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet biométrie 2013-2014&lt;br /&gt;
= Présentation=&lt;br /&gt;
==Sujet==&lt;br /&gt;
Application android de serrure vocale et faciale.&lt;br /&gt;
&lt;br /&gt;
Dépot git [https://github.com/thomasNDS/biometry-lock-facial-and-vocal]&lt;br /&gt;
&lt;br /&gt;
==Technologies ==&lt;br /&gt;
* Android&lt;br /&gt;
* OpenCV&lt;br /&gt;
* Lium&lt;br /&gt;
* Eclipse&lt;br /&gt;
* git&lt;br /&gt;
=Sous projets =&lt;br /&gt;
== IHM ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Walid&lt;br /&gt;
* Elisa&lt;br /&gt;
===Sujet ===&lt;br /&gt;
* Acquisition et comparaison de visages et voix avec la base de données&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://developer.android.com/tools/sdk/eclipse-adt.html ADT]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Interface générale ====&lt;br /&gt;
* Création d&#039;une interface d&#039;accueil (choix enregistrement ou identification)&lt;br /&gt;
==== Acquisition des données ====&lt;br /&gt;
* Interface globale pour l&#039;acquisition de visage et de voix&lt;br /&gt;
** Ovale fixe sur l&#039;écran pour centrer la tête de l&#039;utilisateur&lt;br /&gt;
** Texte prédéfini à lire pendant l&#039;acquisition faciale&lt;br /&gt;
** Prise de photos en rafale pendant la lecture&lt;br /&gt;
* Enregistrement dans la base de données de l&#039;image et du fichier son&lt;br /&gt;
==== Identification ==== &lt;br /&gt;
* Interface de sélection de profil&lt;br /&gt;
** Nom et Prénom&lt;br /&gt;
* Bouton de déconnexion&lt;br /&gt;
&lt;br /&gt;
== Serrure vocale ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Nicolas&lt;br /&gt;
* Morgan&lt;br /&gt;
* Lotfi&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure vocale : &lt;br /&gt;
* Enrôlement du locuteur&lt;br /&gt;
* Identification du locuteur&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://www-lium.univ-lemans.fr/diarization/doku.php/welcome LIUM speaker]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Enrôlement du locuteur ====&lt;br /&gt;
* Enregistrement de la parole du locuteur (création d&#039;un fichier wav contenant la parole du locuteur)&lt;br /&gt;
* Transcription du fichier wav en mfcc [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Puis [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
==== Identification du locuteur ==== &lt;br /&gt;
* Enregistrement de la parole du locuteur (récupération d&#039;un fichier wav)&lt;br /&gt;
* Transcription du fichier wav en seg [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Identification du locuteur [http://www-lium.univ-lemans.fr/diarization/doku.php/speaker_identification lienLyum]&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance de visages ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Rebecca&lt;br /&gt;
* Thomas&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure faciale :&lt;br /&gt;
* Ajout d&#039;un individu dans la base de donnée&lt;br /&gt;
* Authentification d&#039;un individus&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
* Reconnaissance de visage avec OpenCV&lt;br /&gt;
&lt;br /&gt;
=== Tâches ===&lt;br /&gt;
*Identification de la personne (authentification, identif sans connaissance, classe de rejet)&lt;br /&gt;
*BD : avec tous les visages (plusieurs photos par personne (10 avec la même position))&lt;br /&gt;
*Authentification&lt;br /&gt;
*Présentation de la personne, choix entre plusieurs profils, ok ou rejet&lt;br /&gt;
*2 phases : apprentissage et évaluation&lt;br /&gt;
*Algo : entrainement des modèles et évaluation&lt;br /&gt;
*Capture du visage + extraction des points d’intérêt (openCV)&lt;br /&gt;
*Tester rejet avec utilisateur sans profil&lt;br /&gt;
*Verifier centrage du visage&lt;br /&gt;
===Etapes===&lt;br /&gt;
*Regarder projet de l’an passé&lt;br /&gt;
*Tuto de openCV/Android&lt;br /&gt;
*Commencer application : &lt;br /&gt;
*Saisie d’image (prise photo + BD)&lt;br /&gt;
*Points d’intérêt (openCV ?)&lt;br /&gt;
*Authentification (entrainement et évaluation)&lt;br /&gt;
*Intégration avec IHM&lt;br /&gt;
*Multi-image (si simple)&lt;br /&gt;
*Identification avec rejet&lt;br /&gt;
*Identification sans rejet&lt;br /&gt;
&lt;br /&gt;
===Tutoriel: installation du NDK et configuration avec Eclipse ===&lt;br /&gt;
* Téléchargement du NDK [http://developer.android.com/tools/sdk/ndk/index.html#Installing]&lt;br /&gt;
* Extraire le dossier&lt;br /&gt;
* Dans Eclipse : Window &amp;gt; Preferences &amp;gt; Android &amp;gt; NDK coller le path du lien vers le dossier d&#039;installation&lt;br /&gt;
* Dans le projet : clic droit sur le projet &amp;gt; project properties &amp;gt; C/C++ Build &amp;gt; Tool Chain Editor et selectionné Android Builder en tant que builder.&lt;br /&gt;
* Tuto pour installer OpenCV [http://www.seneschal.fr/index.php/recherches/84-installation-android-et-opencv-pour-android]&lt;br /&gt;
&lt;br /&gt;
=Projets des années passées =&lt;br /&gt;
* Reconnaissance faciale [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_RECONNAISSANCE_FACIALE]&lt;br /&gt;
* Reconnaissance de signatures [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_SIGNATURES]&lt;br /&gt;
&lt;br /&gt;
=Avancement=&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
* Constitution des groupes&lt;br /&gt;
* Prise en main du SDK android&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK et connexion nos téléphones&lt;br /&gt;
* Installation et configuration du NDK android&lt;br /&gt;
* Installation de la librairie OpenCV pour android&lt;br /&gt;
* Etude des projets des années passées&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK &lt;br /&gt;
* Installation de [http://developer.android.com/tools/help/adb.html adb]&lt;br /&gt;
* Connexion des téléphones via adb&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Configuration du système de gestion de version&lt;br /&gt;
* Premiers tests avec openCV&lt;br /&gt;
* Enregistrement d&#039;images dans l&#039;application en utilisant l&#039;appareil photo&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
===Interruption pédagogique===&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16153</id>
		<title>Projet biometrie-2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projet_biometrie-2013-2014&amp;diff=16153"/>
		<updated>2014-03-17T13:45:59Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet biométrie 2013-2014&lt;br /&gt;
= Présentation=&lt;br /&gt;
==Sujet==&lt;br /&gt;
Application android de serrure vocale et faciale.&lt;br /&gt;
&lt;br /&gt;
Dépot git [https://github.com/thomasNDS/biometry-lock-facial-and-vocal]&lt;br /&gt;
&lt;br /&gt;
==Technologies ==&lt;br /&gt;
* Android&lt;br /&gt;
* OpenCV&lt;br /&gt;
* Lium&lt;br /&gt;
* Eclipse&lt;br /&gt;
* git&lt;br /&gt;
=Sous projets =&lt;br /&gt;
== IHM ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Walid&lt;br /&gt;
* Elisa&lt;br /&gt;
===Sujet ===&lt;br /&gt;
* Acquisition et comparaison de visages et voix avec la base de données&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://developer.android.com/tools/sdk/eclipse-adt.html ADT]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Interface générale ====&lt;br /&gt;
* Création d&#039;une interface d&#039;accueil (choix enregistrement ou identification)&lt;br /&gt;
==== Acquisition des données ====&lt;br /&gt;
* Interface globale pour l&#039;acquisition de visage et de voix&lt;br /&gt;
** Ovale fixe sur l&#039;écran pour centrer la tête de l&#039;utilisateur&lt;br /&gt;
** Texte prédéfini à lire pendant l&#039;acquisition faciale&lt;br /&gt;
** Prise de photos en rafale pendant la lecture&lt;br /&gt;
* Enregistrement dans la base de données de l&#039;image et du fichier son&lt;br /&gt;
==== Identification ==== &lt;br /&gt;
* Interface de sélection de profil&lt;br /&gt;
** Nom et Prénom&lt;br /&gt;
* Bouton de déconnexion&lt;br /&gt;
&lt;br /&gt;
== Serrure vocale ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Nicolas&lt;br /&gt;
* Morgan&lt;br /&gt;
* Lotfi&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure vocale : &lt;br /&gt;
* Enrôlement du locuteur&lt;br /&gt;
* Identification du locuteur&lt;br /&gt;
=== Technologies === &lt;br /&gt;
* Utilisation de [http://www-lium.univ-lemans.fr/diarization/doku.php/welcome LIUM speaker]&lt;br /&gt;
=== Etapes ===&lt;br /&gt;
==== Enrôlement du locuteur ====&lt;br /&gt;
* Enregistrement de la parole du locuteur (création d&#039;un fichier wav contenant la parole du locuteur)&lt;br /&gt;
* Transcription du fichier wav en mfcc [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Puis [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
==== Identification du locuteur ==== &lt;br /&gt;
* Enregistrement de la parole du locuteur (récupération d&#039;un fichier wav)&lt;br /&gt;
* Transcription du fichier wav en seg [http://www-lium.univ-lemans.fr/diarization/doku.php/feature_set lienLIUM]&lt;br /&gt;
* Identification du locuteur [http://www-lium.univ-lemans.fr/diarization/doku.php/speaker_identification lienLyum]&lt;br /&gt;
&lt;br /&gt;
== Reconnaissance de visages ==&lt;br /&gt;
===Equipe===&lt;br /&gt;
* Rebecca&lt;br /&gt;
* Thomas&lt;br /&gt;
===Sujet ===&lt;br /&gt;
Serrure faciale :&lt;br /&gt;
* Ajout d&#039;un individu dans la base de donnée&lt;br /&gt;
* Authentification d&#039;un individus&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
* Reconnaissance de visage avec OpenCV&lt;br /&gt;
&lt;br /&gt;
=== Tâches ===&lt;br /&gt;
*Identification de la personne (authentification, identif sans connaissance, classe de rejet)&lt;br /&gt;
*BD : avec tous les visages (plusieurs photos par personne (10 avec la même position))&lt;br /&gt;
*Authentification&lt;br /&gt;
*Présentation de la personne, choix entre plusieurs profils, ok ou rejet&lt;br /&gt;
*2 phases : apprentissage et évaluation&lt;br /&gt;
*Algo : entrainement des modèles et évaluation&lt;br /&gt;
*Capture du visage + extraction des points d’intérêt (openCV)&lt;br /&gt;
*Tester rejet avec utilisateur sans profil&lt;br /&gt;
*Verifier centrage du visage&lt;br /&gt;
===Etapes===&lt;br /&gt;
*Regarder projet de l’an passé&lt;br /&gt;
*Tuto de openCV/Android&lt;br /&gt;
*Commencer application : &lt;br /&gt;
*Saisie d’image (prise photo + BD)&lt;br /&gt;
*Points d’intérêt (openCV ?)&lt;br /&gt;
*Authentification (entrainement et évaluation)&lt;br /&gt;
*Intégration avec IHM&lt;br /&gt;
*Multi-image (si simple)&lt;br /&gt;
*Identification avec rejet&lt;br /&gt;
*Identification sans rejet&lt;br /&gt;
&lt;br /&gt;
===Tutoriel: installation du NDK et configuration avec Eclipse ===&lt;br /&gt;
* Téléchargement du NDK [http://developer.android.com/tools/sdk/ndk/index.html#Installing]&lt;br /&gt;
* Extraire le dossier&lt;br /&gt;
* Dans Eclipse : Window &amp;gt; Preferences &amp;gt; Android &amp;gt; NDK coller le path du lien vers le dossier d&#039;installation&lt;br /&gt;
* Dans le projet : clic droit sur le projet &amp;gt; project properties &amp;gt; C/C++ Build &amp;gt; Tool Chain Editor et selectionné Android Builder en tant que builder.&lt;br /&gt;
* Tuto pour installer OpenCV [http://www.seneschal.fr/index.php/recherches/84-installation-android-et-opencv-pour-android]&lt;br /&gt;
&lt;br /&gt;
=Projets des années passées =&lt;br /&gt;
* Reconnaissance faciale [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_RECONNAISSANCE_FACIALE]&lt;br /&gt;
* Reconnaissance de signatures [http://air.imag.fr/index.php/PAGE_WIKI_ETUDIANTS_2012-13_SIGNATURES]&lt;br /&gt;
&lt;br /&gt;
=Avancement=&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
* Constitution des groupes&lt;br /&gt;
* Prise en main du SDK android&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK et connexion nos téléphones&lt;br /&gt;
* Installation et configuration du NDK android&lt;br /&gt;
* Installation de la librairie OpenCV pour android&lt;br /&gt;
* Etude des projets des années passées&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
* Définitions des tâches&lt;br /&gt;
* Installation et configuration du SDK &lt;br /&gt;
* Installation de [http://developer.android.com/tools/help/adb.html adb]&lt;br /&gt;
* Connexion des téléphones via adb&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
* Configuration du système de gestion de version&lt;br /&gt;
* Premiers tests avec openCV&lt;br /&gt;
* Enregistrement d&#039;images dans l&#039;application en utilisant l&#039;appareil photo&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;br /&gt;
&lt;br /&gt;
==Semaine 7==&lt;br /&gt;
===Serrure faciale===&lt;br /&gt;
&lt;br /&gt;
===Serrure vocale===&lt;br /&gt;
&lt;br /&gt;
===IHM===&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC/FicheSuivi&amp;diff=15970</id>
		<title>Extensions XBMC/FicheSuivi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC/FicheSuivi&amp;diff=15970"/>
		<updated>2014-03-10T08:21:52Z</updated>

		<summary type="html">&lt;p&gt;Rebecca.Poustis: /* Sprint 5 (semaine 9) : 24 au 28 février */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki se veux être une fiche de suivi interactive du &#039;&#039;&#039;projet &amp;quot;extensions XBMC&amp;quot;&#039;&#039;&#039; d&#039;un groupe d&#039;étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. &amp;lt;br/&amp;gt;Revenez donc régulièrement consulter cette page pour suivre ses dernières évolutions, mises à jour et modifications ! Si le sujet de notre projet vous plaît, que vous avez des questions ou remarques, n&#039;hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) &lt;br /&gt;
&lt;br /&gt;
=Le projet de fin d&#039;année en RICM5=&lt;br /&gt;
&lt;br /&gt;
Ce projet, d&#039;une durée de 8 semaines &lt;br /&gt;
&lt;br /&gt;
=Présentation du sujet=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spécifications ==&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe projet=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Team:&#039;&#039;&#039;&lt;br /&gt;
* Nicolas Afonso (Chef de projet)&lt;br /&gt;
* Jean-François Bianco&lt;br /&gt;
* Pierre Lartigue&lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
= Suivi de l&#039;avancement du projet =&lt;br /&gt;
==Sprint 1 (semaine 5) : 27 janvier au 2 février==&lt;br /&gt;
&lt;br /&gt;
Lundi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*MPI et Séminaire &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi : &lt;br /&gt;
*Choix du projet&amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*Recherche documentaire sur les différentes technologies envisagées pour le projet&amp;lt;br/&amp;gt;&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
*Définition des différentes tâches réalisables suite à nos recherches. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 2 (semaine 6) : 3 au 9 février==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Ecrire le cahier des charges du projet afin de chiffrer la durée de chaque tâche et leur priorité&amp;lt;br/&amp;gt;&lt;br /&gt;
*Etudier la réalisation de plugins sur XBMC et réaliser un &#039;&#039;HelloWord&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Commencer les premières tâches décidées dans le cahier des charges&amp;lt;br/&amp;gt;&lt;br /&gt;
Lundi : &amp;lt;br/&amp;gt;&lt;br /&gt;
* MPI et Séminaire &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi: &amp;lt;br/&amp;gt;&lt;br /&gt;
*Finalisation du cahier des charges &amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*Hue : Communication avec le système et découverte plugin XBMC &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Création du plugin, étude approfondie d&#039;OpenHab &amp;lt;br/&amp;gt;&lt;br /&gt;
Jeudi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*MPI &amp;lt;br/&amp;gt;&lt;br /&gt;
Vendredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*Hue : Intégration à XBMC du code python, et configuration de l&#039;interface de paramétrage &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Récupération des Etages de la maison, et affichage dans XBMC&amp;lt;br/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
==Sprint 3 (semaine 7) : 10 au 16 février==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Extension OpenHab : Listes dynamiques des pièces de la maison avec sous menus dynamiques &amp;lt;br/&amp;gt;&lt;br /&gt;
*Utilisation de l’algo de détermination de k couleurs dominantes (méthode basée sur k-means)&amp;lt;br/&amp;gt;&lt;br /&gt;
*Extension Philips Hue : intégration de la synchronisation des lampes avec l’image à l’écran. Prise en compte de la vidéo&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lundi : &amp;lt;br/&amp;gt;&lt;br /&gt;
* MPI et Séminaire &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi :  &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Recherche sur la navigation dans les menus et traitement des exceptions pouvant être générée. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt; &lt;br /&gt;
*OpenHab : Mise en place de la navigation dans les différentes pièces de la maison, et affichage dans le menu de l&#039;ensemble des capteurs. Etude sur l&#039;utilisation de label générique pour l&#039;affichage des informations et des messages d&#039;erreur. &amp;lt;br/&amp;gt;&lt;br /&gt;
Vendredi : &amp;lt;br/&amp;gt;&lt;br /&gt;
*OpenHab : Etude sur les techniques pour réaliser l&#039;interface  XBMC d&#039;une pièce. Prototypage à l&#039;aide d&#039;une librairie python de l&#039;affichage des capteurs. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 4 (semaine 8) : 17 au 23 février==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Extension OpenHab : Récupération et modification des informations des différentes pièces de la maison&lt;br /&gt;
*Extension reflexive remote : Etude de l&#039;existant et compréhension du code&lt;br /&gt;
*Extension caméra de surveillance : Intégration dans XBMC (interaction de l&#039;utilisateur avec la caméra depuis l&#039;interface)&lt;br /&gt;
&lt;br /&gt;
Lundi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : recherche affichage des labels à partir de fichier XML &amp;lt;br/&amp;gt;&lt;br /&gt;
Mardi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : gérer l&#039;affichage des labels et de leurs valeurs, à partir du framework PyXBMCt (http://romanvm.github.io/PyXBMCt/) &amp;lt;br/&amp;gt;&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt; &lt;br /&gt;
* Openhab : gérer l&#039;affichage des labels et de leurs valeurs, mise en œuvre du framework dans l&#039;interface &amp;lt;br/&amp;gt;&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : finalisation de l&#039;affichage des labels et de leurs valeurs, gestion des exceptions et tests du plugin &amp;lt;br/&amp;gt;&lt;br /&gt;
Vendredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Reflexive remote : étude de l&#039;existant&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprint 5 (semaine 9) : 24 au 28 février==&lt;br /&gt;
&#039;&#039;&#039;Objectifs :&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
*Finalisation des plugins : nettoyage et restructuration du code&lt;br /&gt;
*Extension reflexive remote&lt;br /&gt;
*Intégration de NFC&lt;br /&gt;
*Re-priorisation des objectifs&lt;br /&gt;
&lt;br /&gt;
Lundi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* Openhab : écriture de la doc&lt;br /&gt;
* Caméra : auto-configuration &lt;br /&gt;
&lt;br /&gt;
Mardi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* OpenHab : Validation du plugin &lt;br /&gt;
* NFC : Compréhension de NFC et Android&lt;br /&gt;
* Caméra : Finalisation du plugin&lt;br /&gt;
* Re-priorisation des objectifs : rendez-vous avec N. Palix&lt;br /&gt;
&lt;br /&gt;
Mercredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* NFC : Intégration dans la remote&lt;br /&gt;
* Reflexive remote : Ecriture du cahier des charges&lt;br /&gt;
* Reflexive remote : Récupération du menu principal&lt;br /&gt;
&lt;br /&gt;
Jeudi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* NFC : Ecriture d&#039;un tag particulier pour lancer un menu de xbmc&lt;br /&gt;
* Reflexive remote : Intégration de OpenHab&lt;br /&gt;
&lt;br /&gt;
Vendredi :&amp;lt;br/&amp;gt;&lt;br /&gt;
* NFC : finalisation de l&#039;application&lt;br /&gt;
* Reflexive remote : Finalisation, récupération de la liste des addons&lt;br /&gt;
&lt;br /&gt;
=Rendu Final=&lt;br /&gt;
&lt;br /&gt;
= Documents et liens annexes =&lt;/div&gt;</summary>
		<author><name>Rebecca.Poustis</name></author>
	</entry>
</feed>