Extensions XBMC/FicheSuivi: Difference between revisions
Jump to navigation
Jump to search
(Redirected page to Extensions XBMC) |
|||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
#REDIRECT [[Extensions_XBMC]] |
|||
Cette page wiki se veux être une fiche de suivi interactive du '''projet "extensions XBMC"''' d'un groupe d'étudiants de la promotion RICM5 2014. Interactive, car nous suivons pour ce projet une méthodologie de type Agile. <br/>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'hésitez surtout pas à nous [mailto:xbmc_ricm5@googlegroups.com contacter] :) |
|||
= Suivi de l'avancement du projet = |
|||
[[Image:Gant_xbmc_previsionnel.png| Planning Prévisionnel |thumb|left|510px]] |
|||
[[Image:Gant_xbmc_final.png| Planning Effectif |thumb|right|550px]] <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> |
|||
=Le projet de fin d'année en RICM5= |
|||
[[Extensions XBMC/FIcheSuivi#Plugin Caméra de surveillance | test]] |
|||
Ce projet, d'une durée de 8 semaines |
|||
=Présentation du sujet= |
|||
L'objectif de ce projet de 8 semaine est de créer de nouveaux plugins pour le [http://xbmc.org/ media center XBMC].<br/> |
|||
Les plugins qui seront développés vont permettre d'ajouter les fonctions suivantes : |
|||
* Réalisation d'un plugin de domotique basé sur [http://www.openhab.org/ OpenHab] |
|||
* Réalisation d'une interaction avec les lampes [http://meethue.com/ Philips Hue] |
|||
* Réalisation d'un plugin permettant de controler des caméras de surveillance D-Link |
|||
* Amélioration de la télécommande Android developpé par la "Team-XBMC" : |
|||
**Ajout d'un système permettant de rendre la télécommande réflexive |
|||
**Ajout d'une fonction NFC permettant de lancer de la musique (par genre ou album) |
|||
=L'équipe projet= |
|||
'''Team:''' |
|||
* Nicolas Afonso (Chef de projet) |
|||
* Jean-François Bianco |
|||
* Pierre Lartigue |
|||
* Elisa Martinez |
|||
* Rebecca Poustis |
|||
= Spécifications = |
|||
== Plugin OpenHab == |
|||
Le but de ce plugin est de permettre aux utilisateurs de contrôler leur maison depuis une instance XBMC. |
|||
===Principe de fonctionnement=== |
|||
[[Image:Openhab_plugin_principe.png|Fig 1 : Fonctionnement|thumb|left|800px]] <br/> <br/> <br/> <br/> <br/> <br/><br/> <br/> <br/> <br/> <br/> <br/><br/> |
|||
L'utilisateur accède aux informations concernant son logement grâce à un plugin développé spécialement pour XBMC. Grace à celui-ci, l'utilisateur est en mesure de consulter et d'agir sur les l'états des objets connectés gérés par son serveur openHAB <br/> |
|||
La communication entre le plugin et le serveur openHab est réalisée à l'aide de [http://github.com/openhab/openhab/wiki/REST-API l'API REST] disponible sur les serveur openHAB (la connexion utilisée est du type JSON-RPC). <br/> |
|||
===Architecture logicielle === |
|||
[[Image:Plugin_Openhab_archi.png|Fig 2 : Architecture Logicielle|thumb|left|600px]]<br/> <br/> <br/> <br/> <br/> <br/><br/> <br/><br/> <br/><br/> <br/> |
|||
Le plugin a été développé en Python. Son architecture est décomposée en 3 composants : |
|||
* Le premier est l'OpenHab API qui permet de communiquer simplement avec le serveur, et met à disposition les différents types d'objets disponibles dans un serveur openHab. |
|||
* 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. |
|||
* Le troisième est le composant principal. Il gère l'affichage et l'envoi des requêtes nécéssaires pour modéliser l'habitation dans XBMC. |
|||
<br/> |
|||
Les sources sont disponibles sur le dépôt de sources suivant : https://bitbucket.org/xbmcproject/xbmc/src |
|||
===Installation=== |
|||
====Plugin==== |
|||
L'installation du plugin : <br/> |
|||
1) Récupérer l'archive zip du plugin : [http://air.imag.fr openHab XBMC plugin]<br/> |
|||
2) System -> Addons -> Install from ZIP file -> choose openHab_XBMC_plugin.zip -> Validate<br/> |
|||
Configuration : <br/> |
|||
Par défaut, le plugin utilise les valeurs suivante : |
|||
* Adresse serveur : 127.0.0.1 |
|||
* Port du serveur : 8080 |
|||
* Nom du serveur : demo |
|||
* Id du serveur : demo |
|||
Ces valeurs sont modifiables dans les paramètres du plugin. <br/> |
|||
====OpenHab==== |
|||
Les détails concernant l'installation d'OpenHab sont disponible sur [http://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server le wiki du projet openHab]. <br/> |
|||
===Aperçu=== |
|||
[[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]]<br/> |
|||
[[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]]<br/> |
|||
== Plugin Philips Hue == |
|||
== Plugin Caméra de surveillance == |
|||
== Télécommande == |
|||
=== Réflexivité === |
|||
=== NFC === |
|||
Le module NFC ajouté dans la télécommande Android d'XBMC permet de lancer un artiste ou un type de musique. <br/> |
|||
==== Principe de fonctionnement ==== |
|||
[[Image:NFC_fonctionnement.png| Fonctionnement NFC |thumb|left|600px]] <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> |
|||
L'utilisateur à la possibilité de lire et d'écrire un TAG NFC depuis la télécommande d'XBMC. <br/> |
|||
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'API JSON-RPC] disponible sur les instances XBMC.<br/> |
|||
==== Architecture logicielle ==== |
|||
[[Image:NFC_XBMC_archi.png| Fonctionnement NFC |thumb|left|600px]] <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> |
|||
L'activité NFCWriterActivity permet de lire et d'écrire les TAGs NFC. <br/> |
|||
La classe NFCWriterController permet d'envoyer les requêtes de lecture au serveur XBMC. <br/> |
|||
L'activité est lancée par la classe HomeController, lorsque l'utilisateur exécute l'activité NFC depuis le menu principal. Le mode lancé dans ce cas est le mode lecture.L'utilisateur doit approcher un TAG pour que celui-ci soit lu, et la lecture lancée.<br/> |
|||
Le mode écriture peut être activé par l'utilisateur dans les menus musique et genre. <br/> |
|||
Les TAG utilisent la technologie NDEF, et sont configurés de la façon suivante : <br/> |
|||
'''Lecture album :''' <br/> |
|||
*Record 0 : Type |
|||
*Record 1 : Id |
|||
*Record 2 : Name |
|||
*Record 3 : Artist |
|||
*Record 4 : Year |
|||
<br/> |
|||
'''Lecture genre de musique :''' <br/> |
|||
*Record 0 : Type |
|||
*Record 1 : Id |
|||
*Record 2 : Name |
|||
==== Installation ==== |
|||
==== Aperçu ==== |
|||
== Reconnaissance vocale == |
|||
S.A.R.A.H (Self Actuated Residential Automated Habitat) est un système de maison intelligente connectée à l'internet des objets. |
|||
Il permet notamment : |
|||
* reconnaissance vocale et gestuelle via fichiers XML |
|||
* reconnaissance faciale avec une Kinect |
|||
* reconnaissance des QRCodes |
|||
Les requêtes HTTP générées exécutent des scripts NodeJS pour l'interaction domotique ou la recherche d'information. |
|||
=== Fonctionnement === |
|||
Lien vers la description complète : http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/ |
|||
L'architecture de SARAH repose principalement sur un programme C# et un programme NodeJS : |
|||
Le programme C# : |
|||
* Ecoute et identifie des phrases, gestes ou qrcode via un fichier XML et génère une requête HTTP |
|||
* Répond à la requête et produit un retour vocal |
|||
Le programme NodeJS : |
|||
* Exécute un script en fonction de la requête HTTP reçue pour exécuter un programme ou chercher de l'information |
|||
=== Installation === |
|||
==== Prérequis ==== |
|||
Lien : http://domotique-info.fr/2014/02/sarah-installation-premiers-pas/ |
|||
* Microsoft .NET 4.5 |
|||
* Microsoft Speech Platform |
|||
* Speech Platform Runtime |
|||
* SDK Kinect (non nécéssaire pour la reconnaissance vocale) |
|||
==== Tutoriel ==== |
|||
Lien du tutoriel : http://encausse.wordpress.com/2013/02/16/s-a-r-a-h-tutorial-plugin-xbmc/ |
|||
* Télécharger l'archive (version actuelle: 3.1.4) http://encausse.wordpress.com/s-a-r-a-h/ |
|||
* Extraire dans un dossier dont le chemin ne comporte pas d'espaces |
|||
* Dans le répertoire "plugins", créer un dossier "xbmc" |
|||
* Télécharger l'archive https://github.com/PasDeBol/Sarah-Plugin-Xbmc |
|||
* Copier le contenu du répertoire "plugins" de la nouvelle archive (excepté addonSarahAndXbmc.V1.0.zip) dans le dossier "/plugins/xbmc" précédemment créé |
|||
* Modifier le fichier xbmc.prop : |
|||
** remplacer "[FIXME]:[FIXME]" par "127.0.0.1:8077" |
|||
* Décompresser l'archive addonSarahAndXbmc.V1.0.zip présente dans "Sarah-Plugin-Xbmc-master/Sarah-Plugin-Xbmc-master/plugins" |
|||
* Copier le répertoire "sarah.addon" dans le dossier "addons" de XBMC |
|||
=== Configuration de XBMC === |
|||
* System/Services/Webserver |
|||
** Autoriser le contrôle d'XBMC via HTTP |
|||
** Port : 8077 |
|||
** Supprimer le nom d'utilisateur |
|||
** Supprimer le mot de passe |
|||
* System/Services/Remote control |
|||
** Tout autoriser |
|||
* System/System/Video output |
|||
** Mode fenêtré |
|||
* System/System/Audio output |
|||
** Play GUI Sounds : Never |
|||
* Vérification de la configuration |
|||
** "localhost:8077" doit vous rediriger vers l'interface d'XBMC |
|||
** "localhost:8080" doit afficher l'interface web de SARAH |
|||
*** Sur l'interface web cliquer sur l'icône "actualiser" du plugin XBMC -> icône "planète" (documentation) -> "Test de la configuration" et vérifier que tous les contrôles soient OK |
|||
=== Exécution === |
|||
* Dans l'archive "WSRRelease314", lancer "Server_NodeJS.cmd" |
|||
* Lancer "Client_Microphone.cmd" |
|||
* Pour tester, dire "Sarah, il est quelle heure ?" |
|||
* Si Sarah répond, lancer XBMC |
|||
* Dire "Sarah, active le mode XBMC" |
|||
* À partir d'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) |
|||
=== Ajouter de commandes vocales dans SARAH === |
|||
* Ouvrir le fichier "WSRRelease314/plugins/xbmc/xbmc.xml" |
|||
* Ajouter une ligne : <item>(1)<tag>out.action.action="(2)"</tag><tag>out.action.xbmc="(3)" </tag></item> |
|||
** (1) : la commande vocale que vous souhaitez utiliser (exemple: ferme l'application XBMC) |
|||
** (2) : l'action SARAH correspondant à votre commande |
|||
** (3) : |
|||
= Suivi de l'avancement du projet = |
|||
==Sprint 1 (semaine 5) : 27 janvier au 2 février== |
==Sprint 1 (semaine 5) : 27 janvier au 2 février== |
||
Line 304: | Line 126: | ||
* Documentation des dépôts BitBuckets pour les différents plugins |
* Documentation des dépôts BitBuckets pour les différents plugins |
||
* Rédaction du dossier pour le Management de Projet Innovant |
* Rédaction du dossier pour le Management de Projet Innovant |
||
==Sprint 7 (semaine 12) : 17 au 21 mars== |
|||
'''Objectifs :''' <br/> |
|||
* Terminer la reflexive remote |
|||
* Intégrer le plugin de reconnaissance vocale SARAH |
|||
Lundi : |
|||
* Documentation |
|||
* Suite Reflexive remote (Android + noyau) |
|||
Mardi : |
|||
* Suite Reflexive remote (Android + noyau) |
|||
* Etude du plugin SARAH |
|||
Mercredi : |
|||
* Suite Reflexive remote (Android + noyau) |
|||
* Début d'intégration du plugin SARAH |
|||
Jeudi : |
|||
* Fin de l'intégration de SARAH |
|||
* Suite Reflexive remote (Android + noyau) |
|||
Vendredi : |
|||
* Documentation et slides de la présentation |
|||
* Suite Reflexive remote (Android + noyau) |
|||
==Sprint 8 (semaine 13) : 24 au 27 mars== |
|||
'''Objectifs :''' <br/> |
|||
* Terminer et tester la reflexive remote |
|||
* Finaliser toutes les extensions |
|||
* Terminer la documentation (poster, flyers, video, screencast, wiki, code) |
|||
Lundi : |
|||
* Ajout de fonctionnalités au plugin Philips Hue |
|||
* Création du poster et du flyer |
|||
* Fin du plugin Reflexive Remote |
|||
=Dépôts Git= |
=Dépôts Git= |
Latest revision as of 09:56, 26 March 2014
Redirect to:
Suivi de l'avancement du projet
Sprint 1 (semaine 5) : 27 janvier au 2 février
Lundi :
- MPI et Séminaire
Mardi :
- Choix du projet
Mercredi :
- Recherche documentaire sur les différentes technologies envisagées pour le projet
Jeudi :
- Définition des différentes tâches réalisables suite à nos recherches.
Sprint 2 (semaine 6) : 3 au 9 février
Objectifs :
- Ecrire le cahier des charges du projet afin de chiffrer la durée de chaque tâche et leur priorité
- Etudier la réalisation de plugins sur XBMC et réaliser un HelloWord
- Commencer les premières tâches décidées dans le cahier des charges
Lundi :
- MPI et Séminaire
Mardi:
- Finalisation du cahier des charges
Mercredi :
- Hue : Communication avec le système et découverte plugin XBMC
- OpenHab : Création du plugin, étude approfondie d'OpenHab
Jeudi :
- MPI
Vendredi :
- Hue : Intégration à XBMC du code python, et configuration de l'interface de paramétrage
- OpenHab : Récupération des Etages de la maison, et affichage dans XBMC
Sprint 3 (semaine 7) : 10 au 16 février
Objectifs :
- Extension OpenHab : Listes dynamiques des pièces de la maison avec sous menus dynamiques
- Utilisation de l’algo de détermination de k couleurs dominantes (méthode basée sur k-means)
- Extension Philips Hue : intégration de la synchronisation des lampes avec l’image à l’écran. Prise en compte de la vidéo
Lundi :
- MPI et Séminaire
Mardi :
- OpenHab : Recherche sur la navigation dans les menus et traitement des exceptions pouvant être générée.
Mercredi :
- OpenHab : Mise en place de la navigation dans les différentes pièces de la maison, et affichage dans le menu de l'ensemble des capteurs. Etude sur l'utilisation de label générique pour l'affichage des informations et des messages d'erreur.
Vendredi :
- OpenHab : Etude sur les techniques pour réaliser l'interface XBMC d'une pièce. Prototypage à l'aide d'une librairie python de l'affichage des capteurs.
Sprint 4 (semaine 8) : 17 au 23 février
Objectifs :
- Extension OpenHab : Récupération et modification des informations des différentes pièces de la maison
- Extension reflexive remote : Etude de l'existant et compréhension du code
- Extension caméra de surveillance : Intégration dans XBMC (interaction de l'utilisateur avec la caméra depuis l'interface)
Lundi :
- Openhab : recherche affichage des labels à partir de fichier XML
Mardi :
- Openhab : gérer l'affichage des labels et de leurs valeurs, à partir du framework PyXBMCt (http://romanvm.github.io/PyXBMCt/)
Mercredi :
- Openhab : gérer l'affichage des labels et de leurs valeurs, mise en œuvre du framework dans l'interface
Jeudi :
- Openhab : finalisation de l'affichage des labels et de leurs valeurs, gestion des exceptions et tests du plugin
Vendredi :
- Reflexive remote : étude de l'existant
Sprint 5 (semaine 9) : 24 au 28 février
Objectifs :
- Finalisation des plugins : nettoyage et restructuration du code
- Extension reflexive remote
- Intégration de NFC
- Re-priorisation des objectifs
Lundi :
- Openhab : écriture de la doc
- Caméra : auto-configuration
Mardi :
- OpenHab : Validation du plugin
- NFC : Compréhension de NFC et Android
- Caméra : Finalisation du plugin
- Re-priorisation des objectifs : rendez-vous avec N. Palix
Mercredi :
- NFC : Intégration dans la remote
- Reflexive remote : Ecriture du cahier des charges
- Reflexive remote : Récupération du menu principal
Jeudi :
- NFC : Ecriture d'un tag particulier pour lancer un menu de xbmc
- Reflexive remote : Intégration de OpenHab
Vendredi :
- NFC : finalisation de l'application
- Reflexive remote : Finalisation, récupération de la liste des addons
Sprint 6 (semaine 11) : 10 au 14 mars
Objectifs :
- Terminer la reflexive remote
- Récupérer le menu principal de XBMC sous forme de liste
- Ajouter Open Hab dans le menu principal
- Modifier la remote avec les nouveaux menus et les rendre dynamiques
- Déterminer le protocole de communication entre la télécommande et le serveur XBMC
- Gérer la navigation (afficher les listes ou exécuter les plugins)
- Rafraîchir automatiquement la télécommande lors de la sortie de veille, ou en appuyant sur un bouton
Lundi :
- Ajout d'OpenHab dans le menu principal
- Début de l'étape 3: modifier l'interface de l'application selon l'entrée (si c'est une liste l'afficher, sinon lancer la télécommande)
Mardi :
- Etape 3: suite
Mercredi :
- Etape 3: suite
Jeudi :
- Etape 3: fin
Vendredi :
- Documentation de l'étape 3
- Documentation des dépôts BitBuckets pour les différents plugins
- Rédaction du dossier pour le Management de Projet Innovant
Sprint 7 (semaine 12) : 17 au 21 mars
Objectifs :
- Terminer la reflexive remote
- Intégrer le plugin de reconnaissance vocale SARAH
Lundi :
- Documentation
- Suite Reflexive remote (Android + noyau)
Mardi :
- Suite Reflexive remote (Android + noyau)
- Etude du plugin SARAH
Mercredi :
- Suite Reflexive remote (Android + noyau)
- Début d'intégration du plugin SARAH
Jeudi :
- Fin de l'intégration de SARAH
- Suite Reflexive remote (Android + noyau)
Vendredi :
- Documentation et slides de la présentation
- Suite Reflexive remote (Android + noyau)
Sprint 8 (semaine 13) : 24 au 27 mars
Objectifs :
- Terminer et tester la reflexive remote
- Finaliser toutes les extensions
- Terminer la documentation (poster, flyers, video, screencast, wiki, code)
Lundi :
- Ajout de fonctionnalités au plugin Philips Hue
- Création du poster et du flyer
- Fin du plugin Reflexive Remote