<?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=Pierre.Lartigue</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=Pierre.Lartigue"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Pierre.Lartigue"/>
	<updated>2026-05-28T22:25:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16458</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16458"/>
		<updated>2014-03-26T23:18:09Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* 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;
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://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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16438</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16438"/>
		<updated>2014-03-26T22:36:28Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* Architecture logicielle */&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;
[[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;
&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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16437</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16437"/>
		<updated>2014-03-26T22:29:24Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* 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;
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: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;
&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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16434</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16434"/>
		<updated>2014-03-26T22:27:47Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* 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;
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;
==== 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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16431</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16431"/>
		<updated>2014-03-26T22:27:10Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* Architecture logicielle */&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;
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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16430</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16430"/>
		<updated>2014-03-26T22:26:46Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* Plugin Caméra de surveillance */&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;
=== 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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16338</id>
		<title>Extensions XBMC</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Extensions_XBMC&amp;diff=16338"/>
		<updated>2014-03-26T10:05:01Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* Plugin Philips Hue */&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-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 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;
&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 implemente 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;
====Amelioration====&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;
media 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;utisateur intéragit 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;
dominante 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 fichiers 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 methodes 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é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>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013&amp;diff=13774</id>
		<title>EA2013</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013&amp;diff=13774"/>
		<updated>2013-11-22T10:46:35Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2012|&amp;lt;&amp;lt; Etudes 2012]] [[EA2014|Etudes 2014 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 04/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* Présentation des sujets&lt;br /&gt;
* Choix des sujets&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 11/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
&lt;br /&gt;
# Outils de supervision : Nagios, [[Shinken]] (Jean-François Bianco), [[Nagios|Fiche de synthèse]]&lt;br /&gt;
# [[Synthèse Vocale]] (Lofti Manseur) [[Fiche de synthèse]]&lt;br /&gt;
# [[Open Data]] &amp;amp; Open Data Protocol ([[OData]]) (Simon Planes) [[EA2013_Open_Data|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 18/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau&lt;br /&gt;
&lt;br /&gt;
# [[SoLoMo : Social, Localisation et Mobilité]] (Nicolas Afonso) [[EA2013_SoLoMo|Fiche de synthèse]]&lt;br /&gt;
# [[Rules engines]], [[Event Condition Action]] (ECA) et [[Complex Event Processing]] (CEP) (Morgan Bidois) [[EA2013_RulesEngines_EventConditionActin_ComplexEventProcessing|Fiche de synthèse]]&lt;br /&gt;
# Principes et Canevas de programmation événementiels : [[Node.js]], [[Twisted]], [[Nginx]], ... (Thomas Nunes) [[EA2013_Principes_et_canvas_de_programmation_evenementiels|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 25/10==&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
&lt;br /&gt;
# [[Vandalisme dans les Wiki]] (Jordan Calvi) [[EA2013_Vandalisme_dans_les_Wiki|Fiche de synthèse]]&lt;br /&gt;
# Modèles de distribution par tuple-space : LINDA, JavaSpace, Terracotta, LIME, tinyLIME : démonstration&lt;br /&gt;
# [[Social Data Engineering]] (Walid Bibi)[[EA2013_Social_data_engineering|Fiche de synthèse]]&lt;br /&gt;
# Visual Data Analytics (Mame Daba Diouf) [[EA2013-Visual Data Analytics|Fiche de synthèse]]&lt;br /&gt;
# Benchmarks Web : démonstration de TPCW sur les conteneurs Tomcat, Jetty, Grizzly en utilisant l&#039;injecteur de charge Apache JMeter. (Xu Feng) [[EA2013_Benchmarks_Web|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 08/11==&lt;br /&gt;
* Enseignants: Didier Donsez&lt;br /&gt;
# Environnements de simulation de monde virtuel 2D, 2.5D, 3D : [[Siafu]], [[Unity]], [[Project Anarchy]]... (Elisa Martinez) [[EA2013/SimuMonde|Fiche de synthèse]]&lt;br /&gt;
# Environnement de synthèse sonore : [[Max/MSP]], [[Pure Data]], [[CSound]] ... (Pierre Lartigue) [[EA2013_synthese_sonore|Fiche de sythèse]]&lt;br /&gt;
# [[Xeon Phi]] (Remi Piotaix)&lt;br /&gt;
# [[Big Data]] &amp;amp; le paradigme [[Map Reduce]] : démonstration avec [[Apache Hadoop]], [[Apache Hive]] et [[Apache Mahout]] (Marion Dalle) [[EA2013/mapreduce|Synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 15/11==&lt;br /&gt;
* Enseignants: Didier Donsez&lt;br /&gt;
# Entreprise Portals : Liferay, Pluto, JSR ??? (Laurene Guelorget) [[EA2013_Enterprise_Portals|Fiche de synthèse]]&lt;br /&gt;
# Le langage et le canevas Web [[Dart]] (Nicolas Husson)&lt;br /&gt;
# [[Vee-jing]] Techniques de mixage de vidéo en temps réel (Rebecca Poustis) [[ Techniques de mixage de vidéo en temps réel |Fiche de synthèse]]&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Twitter Storm]] (Jonathan Lemoine)&lt;br /&gt;
&lt;br /&gt;
Démonstration de JMeter (Xu Feng) [[EA2013_Benchmarks_Web|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
=Sujets restants=&lt;br /&gt;
# Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], AMQP (RabbitMQ...), [[MQTT]], [[XMPP]], UPnP, PubNub, [[PubSubHubbub]], Siena ... (?)&lt;br /&gt;
# BPM : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013&amp;diff=13773</id>
		<title>EA2013</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013&amp;diff=13773"/>
		<updated>2013-11-22T10:46:06Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2012|&amp;lt;&amp;lt; Etudes 2012]] [[EA2014|Etudes 2014 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 04/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* Présentation des sujets&lt;br /&gt;
* Choix des sujets&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 11/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
&lt;br /&gt;
# Outils de supervision : Nagios, [[Shinken]] (Jean-François Bianco), [[Nagios|Fiche de synthèse]]&lt;br /&gt;
# [[Synthèse Vocale]] (Lofti Manseur) [[Fiche de synthèse]]&lt;br /&gt;
# [[Open Data]] &amp;amp; Open Data Protocol ([[OData]]) (Simon Planes) [[EA2013_Open_Data|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 18/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau&lt;br /&gt;
&lt;br /&gt;
# [[SoLoMo : Social, Localisation et Mobilité]] (Nicolas Afonso) [[EA2013_SoLoMo|Fiche de synthèse]]&lt;br /&gt;
# [[Rules engines]], [[Event Condition Action]] (ECA) et [[Complex Event Processing]] (CEP) (Morgan Bidois) [[EA2013_RulesEngines_EventConditionActin_ComplexEventProcessing|Fiche de synthèse]]&lt;br /&gt;
# Principes et Canevas de programmation événementiels : [[Node.js]], [[Twisted]], [[Nginx]], ... (Thomas Nunes) [[EA2013_Principes_et_canvas_de_programmation_evenementiels|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 25/10==&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
&lt;br /&gt;
# [[Vandalisme dans les Wiki]] (Jordan Calvi) [[EA2013_Vandalisme_dans_les_Wiki|Fiche de synthèse]]&lt;br /&gt;
# Modèles de distribution par tuple-space : LINDA, JavaSpace, Terracotta, LIME, tinyLIME : démonstration&lt;br /&gt;
# [[Social Data Engineering]] (Walid Bibi)[[EA2013_Social_data_engineering|Fiche de synthèse]]&lt;br /&gt;
# Visual Data Analytics (Mame Daba Diouf) [[EA2013-Visual Data Analytics|Fiche de synthèse]]&lt;br /&gt;
# Benchmarks Web : démonstration de TPCW sur les conteneurs Tomcat, Jetty, Grizzly en utilisant l&#039;injecteur de charge Apache JMeter. (Xu Feng) [[EA2013_Benchmarks_Web|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 08/11==&lt;br /&gt;
* Enseignants: Didier Donsez&lt;br /&gt;
# Environnements de simulation de monde virtuel 2D, 2.5D, 3D : [[Siafu]], [[Unity]], [[Project Anarchy]]... (Elisa Martinez) [[EA2013/SimuMonde|Fiche de synthèse]]&lt;br /&gt;
# Environnement de synthèse sonore : [[Max/MSP]], [[Pure Data]], [[CSound]] ... (Pierre Lartigue) [[EA2013_synthese_sonore|sythèse]]&lt;br /&gt;
# [[Xeon Phi]] (Remi Piotaix)&lt;br /&gt;
# [[Big Data]] &amp;amp; le paradigme [[Map Reduce]] : démonstration avec [[Apache Hadoop]], [[Apache Hive]] et [[Apache Mahout]] (Marion Dalle) [[EA2013/mapreduce|Synthèse]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 15/11==&lt;br /&gt;
* Enseignants: Didier Donsez&lt;br /&gt;
# Entreprise Portals : Liferay, Pluto, JSR ??? (Laurene Guelorget) [[EA2013_Enterprise_Portals|Fiche de synthèse]]&lt;br /&gt;
# Le langage et le canevas Web [[Dart]] (Nicolas Husson)&lt;br /&gt;
# [[Vee-jing]] Techniques de mixage de vidéo en temps réel (Rebecca Poustis) [[ Techniques de mixage de vidéo en temps réel |Fiche de synthèse]]&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Twitter Storm]] (Jonathan Lemoine)&lt;br /&gt;
&lt;br /&gt;
Démonstration de JMeter (Xu Feng) [[EA2013_Benchmarks_Web|Fiche de synthèse]]&lt;br /&gt;
&lt;br /&gt;
=Sujets restants=&lt;br /&gt;
# Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], AMQP (RabbitMQ...), [[MQTT]], [[XMPP]], UPnP, PubNub, [[PubSubHubbub]], Siena ... (?)&lt;br /&gt;
# BPM : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13767</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13767"/>
		<updated>2013-11-22T10:42:52Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est un logiciel propriétaire qui est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
exemples:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:auClairDeLaLune.png|400px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
[[File:filters.png|400px|alt= modulation en fréquence avec plusieurs sources|modulation en fréquence avec plusieurs sources]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autres logiciels ===&lt;br /&gt;
*Pure Data: Logiciel open source basé sur Max/MSP&lt;br /&gt;
*Csound: Logiciel open source décrivant un langage de programmation &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13766</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13766"/>
		<updated>2013-11-22T10:42:07Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
exemples:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:auClairDeLaLune.png|400px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
[[File:filters.png|400px|alt= modulation en fréquence avec plusieurs sources|modulation en fréquence avec plusieurs sources]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autres logiciels ===&lt;br /&gt;
*Pure Data: Logiciel open source basé sur Max/MSP&lt;br /&gt;
*Csound: Logiciel open source décrivant un langage de programmation &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13763</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13763"/>
		<updated>2013-11-22T10:29:38Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
exemples :&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:auClairDeLaLune.png|400px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
[[File:filters.png|400px|alt= modulation en fréquence avec plusieurs sources|modulation en fréquence avec plusieurs sources]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13762</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13762"/>
		<updated>2013-11-22T10:28:25Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
exemples :&lt;br /&gt;
[[File:auClairDeLaLune.png|400px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
[[File:filters.png|400px|alt= modulation en fréquence avec plusieurs sources|modulation en fréquence avec plusieurs sources]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Filters.png&amp;diff=13761</id>
		<title>File:Filters.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Filters.png&amp;diff=13761"/>
		<updated>2013-11-22T10:27:31Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13760</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13760"/>
		<updated>2013-11-22T10:27:19Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:auClairDeLaLune.png|400px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
[[File:filters.png|400px|alt= modulation en fréquence avec plusieurs sources|modulation en fréquence avec plusieurs sources]]&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13759</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13759"/>
		<updated>2013-11-22T10:24:30Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:auClairDeLaLune.png|400px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13758</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13758"/>
		<updated>2013-11-22T10:23:49Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:auClairDeLaLune.png|800px|alt= Au clair de la lune| Au clair de la lune]]&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13757</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13757"/>
		<updated>2013-11-22T10:23:12Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:auClairDeLaLune.png|200px|alt= Au clair de la lune]]&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13756</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13756"/>
		<updated>2013-11-22T10:21:49Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:auClairDeLaLune.png]]&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:AuClairDeLaLune.png&amp;diff=13755</id>
		<title>File:AuClairDeLaLune.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:AuClairDeLaLune.png&amp;diff=13755"/>
		<updated>2013-11-22T10:20:23Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13754</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13754"/>
		<updated>2013-11-22T10:18:22Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:auClairDeLaLune.jpg]]&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13690</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13690"/>
		<updated>2013-11-22T07:44:05Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13689</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13689"/>
		<updated>2013-11-22T07:39:21Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
Le but de la synthèse sonore est de produire des objets sonores. Pour cela plusieurs types d&#039;algorithmes sont utilisés:&lt;br /&gt;
* Algorithmes abstraits: Modulation en fréquence, en amplitude, waveshaping (utilisation de fonctions de transfert pour enrichir le spectre sonore) , …&lt;br /&gt;
* Lecture d’échantillons: modification d’enregistrements sonores&lt;br /&gt;
* Modèle de signaux: modèle informatique décrivant la perception de sources sonores&lt;br /&gt;
* Modèle physique: modèle informatique décrivant des sources sonores (par exemple, le timbre d&#039;une guitare)&lt;br /&gt;
&lt;br /&gt;
Pour créer de nouveaux son, ces différents types d&#039;algorithmes sont assemblés. Les environnements de synthèse sonore permettent de facilité ces opérations sur les signaux sonores&lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs environnements existent. Je citerai ici les principaux logiciels et je développerai Max/MSP, le plus utilisé.&lt;br /&gt;
&lt;br /&gt;
=== Max/MSP  ===&lt;br /&gt;
&lt;br /&gt;
Max/MSP est l&#039;association de deux logiciels:&lt;br /&gt;
*Max: Logiciel de calculs mathématiques, bibliothèque d’objets de programmation&lt;br /&gt;
*MSP: Ensemble d’outils de traitement du signal, d’outils de monitoring temps-réel&lt;br /&gt;
&lt;br /&gt;
Le principe de création sonore est basée sur la mise a disposition de &amp;quot;boîtes&amp;quot; d&#039;objets de programmation, d&#039;objets sonores, d&#039;opérations pour les signaux et la possibilité de les assembler à souhait suivant un architecture &amp;quot;Pipes and filters&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13514</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13514"/>
		<updated>2013-11-20T14:31:22Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Synthèse_sonore&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Max/MSP&lt;br /&gt;
*http://cycling74.com/products/max/&lt;br /&gt;
*http://www.youtube.com/watch?v=cSatrZW4XLI&lt;br /&gt;
*http://fr.wikipedia.org/wiki/Pure_Data&lt;br /&gt;
*http://www.csounds.com/chapter1/french/&lt;br /&gt;
*http://www.youtube.com/watch?v=vfgFWFwovJc&amp;amp;noredirect=1&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13513</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13513"/>
		<updated>2013-11-20T13:44:36Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
son, traitement du signal, programmation, temps réel &lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Sound synthetisis is the process of creating and generating sound objects. Environments have been developed to make easier and astract the hardware structure of sound generation.&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
sound, signal processing, programming, real time&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13507</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13507"/>
		<updated>2013-11-20T09:40:52Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
La synthèse sonore est le processus de création et la génération d&#039;objets sonores. Des environnements ont été développé pour facilité et abstraire la mise en place matériel nécessaire à la génération de sons. &lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13416</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13416"/>
		<updated>2013-11-17T20:18:15Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
=== Mots clés ===&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
=== Key words ===&lt;br /&gt;
&lt;br /&gt;
== Synthèse sonore == &lt;br /&gt;
&lt;br /&gt;
== Logiciels de synthèse sonore ==&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13415</id>
		<title>EA2013 synthese sonore</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2013_synthese_sonore&amp;diff=13415"/>
		<updated>2013-11-17T20:04:35Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: Created page with &amp;quot;== Présentation == * &amp;#039;&amp;#039;&amp;#039;Titre :&amp;#039;&amp;#039;&amp;#039; Environnement de Synthèse sonore * &amp;#039;&amp;#039;&amp;#039;Auteur :&amp;#039;&amp;#039;&amp;#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt; * &amp;#039;&amp;#039;&amp;#039;Enseignants :&amp;#039;&amp;#039;&amp;#039; Georges-Pierre...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
* &#039;&#039;&#039;Titre :&#039;&#039;&#039; Environnement de Synthèse sonore&lt;br /&gt;
* &#039;&#039;&#039;Auteur :&#039;&#039;&#039; Pierre Lartigue &amp;lt;pierre.lartigue@e.ujf-grenoble.fr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enseignants :&#039;&#039;&#039; Georges-Pierre Bonneau, Didier Donsez ([[EA2013]])&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM&amp;diff=12497</id>
		<title>ECOM</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM&amp;diff=12497"/>
		<updated>2013-09-16T06:24:54Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* RICM5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Objectifs du projet=&lt;br /&gt;
Le projet eCOM consiste à concevoir et développer une application de commerce électronique. Une motivation principale du projet eCOM est qu&#039;il intègre dans sa mise en œuvre différentes thématiques étudiées dans les formations en informatique : en particulier, interfaces homme-machine, applications et architectures réparties, bases de données. Les aspects relatifs au génie logiciel sont également présents puisque le projet eCOM comprend la conception et la réalisation d&#039;un produit logiciel qui satisfait certains critères de qualité (documentation, respect des normes, etc).&lt;br /&gt;
&lt;br /&gt;
L&#039;intégration de différentes thématiques présente les atouts suivants : &lt;br /&gt;
* Valorisation des enseignements acquis dans les différentes thématiques au profit d&#039;un projet important et réaliste. &lt;br /&gt;
* Appréhension des (inter)dépendances entre les thématiques. &lt;br /&gt;
* Communications entre les différents réalisateurs du projet. &lt;br /&gt;
En outre, une deuxième motivation forte du projet eCOM est qu&#039;il intègre des technologies et des standards récents et largement utilisés dans le domaine des applications Internet. Ce projet permet plus précisément de se placer en tant qu&#039;utilisateurs de la technologie JEE (Java Enterprise Edition) destinée à la réalisation de serveurs d&#039;information ou de serveurs de commerce électronique à base de composants distribués, transactionnels et persistants. Les réalisateurs sont confrontés par ce biais à la manipulation de mécanismes et de fonctions générales d&#039;un système réparti : gestion de la désignation de composants distribués, configuration d&#039;une application distribuée, association de propriétés non fonctionnelles aux composants (persistance, transactions), gestion des images persistantes des composants (liaisons avec une base de données). Des extensions au projet sont décrites [http://ecom.ow2.org/xwiki/bin/view/Main/fr ici] et seront réalisées lors du projet RICOM/GICOM au semestre 2.&lt;br /&gt;
&lt;br /&gt;
L&#039;application réalisée devra offrir deux interfaces distinctes : &lt;br /&gt;
* les administrateurs qui gèrent les stocks de produits, les comptes des utilisateurs de l&#039;application et le suivi des commandes ; &lt;br /&gt;
* les consommateurs/acheteurs qui peuvent consulter des articles, les placer dans leur caddie et valider une commande. &lt;br /&gt;
&lt;br /&gt;
Chaque groupe devra élaborer un cahier des charges précis de l&#039;application en termes de fonctionnalités et de critères d&#039;ergonomie. Par ailleurs, le projet devra être réalisé en employant les méthodes et technologies présentées en cours. Ces différents aspects devront être validés par l&#039;équipe pédagogique tout au long du projet.&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Le projet se conclut par une soutenance finale pour chaque partie (IHM et système). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Trois documents sont à produire : le cahier des charges (CDC), le dossier de conception IHM (à rédiger avant de développer l&#039;IHM du site) et le document d&#039;évaluation IHM. Les versions finales des deux premiers documents (CDC et dossier de conception IHM) sont à remettre une semaine avant les soutenances et le dossier d&#039;évaluation, le jour de la soutenance.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours.&lt;br /&gt;
En résumé : &lt;br /&gt;
* Une fois le sujet choisi, analyser les sites &amp;quot;concurrents&amp;quot; et mener une enquête auprès d&#039;utilisateurs représentatifs du futur site marchand, faire une analyse des données recueillies, en déduire les requis fonctionnels et non fonctionnels du site, identifier le modèle de l&#039;utilisateur type, produire le modèle de tâches. Les analyses amont (sites concurrents et enquête) seront mises en annexe du CDC. &lt;br /&gt;
* Définir une norme de présentation pour tous les documents du projet. &lt;br /&gt;
* Ensuite, rédiger le cahier des charges. Bien penser à définir les priorités de développement. Des exemples des années précédentes seront consultables en séances d&#039;audit. &lt;br /&gt;
* Une fois le CDC validé, rédiger le dossier de conception IHM : IHM abstraite, IHM concrète, charte graphique. &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâche &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche &lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
La partie Système est axée sur deux étapes successives. &lt;br /&gt;
===Première étape===&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des EJB (session et entity beans).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants. Il est également recommandé de limiter le premier prototype à un sous-ensemble des spécifications fonctionnelles, à la fois assez vaste pour couvrir les principales difficultés techniques et assez léger pour respecter les délais imposés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
À ce stade, l&#039;application est seulement accessible par l&#039;intermédiaire d&#039;un &amp;quot;client lourd&amp;quot; (programme java offrant une console en mode texte). En particulier, il n&#039;est pas demandé, pour cette première étape, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux interfaces (administrateur et consommateur) et exécuter les requêtes avec des garanties transactionnelles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une présentation/démonstration du prototype V1 sera réalisée à la fin de l&#039;étape n°1. &lt;br /&gt;
===Deuxième étape===&lt;br /&gt;
La seconde étape consiste à compléter le premier prototype avec les objectifs suivants : &lt;br /&gt;
* ajout des beans nécessaires pour couvrir l&#039;ensemble des spécifications fonctionnelles ; &lt;br /&gt;
* développement d&#039;une interface Web basée sur le modèle MVC ; &lt;br /&gt;
* rédaction des documents demandés (voir ci-dessous) ; &lt;br /&gt;
* modification de la configuration de déploiement : (1) client (lourd/léger) distant, (2) base de données externe (MySQL, Oracle, HSQL ...) et éventuellement distante ; &lt;br /&gt;
* ajout éventuel de fonctionnalités non prioritaires.&lt;br /&gt;
 &lt;br /&gt;
Une présentation d&#039;une mini-maquette d&#039;interface web aura lieu au milieu de l&#039;étape n°2. &lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
Le dossier de conception système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants JEE de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;il fournit. Attributs et méthodes seront associés à une courte description. Les besoins liées à la persistence ou aux aspects transactionnels peuvent également être explicités. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement JEE. Un composant peut être implanté par un programme Java externe (client léger / client lourd JEE), par un servlet, par un bean ou par un objet POJO. Dans ces derniers cas, il faut préciser les caractéristiques des beans / POJO (local / distribué, session / évenementiel, stateful / stateless, etc). Un lien peut être implanté par une relation JEE, ou bien par conservation de référence de bean.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie JEE &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Performances (résultat du injection de charge avec JMeter ou Clif) &lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
* documents (version papier) à apporter : cahier des charges (version finale), dossier de conception IHM, dossier d&#039;évaluation IHM&lt;br /&gt;
* votre passage doit contenir une présentation globale du projet, le processus de conception (illustré), le bilan (point de vue IHM) et une démo PRÉPARÉE &lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 5 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances Windows Azure.&lt;br /&gt;
* Conditionnez le projet final sous la forme d’une archive (zip ou tar.gz) après avoir inclus la documentation (dans un repertoire /main/site). Utilisez la convention de nommage suivante : ecom_final_1213-X.zip où X correspond au nom du projet.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2013-2014=&lt;br /&gt;
EN COURS DE CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Fy RAVOAJANAHARY (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Démo système V1 classique :    jeudi 25 octobre&lt;br /&gt;
*Démo système V2 classique :    jeudi 29 novembre&lt;br /&gt;
*Semaine bloquée :    lundi 17 décembre - vendredi 21 décembre&lt;br /&gt;
*Soutenances (IHM + système) :    vendredi 21 décembre&lt;br /&gt;
&lt;br /&gt;
*Remise du cahier des charges :    vendredi 14 décembre (version electronique (pdf) à SC et NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier de conception IHM :    vendredi 14 décembre (version electronique (pdf) à SC, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation IHM :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*Remise du dossier de conception système :    vendredi 14 décembre (version electronique (pdf) à NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Equipe pédagogique: Noël de Palma (NdP), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Fy RAVOAJANAHARY (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Démo système V1 classique :    jeudi 25 octobre&lt;br /&gt;
*Démo système V2 classique :    jeudi 29 novembre&lt;br /&gt;
*Semaine bloquée :    lundi 17 décembre - vendredi 21 décembre&lt;br /&gt;
*Soutenances (IHM + système) :    vendredi 21 décembre&lt;br /&gt;
&lt;br /&gt;
*Remise du cahier des charges :    vendredi 14 décembre (version electronique (pdf) à SC et NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier de conception IHM :    vendredi 14 décembre (version electronique (pdf) à SC, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation IHM :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*Remise du dossier de conception système :    vendredi 14 décembre (version electronique (pdf) à NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
===RICM5===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; ??? (XE), Sybille Caffiau (SC), Didier Donsez (DD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Démo système V1 : ??&lt;br /&gt;
*Démo système V2 : ??&lt;br /&gt;
*Soutenances (IHM + système) : ??/12/2012 après midi&lt;br /&gt;
*Remise du cahier des charges : 08/10/2012 (moodle)&lt;br /&gt;
*Remise du dossier de conception IHM : 12/12/2013 (version electronique (pdf) à SC, avec &amp;quot;[RICM-ECOM]&amp;quot; dans le sujet)&lt;br /&gt;
*Remise du dossier d&#039;évaluation IHM : 19/12/2013 (lors de votre passage) &lt;br /&gt;
*Remise du dossier de conception système : 19/12/2013 (version electronique (pdf) à XS)&lt;br /&gt;
*Remise du dossier d&#039;évaluation système : 19/12/2013 (version electronique (pdf) à XS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Séances:&#039;&#039;&#039;&lt;br /&gt;
* 13/09 Ma: Introduction 1H00 DD, CM Ergonomie 2H00 SC  [[Media:PresentationECOM-RICM5-2013.pdf]] &lt;br /&gt;
* 24/09 Ma: CM JavaEE &amp;amp; EJB 3h00 XX&lt;br /&gt;
* 24/09 Ap: TD Ergonomie IHM 3h00 SC&lt;br /&gt;
* 01/10 Ma: CM Ergonomie IHM 3h00 SC&lt;br /&gt;
* 01/10 Ap: Install JavaEE, tutoriel EJB 3h00 XX&lt;br /&gt;
* 08/10 Ma: CM HTTP &amp;amp; Servlet/JSP 3h00 DD&lt;br /&gt;
* 08/10 Ap: TD Ergonomie IHM 1h30 SC, Tutoriel EJB 2h00 XX&lt;br /&gt;
* 22/10 Ma: CM JSF 3h00 XX&lt;br /&gt;
* 22/10 Ap: Tutoriel Servlet/JSP/JSF 3h00 XX&lt;br /&gt;
* 05/11 Ma: TD Ergo IHM 3H00 SC&lt;br /&gt;
* 12/11 Ma: TD JavaEE 3H00 XX&lt;br /&gt;
* 19/11 Ma: TD JavaEE 3H00 XX &lt;br /&gt;
* 19/11 Ap: En parallele : TD JavaEE 3H00 XX + TD Ergo IHM 3H00 SC&lt;br /&gt;
* 26/11 Ma: TD JavaEE 3H00 XS&lt;br /&gt;
* 26/11 Ap: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC &lt;br /&gt;
* 03/12 Ma: En parallele : TD JavaEE 3H00 XX + TD Ergo IHM 3H00 SC&lt;br /&gt;
* 03/12 Ap: En parallele : TD JavaEE 3H00 XX + TD Ergo IHM 3H00 SC&lt;br /&gt;
* 10/12 Ma: TD JavaEE 3H00 XX&lt;br /&gt;
* 17/12 Ma:  En parallele : TD Ergo IHM 3H00 SC + TD JavaEE 3H00 XX&lt;br /&gt;
* Soutenance IHM le ??/12/2013 Ap&lt;br /&gt;
* Soutenance Système le ??/12/2013 Ap&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
===RICM5===&lt;br /&gt;
====Groupe 1 : Thème = Vente de fichiers STL pour imprimantes 3D ====&lt;br /&gt;
* Nicolas Afonso : Chef de projet&lt;br /&gt;
* Jean-François Bianco  &lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 : Thème = Vente de forfaits mobile ====&lt;br /&gt;
* Pierre Lartigue : Chef de projet&lt;br /&gt;
* Jonathan Lemoine &lt;br /&gt;
* Nicolas Husson&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 : Thème XYZ====&lt;br /&gt;
* XY : Chef de projet&lt;br /&gt;
* XY : Membre (Outils, Forge ou Azure)  &lt;br /&gt;
* XY : ...&lt;br /&gt;
&lt;br /&gt;
====Groupe 4 : Thème XYZ====&lt;br /&gt;
* XY : Chef de projet&lt;br /&gt;
* XY : Membre (Outils, Forge ou Azure)  &lt;br /&gt;
* XY : ...&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 : Thème XYZ====&lt;br /&gt;
* XY : Chef de projet&lt;br /&gt;
* XY : Membre (Outils, Forge ou Azure)  &lt;br /&gt;
* XY : ...&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
===RICM5===&lt;br /&gt;
&lt;br /&gt;
IMPERATIF&lt;br /&gt;
* le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.&lt;br /&gt;
* le serveur JavaEE doit être (MUST) hébergé sur une instance Windows Azure à partir du compte étudiant Azure offert gratuitement en début de projet (la machine virtuelle peut etre de type Windows ou Linux).&lt;br /&gt;
* un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.&lt;br /&gt;
* un rapport sur les métriques logicielles doit être (MUST) fourni : l&#039;outil Sonar peut être utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&lt;br /&gt;
* Respectez l&#039;ordre établi&lt;br /&gt;
* Faites attention au temps. Vous disposez de 15 minutes par soutenance pour : votre présentation, la démo et les questions&lt;br /&gt;
[[File:OrdrePassageSoutenance2013.jpg]]&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier ce planning, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et XS pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Aucune modification ne sera acceptée après le 18 décembre.&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours IHM (SC) : [https://www.dropbox.com/s/tk8ujqqowcj114e/ECOM20122013.pdf url]&lt;br /&gt;
* Cours JSF (PR) : [http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=61 url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
	&lt;br /&gt;
==Squelette du projet==&lt;br /&gt;
[http://dl.dropbox.com/u/66952950/ecom-maven.zip ecom-maven.zip] Inaccessible&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://wiki.easybeans.org/xwiki/bin/view/Main/Documentation Documentation Easybeans (conteneur EJB3 utilis&amp;amp;eacute; par Jonas)]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/tutorial/doc/ Tutorial JavaEE 6 ]&lt;br /&gt;
* [http://netbeans.org/kb/67/javaee/ejb30.html Tutorial NetBean et JEE ]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/api/ API JavaEE 6]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home Sp&amp;amp;eacute;cifications JavaEE 6]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* [http://jonas.ow2.org/JONAS_5_1_2/doc/doc-en/html/getting_started_guide.html#id1316973 Glossaire]&lt;br /&gt;
* [http://www.easybeans.net/xwiki/bin/download/Main/Documentation/ejb3-annotations.pdf Aide m&amp;amp;eacute;moire pour les annotations EJB3 ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
	&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres===&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
* Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/&lt;br /&gt;
* Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM&amp;diff=12496</id>
		<title>ECOM</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM&amp;diff=12496"/>
		<updated>2013-09-16T06:23:58Z</updated>

		<summary type="html">&lt;p&gt;Pierre.Lartigue: /* RICM5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Objectifs du projet=&lt;br /&gt;
Le projet eCOM consiste à concevoir et développer une application de commerce électronique. Une motivation principale du projet eCOM est qu&#039;il intègre dans sa mise en œuvre différentes thématiques étudiées dans les formations en informatique : en particulier, interfaces homme-machine, applications et architectures réparties, bases de données. Les aspects relatifs au génie logiciel sont également présents puisque le projet eCOM comprend la conception et la réalisation d&#039;un produit logiciel qui satisfait certains critères de qualité (documentation, respect des normes, etc).&lt;br /&gt;
&lt;br /&gt;
L&#039;intégration de différentes thématiques présente les atouts suivants : &lt;br /&gt;
* Valorisation des enseignements acquis dans les différentes thématiques au profit d&#039;un projet important et réaliste. &lt;br /&gt;
* Appréhension des (inter)dépendances entre les thématiques. &lt;br /&gt;
* Communications entre les différents réalisateurs du projet. &lt;br /&gt;
En outre, une deuxième motivation forte du projet eCOM est qu&#039;il intègre des technologies et des standards récents et largement utilisés dans le domaine des applications Internet. Ce projet permet plus précisément de se placer en tant qu&#039;utilisateurs de la technologie JEE (Java Enterprise Edition) destinée à la réalisation de serveurs d&#039;information ou de serveurs de commerce électronique à base de composants distribués, transactionnels et persistants. Les réalisateurs sont confrontés par ce biais à la manipulation de mécanismes et de fonctions générales d&#039;un système réparti : gestion de la désignation de composants distribués, configuration d&#039;une application distribuée, association de propriétés non fonctionnelles aux composants (persistance, transactions), gestion des images persistantes des composants (liaisons avec une base de données). Des extensions au projet sont décrites [http://ecom.ow2.org/xwiki/bin/view/Main/fr ici] et seront réalisées lors du projet RICOM/GICOM au semestre 2.&lt;br /&gt;
&lt;br /&gt;
L&#039;application réalisée devra offrir deux interfaces distinctes : &lt;br /&gt;
* les administrateurs qui gèrent les stocks de produits, les comptes des utilisateurs de l&#039;application et le suivi des commandes ; &lt;br /&gt;
* les consommateurs/acheteurs qui peuvent consulter des articles, les placer dans leur caddie et valider une commande. &lt;br /&gt;
&lt;br /&gt;
Chaque groupe devra élaborer un cahier des charges précis de l&#039;application en termes de fonctionnalités et de critères d&#039;ergonomie. Par ailleurs, le projet devra être réalisé en employant les méthodes et technologies présentées en cours. Ces différents aspects devront être validés par l&#039;équipe pédagogique tout au long du projet.&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Le projet se conclut par une soutenance finale pour chaque partie (IHM et système). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Trois documents sont à produire : le cahier des charges (CDC), le dossier de conception IHM (à rédiger avant de développer l&#039;IHM du site) et le document d&#039;évaluation IHM. Les versions finales des deux premiers documents (CDC et dossier de conception IHM) sont à remettre une semaine avant les soutenances et le dossier d&#039;évaluation, le jour de la soutenance.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours.&lt;br /&gt;
En résumé : &lt;br /&gt;
* Une fois le sujet choisi, analyser les sites &amp;quot;concurrents&amp;quot; et mener une enquête auprès d&#039;utilisateurs représentatifs du futur site marchand, faire une analyse des données recueillies, en déduire les requis fonctionnels et non fonctionnels du site, identifier le modèle de l&#039;utilisateur type, produire le modèle de tâches. Les analyses amont (sites concurrents et enquête) seront mises en annexe du CDC. &lt;br /&gt;
* Définir une norme de présentation pour tous les documents du projet. &lt;br /&gt;
* Ensuite, rédiger le cahier des charges. Bien penser à définir les priorités de développement. Des exemples des années précédentes seront consultables en séances d&#039;audit. &lt;br /&gt;
* Une fois le CDC validé, rédiger le dossier de conception IHM : IHM abstraite, IHM concrète, charte graphique. &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâche &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche &lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
La partie Système est axée sur deux étapes successives. &lt;br /&gt;
===Première étape===&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des EJB (session et entity beans).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants. Il est également recommandé de limiter le premier prototype à un sous-ensemble des spécifications fonctionnelles, à la fois assez vaste pour couvrir les principales difficultés techniques et assez léger pour respecter les délais imposés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
À ce stade, l&#039;application est seulement accessible par l&#039;intermédiaire d&#039;un &amp;quot;client lourd&amp;quot; (programme java offrant une console en mode texte). En particulier, il n&#039;est pas demandé, pour cette première étape, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux interfaces (administrateur et consommateur) et exécuter les requêtes avec des garanties transactionnelles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une présentation/démonstration du prototype V1 sera réalisée à la fin de l&#039;étape n°1. &lt;br /&gt;
===Deuxième étape===&lt;br /&gt;
La seconde étape consiste à compléter le premier prototype avec les objectifs suivants : &lt;br /&gt;
* ajout des beans nécessaires pour couvrir l&#039;ensemble des spécifications fonctionnelles ; &lt;br /&gt;
* développement d&#039;une interface Web basée sur le modèle MVC ; &lt;br /&gt;
* rédaction des documents demandés (voir ci-dessous) ; &lt;br /&gt;
* modification de la configuration de déploiement : (1) client (lourd/léger) distant, (2) base de données externe (MySQL, Oracle, HSQL ...) et éventuellement distante ; &lt;br /&gt;
* ajout éventuel de fonctionnalités non prioritaires.&lt;br /&gt;
 &lt;br /&gt;
Une présentation d&#039;une mini-maquette d&#039;interface web aura lieu au milieu de l&#039;étape n°2. &lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
Le dossier de conception système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants JEE de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;il fournit. Attributs et méthodes seront associés à une courte description. Les besoins liées à la persistence ou aux aspects transactionnels peuvent également être explicités. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement JEE. Un composant peut être implanté par un programme Java externe (client léger / client lourd JEE), par un servlet, par un bean ou par un objet POJO. Dans ces derniers cas, il faut préciser les caractéristiques des beans / POJO (local / distribué, session / évenementiel, stateful / stateless, etc). Un lien peut être implanté par une relation JEE, ou bien par conservation de référence de bean.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie JEE &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Performances (résultat du injection de charge avec JMeter ou Clif) &lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
* documents (version papier) à apporter : cahier des charges (version finale), dossier de conception IHM, dossier d&#039;évaluation IHM&lt;br /&gt;
* votre passage doit contenir une présentation globale du projet, le processus de conception (illustré), le bilan (point de vue IHM) et une démo PRÉPARÉE &lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 5 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances Windows Azure.&lt;br /&gt;
* Conditionnez le projet final sous la forme d’une archive (zip ou tar.gz) après avoir inclus la documentation (dans un repertoire /main/site). Utilisez la convention de nommage suivante : ecom_final_1213-X.zip où X correspond au nom du projet.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2013-2014=&lt;br /&gt;
EN COURS DE CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Fy RAVOAJANAHARY (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Démo système V1 classique :    jeudi 25 octobre&lt;br /&gt;
*Démo système V2 classique :    jeudi 29 novembre&lt;br /&gt;
*Semaine bloquée :    lundi 17 décembre - vendredi 21 décembre&lt;br /&gt;
*Soutenances (IHM + système) :    vendredi 21 décembre&lt;br /&gt;
&lt;br /&gt;
*Remise du cahier des charges :    vendredi 14 décembre (version electronique (pdf) à SC et NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier de conception IHM :    vendredi 14 décembre (version electronique (pdf) à SC, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation IHM :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*Remise du dossier de conception système :    vendredi 14 décembre (version electronique (pdf) à NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Equipe pédagogique: Noël de Palma (NdP), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Fy RAVOAJANAHARY (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Démo système V1 classique :    jeudi 25 octobre&lt;br /&gt;
*Démo système V2 classique :    jeudi 29 novembre&lt;br /&gt;
*Semaine bloquée :    lundi 17 décembre - vendredi 21 décembre&lt;br /&gt;
*Soutenances (IHM + système) :    vendredi 21 décembre&lt;br /&gt;
&lt;br /&gt;
*Remise du cahier des charges :    vendredi 14 décembre (version electronique (pdf) à SC et NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier de conception IHM :    vendredi 14 décembre (version electronique (pdf) à SC, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation IHM :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*Remise du dossier de conception système :    vendredi 14 décembre (version electronique (pdf) à NdP, avec &amp;quot;[M2PGI-ECOM]&amp;quot; dans le sujet) &lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    jeudi 20 décembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
===RICM5===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; ??? (XE), Sybille Caffiau (SC), Didier Donsez (DD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Démo système V1 : ??&lt;br /&gt;
*Démo système V2 : ??&lt;br /&gt;
*Soutenances (IHM + système) : ??/12/2012 après midi&lt;br /&gt;
*Remise du cahier des charges : 08/10/2012 (moodle)&lt;br /&gt;
*Remise du dossier de conception IHM : 12/12/2013 (version electronique (pdf) à SC, avec &amp;quot;[RICM-ECOM]&amp;quot; dans le sujet)&lt;br /&gt;
*Remise du dossier d&#039;évaluation IHM : 19/12/2013 (lors de votre passage) &lt;br /&gt;
*Remise du dossier de conception système : 19/12/2013 (version electronique (pdf) à XS)&lt;br /&gt;
*Remise du dossier d&#039;évaluation système : 19/12/2013 (version electronique (pdf) à XS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Séances:&#039;&#039;&#039;&lt;br /&gt;
* 13/09 Ma: Introduction 1H00 DD, CM Ergonomie 2H00 SC  [[Media:PresentationECOM-RICM5-2013.pdf]] &lt;br /&gt;
* 24/09 Ma: CM JavaEE &amp;amp; EJB 3h00 XX&lt;br /&gt;
* 24/09 Ap: TD Ergonomie IHM 3h00 SC&lt;br /&gt;
* 01/10 Ma: CM Ergonomie IHM 3h00 SC&lt;br /&gt;
* 01/10 Ap: Install JavaEE, tutoriel EJB 3h00 XX&lt;br /&gt;
* 08/10 Ma: CM HTTP &amp;amp; Servlet/JSP 3h00 DD&lt;br /&gt;
* 08/10 Ap: TD Ergonomie IHM 1h30 SC, Tutoriel EJB 2h00 XX&lt;br /&gt;
* 22/10 Ma: CM JSF 3h00 XX&lt;br /&gt;
* 22/10 Ap: Tutoriel Servlet/JSP/JSF 3h00 XX&lt;br /&gt;
* 05/11 Ma: TD Ergo IHM 3H00 SC&lt;br /&gt;
* 12/11 Ma: TD JavaEE 3H00 XX&lt;br /&gt;
* 19/11 Ma: TD JavaEE 3H00 XX &lt;br /&gt;
* 19/11 Ap: En parallele : TD JavaEE 3H00 XX + TD Ergo IHM 3H00 SC&lt;br /&gt;
* 26/11 Ma: TD JavaEE 3H00 XS&lt;br /&gt;
* 26/11 Ap: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC &lt;br /&gt;
* 03/12 Ma: En parallele : TD JavaEE 3H00 XX + TD Ergo IHM 3H00 SC&lt;br /&gt;
* 03/12 Ap: En parallele : TD JavaEE 3H00 XX + TD Ergo IHM 3H00 SC&lt;br /&gt;
* 10/12 Ma: TD JavaEE 3H00 XX&lt;br /&gt;
* 17/12 Ma:  En parallele : TD Ergo IHM 3H00 SC + TD JavaEE 3H00 XX&lt;br /&gt;
* Soutenance IHM le ??/12/2013 Ap&lt;br /&gt;
* Soutenance Système le ??/12/2013 Ap&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
===RICM5===&lt;br /&gt;
====Groupe 1 : Thème = Vente de fichiers STL pour imprimantes 3D ====&lt;br /&gt;
* Nicolas Afonso : Chef de projet&lt;br /&gt;
* Jean-François Bianco  &lt;br /&gt;
* Elisa Martinez&lt;br /&gt;
* Rebecca Poustis&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 : Thème = Vente de forfaits mobile ====&lt;br /&gt;
* LARTIGUE Pierre : Chef de projet&lt;br /&gt;
* LEMOINE Jonathan&lt;br /&gt;
* HUSSON Nicolas&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 : Thème XYZ====&lt;br /&gt;
* XY : Chef de projet&lt;br /&gt;
* XY : Membre (Outils, Forge ou Azure)  &lt;br /&gt;
* XY : ...&lt;br /&gt;
&lt;br /&gt;
====Groupe 4 : Thème XYZ====&lt;br /&gt;
* XY : Chef de projet&lt;br /&gt;
* XY : Membre (Outils, Forge ou Azure)  &lt;br /&gt;
* XY : ...&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 : Thème XYZ====&lt;br /&gt;
* XY : Chef de projet&lt;br /&gt;
* XY : Membre (Outils, Forge ou Azure)  &lt;br /&gt;
* XY : ...&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
===RICM5===&lt;br /&gt;
&lt;br /&gt;
IMPERATIF&lt;br /&gt;
* le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.&lt;br /&gt;
* le serveur JavaEE doit être (MUST) hébergé sur une instance Windows Azure à partir du compte étudiant Azure offert gratuitement en début de projet (la machine virtuelle peut etre de type Windows ou Linux).&lt;br /&gt;
* un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.&lt;br /&gt;
* un rapport sur les métriques logicielles doit être (MUST) fourni : l&#039;outil Sonar peut être utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&lt;br /&gt;
* Respectez l&#039;ordre établi&lt;br /&gt;
* Faites attention au temps. Vous disposez de 15 minutes par soutenance pour : votre présentation, la démo et les questions&lt;br /&gt;
[[File:OrdrePassageSoutenance2013.jpg]]&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier ce planning, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et XS pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Aucune modification ne sera acceptée après le 18 décembre.&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours IHM (SC) : [https://www.dropbox.com/s/tk8ujqqowcj114e/ECOM20122013.pdf url]&lt;br /&gt;
* Cours JSF (PR) : [http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=61 url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
	&lt;br /&gt;
==Squelette du projet==&lt;br /&gt;
[http://dl.dropbox.com/u/66952950/ecom-maven.zip ecom-maven.zip] Inaccessible&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://wiki.easybeans.org/xwiki/bin/view/Main/Documentation Documentation Easybeans (conteneur EJB3 utilis&amp;amp;eacute; par Jonas)]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/tutorial/doc/ Tutorial JavaEE 6 ]&lt;br /&gt;
* [http://netbeans.org/kb/67/javaee/ejb30.html Tutorial NetBean et JEE ]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/api/ API JavaEE 6]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home Sp&amp;amp;eacute;cifications JavaEE 6]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* [http://jonas.ow2.org/JONAS_5_1_2/doc/doc-en/html/getting_started_guide.html#id1316973 Glossaire]&lt;br /&gt;
* [http://www.easybeans.net/xwiki/bin/download/Main/Documentation/ejb3-annotations.pdf Aide m&amp;amp;eacute;moire pour les annotations EJB3 ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
	&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres===&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
* Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/&lt;br /&gt;
* Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/&lt;/div&gt;</summary>
		<author><name>Pierre.Lartigue</name></author>
	</entry>
</feed>