Proj-2014-2015-OpenHAB-ExtendedGUI: Difference between revisions
No edit summary |
|||
(59 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== Context == |
== Context == |
||
Aujourd'hui la domotique a du mal à s'implanter, du fait de sa complexité et sa faible flexibilité. < |
Aujourd'hui la domotique a du mal à s'implanter, du fait de sa complexité et sa faible flexibilité. <br/> |
||
Ce reel problème nous permet de réaliser un projet sur la création d’une application étant destinée à simplifier la domotique, afin de la rendre utilisable par tout le monde, nous entendons par là, mère/père de famille ou personnes âgées. |
Ce reel problème nous permet de réaliser un projet sur la création d’une application étant destinée à simplifier la domotique, afin de la rendre utilisable par tout le monde, nous entendons par là, mère/père de famille ou personnes âgées. |
||
== Description == |
== Description == |
||
Nous devrons créer, une interface simple adaptée à des personnes d’un certain âge. L’utilisateur devra décrire sa maison sous forme hiérarchique (voir ci-dessous). Le système détectera les composants de domotique avec l’aide du protocole UPnP, configurera le composant dans le réseau. L’utilisateur devra alors ajouter dans la pièce le matériel détecté. La plupart du temps le composant entre dans une certaine catégorie, de se fait nous lui proposerons différentes action disponible (type IFTTT) pour un composant. |
Nous devrons créer, une interface simple adaptée à des personnes d’un certain âge. L’utilisateur devra décrire sa maison sous forme hiérarchique (voir ci-dessous). Le système détectera les composants de domotique avec l’aide du protocole UPnP, configurera le composant dans le réseau. L’utilisateur devra alors ajouter dans la pièce le matériel détecté. La plupart du temps le composant entre dans une certaine catégorie, de se fait nous lui proposerons différentes action disponible (type IFTTT) pour un composant. |
||
NomMaison1 |
|||
Etage1 |
|||
---- |
|||
NomPiece1 |
|||
NomMaison1<br> |
|||
NomComposant1 |
|||
Etage1<br> |
|||
NomComposant2 |
|||
NomPiece2 |
|||
NomComposant1<br> |
|||
NomComposant1 |
|||
NomComposant2<br> |
|||
NomComposant2 |
|||
NomPiece2<br> |
|||
Etage2 |
|||
NomComposant1<br> |
|||
NomPiece1 |
|||
NomComposant2<br> |
|||
NomComposant1 |
|||
NomPiece3<br> |
|||
NomComposant2 |
|||
Etage2<br> |
|||
NomPiece2 |
|||
NomPiece1<br> |
|||
NomComposant1 |
|||
NomComposant2 |
|||
NomPiece2 <br> |
|||
NomComposant1<br> |
|||
NomComposant2<br> |
|||
NomPiece3<br> |
|||
Afin de mieux comprendre ce que le projet doit faire nous vous laissons suivre le schéma ci dessous apportant une description illustré du projet : |
|||
NomMaison2<br> |
|||
Etage1<br> |
|||
NomPiece1<br> |
|||
NomPiece2<br> |
|||
NomComposant1<br> |
|||
NomComposant2<br> |
|||
NomPiece3<br> |
|||
Etage2<br> |
|||
NomPiece1<br> |
|||
NomPiece2<br> |
|||
NomPiece3<br> |
|||
NomComposant1<br> |
|||
NomComposant2<br> |
|||
[[File:Projet.png|800px|center]] |
|||
---- |
|||
Mots clés : détection, domotique, interface, simplicité. |
<b>Mots clés</b> : détection, domotique, interface, simplicité, flexibilité. |
||
Notre produit doit répondre au scénario suivant : |
|||
Les élèves entrent en classe et signalent leur présence puis s'installent à leur poste de travail. L'enseignant fait de même, et accède à sa plateforme de travail où il dispose des cours et examens qu'il a éventuellement pu préparer à l'avance. |
|||
L'enseignant peut alors soumettre un QCM aux étudiants. Ceux-ci y répondent de manière individuelle, puis soumettent leur réponse à l'enseignant. Ce dernier a alors la possibilité de consulter les résultats, et les afficher de manière thématique. De ce fait, il dispose du droit de revenir sur un point du cours qu'il lui parait intéressant de souligner (notamment si une majorité d'élèves n'en a pas bien saisi le sens), et il peut également réorganiser les étudiants en groupe de travail. |
|||
==Product functions== |
==Product functions== |
||
* Interface utilisateur (HTML5 pour plus de flexibilité). |
|||
* Individual and secured idendentification |
|||
* Détection automatique de nouveaux composants. |
|||
* Creation of courses' constituents |
|||
* Possibilité d'ajouter un composant dans une catégorie (Pièce, ...) |
|||
* Reply to the test by the students |
|||
* Paramétrer un composant ajouté(ex. Marche/Arrêt). |
|||
* Results display |
|||
* Reorganisation of the students in working groups depending on their level |
|||
==Product evolution== |
==Product evolution== |
||
Au niveau des évolutions pouvant être proposer, nous pouvons imaginer que l'utilisateur peut lui meme créer ses règles (en utilisant le style IFTTT). Une autre évolution serai de proposer plus de fonctionnalité à l'utilisateur. |
|||
SmartClassroom project is based on a couple of storylines realized by different groups, and we are only working on one of these. |
|||
Future upgrades of this environment could be put forward and implemented by other groups in charge of developing this project. |
|||
= Project team = |
= Project team = |
||
Tuteurs : Didier Donsez, Amr Alzouhri-Alyafi |
|||
[[Proj-2014-2015- |
[[Proj-2014-2015-OpenHAB-ExtendedGUI|OpenHAB-ExtendedGUI]] |
||
*Sébastien TOUSSAINT |
|||
*Marie Darrigol |
|||
*Thibault SAUSSAC |
|||
*Alan Damotte |
|||
[[Proj-2014-2015-SmartClassroom-Team2|Identification and communication between the students and the teacher]] |
|||
*Romain Barthelemy |
|||
*Anthony Léonard |
|||
=Links= |
=Links= |
||
*[[ |
*[[Projet-2014-2015-OpenHAB-ExtendedGUI/UML|UML Diagrams]] |
||
*[[ |
*[[Projet-2014-2015-OpenHAB-ExtendedGUI/SRS|Requirements]] |
||
=Project schedule= |
=Project schedule= |
||
Le projet a commencé depuis le 13 Janvier 2015. |
|||
The project has begun in January the 13th. |
|||
== Week 1 (January, 13rd - January, 18th) == |
== Week 1 (January, 13rd - January, 18th) == |
||
* Réflexion sur la compréhension du sujet. L'énoncé du projet étant vague, nous avons eu besoin notamment de comprendre le fonctionnement des technos UPnP, IFTTT... |
|||
* Meeting with Jérome Maisonnasse and Amr Alzouhri-Alyafi for the presentation of Smart Classroom, current projects and projects that can be done. |
|||
* Réflexion sur l'axe de travail envisagé de façon à obtenir un projet qui corresponde aux options respectives que nous faisons (projet divisé en deux sous-parties) |
|||
== Week 2 (January, 19th - Janurary, 25th) == |
== Week 2 (January, 19th - Janurary, 25th) == |
||
* Presentation |
* Presentation de notre projet |
||
* Mise en contact avec |
* Mise en contact avec le personnel de la FABLAB |
||
* Prise en main du matériel et recherche sur les technologies envisageables pour la réalisation du projet |
* Prise en main du matériel et recherche sur les technologies envisageables pour la réalisation du projet |
||
* Prise en main d'OpenHAB |
* Prise en main d'[[OpenHAB]] |
||
* Prise en main |
* Prise en main du protocole UPnP |
||
* Prise en main du dongle NFC + lecture/écriture de tag NFC |
|||
* Réalisation de la fiche SRS (exigences) |
* Réalisation de la fiche SRS (exigences) |
||
== Week 3 (January, 26th - February, 1st) == |
== Week 3 (January, 26th - February, 1st) == |
||
* Réalisation des premiers diagrammes UML (cas d'utilisation, diagramme des classes et diagrammes de séquence) |
* Réalisation des premiers diagrammes UML (cas d'utilisation, diagramme des classes et diagrammes de séquence) |
||
* Récupération de la caméra infrarouge utilisation la techno [http://air.imag.fr/index.php/UPnP UPnP] pour la détection auto des composant. |
|||
* Rencontre avec les étudiants de l'ENSIMAG et passation du projet |
|||
* Création d'un serveur [http://air.imag.fr/index.php/UPnP UPnP] |
|||
* Après réunion sur l'avancement du projet quelques liens utiles pour une implémentation d'un bundle OSGi qui implémente la spécification "[http://air.imag.fr/index.php/UPnP UPnP] Base Driver". |
|||
http://felix.apache.org/documentation/subprojects/apache-felix-upnp.html |
|||
== Week 4 (February, 2nd - February, 8th) == |
|||
http://mir2.ovh.net/ftp.apache.org/dist//felix/org.apache.felix.upnp.basedriver-0.8.0.jar |
|||
Dépôt général : Digital Security Camera V 1.0http://felix.apache.org/downloads.cgi |
|||
org.apache.felix.upnp.basedriver-0.8.0.jar à mettre dans les addons |
|||
AP: voir Digital Security Camera V 1.0 http://upnp.org/specs/ha/digitalsecuritycamera/ |
|||
== Week 4 (February, 2nd - February, 8th) == |
|||
* Début de l'intégration de [http://air.imag.fr/index.php/UPnP UPnP] dans [http://air.imag.fr/index.php/OpenHAB OpenHAB] (Problème avec cette intégration... Réglage en cours...) |
|||
* Premier début dans le monde de Scrum, utilisation du site [https://waffle.io/saussact/projet waffle.io] permettant de mettre en place Scrum pour notre projet. |
|||
== Week 5 (February, 9th - February, 15th) == |
== Week 5 (February, 9th - February, 15th) == |
||
*Récupération de la caméra [http://www.dlink.com/fr/fr/home-solutions/view/network-cameras/dcs-5222l-pan-tilt-zoom-cloud-camera DCS-5222l].<br> |
|||
*Installation de la caméra sur réseau LAN<br> |
|||
*Première configuration afin de voir les premieres video de la camera. <br> |
|||
*TOUT Fonctionne<br> |
|||
*Documentation sur OSGi |
|||
== Week 6 (February, 16th - February, 22nd) == |
|||
== Week 6 (February, 16th - February, 22nd) == |
|||
*Interruption pédagogique |
|||
*Documentation sur le binding sur OpenHab |
|||
*Documentation OSGi |
|||
*Création de fichier .siteMaps à partir d'un formulaire. |
|||
== Week 7 (February, 23rd - March, 1st) == |
== Week 7 (February, 23rd - March, 1st) == |
||
*Installation de Maven sur nos machines |
|||
*Documentation sur OSGi et UPnP, |
|||
*Analyse des couches d'OpenHAB |
|||
== Week 8 (March, 2nd - March, 8th) == |
|||
*Intégration de l'interface graphique permettant d'administrer OpenHAB |
|||
*Cette interface et sa documentation sont à retrouver sur : [https://github.com/cdjackson/HABmin HABmin] |
|||
*Plusieurs aide au niveau de UPnP afin de mieux comprendre le binding et le bundle à créer |
|||
*[https://www.dropbox.com/sh/2qbvju5ea3germ5/AAAgOgf20kM-hEGUd9gLeYJ-a?dl=0 exemple de code UPnP de Didier Donsez] |
|||
*[http://felix.apache.org/documentation/subprojects/apache-felix-service-component-runtime.html Documentation félix sur le Runtime] |
|||
*[https://github.com/openhab/openhab/search?utf8=%E2%9C%93&q=scr Les SCR sur openHAB] |
|||
*[https://github.com/openhab/openhab/blob/6249457ff8c67ab92ac752690e433dbf0a71d99f/bundles/action/org.openhab.action.xbmc/OSGI-INF/action.xml exemple d'action xml sur openHAB] |
|||
== Week 9 (March, 9th - March, 15th) == |
|||
*Tentative d'implémentation de binding à partir des fichiers de D.Donsez. |
|||
*Package binding généré. |
|||
*Intégration dans openHab OK |
|||
*Mais problèmes à cause d'un manque de librairie dans OPENHAB ==> Echec |
|||
*Recherche de solution aux problèmes en vain....... |
|||
== Week 10 (March, 16th - March, 22nd) == |
|||
*Didier Donsez nous a expliqué en détail comment fonctionne les fichiers dans son code. |
|||
*Nous avons chercher ensuite de notre coté plus d'informations dessus : |
|||
[https://maven.apache.org/guides/introduction/introduction-to-the-pom.html Pom.xml] |
|||
[https://maven.apache.org/plugins/maven-jar-plugin/examples/manifest-customization.html Manifest] |
|||
[http://lig-membres.imag.fr/donsez/cours/maven.pdf Cours de D.Donsez sur Maven] |
|||
*Nous n'avons travaillé sur les commandes pour le réalisé après les explications. |
|||
*Mais ne fonctionne pas, ni sur Félix ni sur Openhab |
|||
== Week 11 (March, 23th - March, 29th) == |
|||
*En faite --> cette erreur est normal. Didier Donsez a essayé lui aussi de faire cette integration. Et à constater lui aussi que cela n'était pas possible.... |
|||
*Implémentation avec l'aide de Didier de UpnP commande. Encore une fois, ce fut un échec. |
|||
== Week 12 (March, 30th - April, 5nd) == |
|||
*Apres les différents échec avec la partie UPnP |
|||
*Création de la maison |
|||
*Modification de la Maison |
|||
*Interaction avec la camera DSC-5222L à partir d'openHAB |
|||
*Problèmes rencontrés : Impossible de lire un flux video avec OpenHAB pour résoudre cela après analyse, Pour voir la video et intégrer avec la camera nous fournissons l'interface Dlink au client. |
|||
*Mise en place d'une règle sur la camera pour l'alerte. |
|||
== Week 13 (April, 6th - April, 8nd) == |
|||
*Rédaction du rapport de projet |
|||
*Powerpoint pour la présentation |
|||
*Préparation de la soutenance |
|||
*Fini de la rédaction de notre [http://air.imag.fr/index.php?title=Proj-2014-2015-OpenHAB-ExtendedGUI wiki] |
|||
= Bilan = |
|||
Le projet tirant à sa fin il est temps pour nous de faire un bilan à chaud de la situation du projet, pour cela nous vous présentons le travail réalisé puis les difficultés que nous avons rencontrées. |
|||
== Travail Réalisé == |
|||
===Partie UPnP=== |
|||
====Félix Apache==== |
|||
Définitions |
|||
Apache Felix est un espace communautaire qui tente de promouvoir OSGi Framework et les technologies ayant des liens avec OSGi. OSGi était utilisé à l’origine pour les systèmes embarqués et les services de passerelles résidentielles, mais les projets actuels sont orientés vers des principes de modularité de composants, et/ou services orientés. La technologie OSGi combine des aspects de ces principes susmentionnés pour définir un cadre de déploiement de service dynamique qui se prête à la gestion à distance. |
|||
L’OSGi Alliance (précédemment connue en tant qu'Open Services Gateway initiative) est une organisation qui spécifie une plate-forme de services fondée sur le langage Java qui peut être gérée de manière distante. |
|||
Travail réalisé |
|||
Nous avons installé cette distribution dans le but de pouvoir tester nos différents Bundles avant de les insérer dans OpenHAB. |
|||
Nous avons choisi d’utiliser cet utilitaire car il est intégré en grande partie dans OpenHAB, cela nous a parfois joué des tours. En effet puisque certaines fonctionnalités ne sont pas importantes, il est impossible d’intégrer les Bundles. |
|||
Tous les tests réalisés pour ce projet ont été faits à partir de cette distribution. |
|||
====Tester UPnP==== |
|||
Définition |
|||
Tester UPnP, est un bundle permettant d’explorer le réseau. Ce bundle va localiser les différents composants UPnP sur le réseau. |
|||
Travail Réalisé |
|||
Ce composant permet de récupérer différentes informations relatives au composant UPnP détecté. En effet lorsque nous lançons le tester nous pouvons voir ci dessous les différents services UPnP (Nous identifions notamment la caméra): |
|||
Pour chaque composant nous avons la possibilité de visualiser différentes informations relatives à un appareil. Ici nous vous donnons l’exemple pour la Caméra. Nous y voyons son type, son nom, son numéro de série, son IP … |
|||
Nous avons donc déployé le bundle dans le framework Félix. |
|||
Nous avons intégré et modifié le tester dans éclipse afin qu’il soit intégré dans OpenHAB. |
|||
Nous obtenons les mêmes résultats que ceux visualisés ci-dessus dans le framework Félix. |
|||
====UPnP commande==== |
|||
Après avoir compris le fonctionnement d’UPnP tester, nous avons tenté d’ajouter des commandes supplémentaires au framework Félix (et par la suite à OpenHAB). |
|||
Ces commandes permettront d’afficher l’ensemble des Devices UPnP sur le réseau et dans un second temps de les afficher dans l’interface d’OpenHAB. |
|||
La première implémentation ne fonctionnait pas, nous avons donc, avec l’aide de M. Donsez, visualisé le problème d’un peu plus près. En fait, cette erreur était normale car cela est impossible. Didier Donsez a essayé, lui aussi, de faire cette intégration mais en a conclu de même. |
|||
Nous sommes donc partis pour une seconde implémentation avec l'aide de M. Donsez mais malgré l’importation des différents bundles nécessaires (IPoJo, etc) l’implémentation ne fonctionne pas dans Felix, et donc forcément pas dans OpenHAB. |
|||
===Partie Interface d’administration=== |
|||
Dans un second temps, il nous a été demandé de pouvoir administrer la maison à l’aide d’une interface graphique. L’utilisateur devra pouvoir ajouter des appareils, les paramétrer... etc. |
|||
Nous avons dans un premier temps créé une interface permettant de lire le fichier .item. Par la suite nous affichons à l’utilisateur les composants qu’il a déjà. Nous lui proposons d’ajouter aussi un appareil, pour cela l’interface écrit dans le fichier .item les informations saisies dans le formulaire par l’utilisateur. |
|||
Après ce travail nous avons utilisé l’interface HABmin qui offre des alternatives bien plus intéressantes, en effet nous pouvons y afficher des graphiques… etc. |
|||
Nous pouvons voir, ci-dessous, différentes opérations que nous avons la possibilité de faire avec cet utilitaire. |
|||
===Interaction avec la caméra=== |
|||
Il nous a été mis à disposition une caméra de surveillance : DSC 5222L. |
|||
Nous avons donc installé cette caméra sur notre réseau. Elle utilise DHCP donc elle se configurera automatiquement sur le réseau dès qu’elle se connectera. |
|||
Nous pouvons faire différentes interactions avec la caméra, comme : |
|||
*Faire tourner. |
|||
*Visualiser la vidéo. |
|||
*Appliquer différentes alertes. |
|||
*Changer l’adresse IP. |
|||
*Différentes configurations. |
|||
Nous pouvons voir ci-dessous différentes fonctionnalités pouvant être réalisé sur la caméra. |
|||
== Difficultés rencontrées == |
|||
*Nouvelles technologies |
|||
Ce projet présente un ensemble de technologies incroyables. Ces technologies sont entièrement nouvelles pour nous. Il nous a donc été difficile de comprendre les différentes structures. Cela nous a pris un temps considérable qui a fortement impacté l’avancement du projet. |
|||
*OpenHAB |
|||
Nous avons pu voir ici les limites de la communauté d’openHAB. En effet, sur des problèmes très spécifiques, comme nous avions, nous n’avons pas trouvé de personnes pour nous renseigner, malgré des postes pour exposer nos problèmes, nous sommes souvent restés sans réponses à nos questions. |
|||
== Notre ressenti == |
|||
Pour ce projet nous avons deux grands sentiments qui ressortent, tout d’abord celui d’inachevé, qui nous laisse un goût amer. En effet, nous n’avons pas pu réaliser l’ensemble des fonctionnalités demandées pour ce projet. La gestion de notre temps n’a pas été bonne, puisque nous n’avions à ce jour jamais eu à faire face à un problème aussi complexe que l’OSGi. La partie documentation a donc été bien plus longue que prévu. |
|||
Cependant il ressort aussi un sentiment de satisfaction puis que nous avons maintenant de nombreuses bases sur OpenHAB et nous avons bien compris l’utilité et le fonctionnement du protocole UPnP et OSGi. |
|||
Nous pouvons dire que ce projet nous permettra de plus rapidement prendre du recul sur nos projets futurs. Il nous a aussi permis de bien penser qu’il est important de veiller à se documenter correctement avant de commencer à coder. |
|||
* des liens vers une implémentation d'un bundle OSGi qui implémente la spécification "UPnP Base Driver". |
|||
= Références = |
|||
* http://felix.apache.org/documentation/subprojects/apache-felix-upnp.html |
|||
*[http://lig-membres.imag.fr/donsez/cours/exemplesosgi/ Site et cours de Didier Donsez] |
|||
* http://mir2.ovh.net/ftp.apache.org/dist//felix/org.apache.felix.upnp.basedriver-0.8.0.jar |
|||
*[http://www.openhab.org OpenHAB] |
|||
*[http://www.upnp.org UPnP] |
|||
*[https://eclipse.org Eclipse] |
|||
*[http://felix.apache.org Apache Félix] |
|||
*[http://lig-membres.imag.fr/donsez/cours/exemplesosgi/tutorialosgi.htm Tutorial sur OSGi par D.DONSEZ] |
Latest revision as of 20:44, 7 April 2015
Project presentation
Context
Aujourd'hui la domotique a du mal à s'implanter, du fait de sa complexité et sa faible flexibilité.
Ce reel problème nous permet de réaliser un projet sur la création d’une application étant destinée à simplifier la domotique, afin de la rendre utilisable par tout le monde, nous entendons par là, mère/père de famille ou personnes âgées.
Description
Nous devrons créer, une interface simple adaptée à des personnes d’un certain âge. L’utilisateur devra décrire sa maison sous forme hiérarchique (voir ci-dessous). Le système détectera les composants de domotique avec l’aide du protocole UPnP, configurera le composant dans le réseau. L’utilisateur devra alors ajouter dans la pièce le matériel détecté. La plupart du temps le composant entre dans une certaine catégorie, de se fait nous lui proposerons différentes action disponible (type IFTTT) pour un composant.
NomMaison1 Etage1 NomPiece1 NomComposant1 NomComposant2 NomPiece2 NomComposant1 NomComposant2 Etage2 NomPiece1 NomComposant1 NomComposant2 NomPiece2 NomComposant1 NomComposant2
Afin de mieux comprendre ce que le projet doit faire nous vous laissons suivre le schéma ci dessous apportant une description illustré du projet :
Mots clés : détection, domotique, interface, simplicité, flexibilité.
Product functions
- Interface utilisateur (HTML5 pour plus de flexibilité).
- Détection automatique de nouveaux composants.
- Possibilité d'ajouter un composant dans une catégorie (Pièce, ...)
- Paramétrer un composant ajouté(ex. Marche/Arrêt).
Product evolution
Au niveau des évolutions pouvant être proposer, nous pouvons imaginer que l'utilisateur peut lui meme créer ses règles (en utilisant le style IFTTT). Une autre évolution serai de proposer plus de fonctionnalité à l'utilisateur.
Project team
Tuteurs : Didier Donsez, Amr Alzouhri-Alyafi
- Sébastien TOUSSAINT
- Thibault SAUSSAC
Links
Project schedule
Le projet a commencé depuis le 13 Janvier 2015.
Week 1 (January, 13rd - January, 18th)
- Réflexion sur la compréhension du sujet. L'énoncé du projet étant vague, nous avons eu besoin notamment de comprendre le fonctionnement des technos UPnP, IFTTT...
Week 2 (January, 19th - Janurary, 25th)
- Presentation de notre projet
- Mise en contact avec le personnel de la FABLAB
- Prise en main du matériel et recherche sur les technologies envisageables pour la réalisation du projet
- Prise en main d'OpenHAB
- Prise en main du protocole UPnP
- Réalisation de la fiche SRS (exigences)
Week 3 (January, 26th - February, 1st)
- Réalisation des premiers diagrammes UML (cas d'utilisation, diagramme des classes et diagrammes de séquence)
- Récupération de la caméra infrarouge utilisation la techno UPnP pour la détection auto des composant.
- Création d'un serveur UPnP
- Après réunion sur l'avancement du projet quelques liens utiles pour une implémentation d'un bundle OSGi qui implémente la spécification "UPnP Base Driver".
http://felix.apache.org/documentation/subprojects/apache-felix-upnp.html http://mir2.ovh.net/ftp.apache.org/dist//felix/org.apache.felix.upnp.basedriver-0.8.0.jar
Dépôt général : Digital Security Camera V 1.0http://felix.apache.org/downloads.cgi
org.apache.felix.upnp.basedriver-0.8.0.jar à mettre dans les addons
AP: voir Digital Security Camera V 1.0 http://upnp.org/specs/ha/digitalsecuritycamera/
Week 4 (February, 2nd - February, 8th)
- Début de l'intégration de UPnP dans OpenHAB (Problème avec cette intégration... Réglage en cours...)
- Premier début dans le monde de Scrum, utilisation du site waffle.io permettant de mettre en place Scrum pour notre projet.
Week 5 (February, 9th - February, 15th)
- Récupération de la caméra DCS-5222l.
- Installation de la caméra sur réseau LAN
- Première configuration afin de voir les premieres video de la camera.
- TOUT Fonctionne
- Documentation sur OSGi
Week 6 (February, 16th - February, 22nd)
- Interruption pédagogique
- Documentation sur le binding sur OpenHab
- Documentation OSGi
- Création de fichier .siteMaps à partir d'un formulaire.
Week 7 (February, 23rd - March, 1st)
- Installation de Maven sur nos machines
- Documentation sur OSGi et UPnP,
- Analyse des couches d'OpenHAB
Week 8 (March, 2nd - March, 8th)
- Intégration de l'interface graphique permettant d'administrer OpenHAB
- Cette interface et sa documentation sont à retrouver sur : HABmin
- Plusieurs aide au niveau de UPnP afin de mieux comprendre le binding et le bundle à créer
*exemple de code UPnP de Didier Donsez *Documentation félix sur le Runtime *Les SCR sur openHAB *exemple d'action xml sur openHAB
Week 9 (March, 9th - March, 15th)
- Tentative d'implémentation de binding à partir des fichiers de D.Donsez.
- Package binding généré.
- Intégration dans openHab OK
- Mais problèmes à cause d'un manque de librairie dans OPENHAB ==> Echec
- Recherche de solution aux problèmes en vain.......
Week 10 (March, 16th - March, 22nd)
- Didier Donsez nous a expliqué en détail comment fonctionne les fichiers dans son code.
- Nous avons chercher ensuite de notre coté plus d'informations dessus :
Pom.xml Manifest Cours de D.Donsez sur Maven
- Nous n'avons travaillé sur les commandes pour le réalisé après les explications.
- Mais ne fonctionne pas, ni sur Félix ni sur Openhab
Week 11 (March, 23th - March, 29th)
- En faite --> cette erreur est normal. Didier Donsez a essayé lui aussi de faire cette integration. Et à constater lui aussi que cela n'était pas possible....
- Implémentation avec l'aide de Didier de UpnP commande. Encore une fois, ce fut un échec.
Week 12 (March, 30th - April, 5nd)
- Apres les différents échec avec la partie UPnP
- Création de la maison
- Modification de la Maison
- Interaction avec la camera DSC-5222L à partir d'openHAB
- Problèmes rencontrés : Impossible de lire un flux video avec OpenHAB pour résoudre cela après analyse, Pour voir la video et intégrer avec la camera nous fournissons l'interface Dlink au client.
- Mise en place d'une règle sur la camera pour l'alerte.
Week 13 (April, 6th - April, 8nd)
- Rédaction du rapport de projet
- Powerpoint pour la présentation
- Préparation de la soutenance
- Fini de la rédaction de notre wiki
Bilan
Le projet tirant à sa fin il est temps pour nous de faire un bilan à chaud de la situation du projet, pour cela nous vous présentons le travail réalisé puis les difficultés que nous avons rencontrées.
Travail Réalisé
Partie UPnP
Félix Apache
Définitions
Apache Felix est un espace communautaire qui tente de promouvoir OSGi Framework et les technologies ayant des liens avec OSGi. OSGi était utilisé à l’origine pour les systèmes embarqués et les services de passerelles résidentielles, mais les projets actuels sont orientés vers des principes de modularité de composants, et/ou services orientés. La technologie OSGi combine des aspects de ces principes susmentionnés pour définir un cadre de déploiement de service dynamique qui se prête à la gestion à distance.
L’OSGi Alliance (précédemment connue en tant qu'Open Services Gateway initiative) est une organisation qui spécifie une plate-forme de services fondée sur le langage Java qui peut être gérée de manière distante.
Travail réalisé
Nous avons installé cette distribution dans le but de pouvoir tester nos différents Bundles avant de les insérer dans OpenHAB.
Nous avons choisi d’utiliser cet utilitaire car il est intégré en grande partie dans OpenHAB, cela nous a parfois joué des tours. En effet puisque certaines fonctionnalités ne sont pas importantes, il est impossible d’intégrer les Bundles.
Tous les tests réalisés pour ce projet ont été faits à partir de cette distribution.
Tester UPnP
Définition Tester UPnP, est un bundle permettant d’explorer le réseau. Ce bundle va localiser les différents composants UPnP sur le réseau.
Travail Réalisé Ce composant permet de récupérer différentes informations relatives au composant UPnP détecté. En effet lorsque nous lançons le tester nous pouvons voir ci dessous les différents services UPnP (Nous identifions notamment la caméra):
Pour chaque composant nous avons la possibilité de visualiser différentes informations relatives à un appareil. Ici nous vous donnons l’exemple pour la Caméra. Nous y voyons son type, son nom, son numéro de série, son IP …
Nous avons donc déployé le bundle dans le framework Félix.
Nous avons intégré et modifié le tester dans éclipse afin qu’il soit intégré dans OpenHAB.
Nous obtenons les mêmes résultats que ceux visualisés ci-dessus dans le framework Félix.
UPnP commande
Après avoir compris le fonctionnement d’UPnP tester, nous avons tenté d’ajouter des commandes supplémentaires au framework Félix (et par la suite à OpenHAB).
Ces commandes permettront d’afficher l’ensemble des Devices UPnP sur le réseau et dans un second temps de les afficher dans l’interface d’OpenHAB.
La première implémentation ne fonctionnait pas, nous avons donc, avec l’aide de M. Donsez, visualisé le problème d’un peu plus près. En fait, cette erreur était normale car cela est impossible. Didier Donsez a essayé, lui aussi, de faire cette intégration mais en a conclu de même. Nous sommes donc partis pour une seconde implémentation avec l'aide de M. Donsez mais malgré l’importation des différents bundles nécessaires (IPoJo, etc) l’implémentation ne fonctionne pas dans Felix, et donc forcément pas dans OpenHAB.
Partie Interface d’administration
Dans un second temps, il nous a été demandé de pouvoir administrer la maison à l’aide d’une interface graphique. L’utilisateur devra pouvoir ajouter des appareils, les paramétrer... etc.
Nous avons dans un premier temps créé une interface permettant de lire le fichier .item. Par la suite nous affichons à l’utilisateur les composants qu’il a déjà. Nous lui proposons d’ajouter aussi un appareil, pour cela l’interface écrit dans le fichier .item les informations saisies dans le formulaire par l’utilisateur.
Après ce travail nous avons utilisé l’interface HABmin qui offre des alternatives bien plus intéressantes, en effet nous pouvons y afficher des graphiques… etc.
Nous pouvons voir, ci-dessous, différentes opérations que nous avons la possibilité de faire avec cet utilitaire.
Interaction avec la caméra
Il nous a été mis à disposition une caméra de surveillance : DSC 5222L.
Nous avons donc installé cette caméra sur notre réseau. Elle utilise DHCP donc elle se configurera automatiquement sur le réseau dès qu’elle se connectera.
Nous pouvons faire différentes interactions avec la caméra, comme :
- Faire tourner.
- Visualiser la vidéo.
- Appliquer différentes alertes.
- Changer l’adresse IP.
- Différentes configurations.
Nous pouvons voir ci-dessous différentes fonctionnalités pouvant être réalisé sur la caméra.
Difficultés rencontrées
- Nouvelles technologies
Ce projet présente un ensemble de technologies incroyables. Ces technologies sont entièrement nouvelles pour nous. Il nous a donc été difficile de comprendre les différentes structures. Cela nous a pris un temps considérable qui a fortement impacté l’avancement du projet.
- OpenHAB
Nous avons pu voir ici les limites de la communauté d’openHAB. En effet, sur des problèmes très spécifiques, comme nous avions, nous n’avons pas trouvé de personnes pour nous renseigner, malgré des postes pour exposer nos problèmes, nous sommes souvent restés sans réponses à nos questions.
Notre ressenti
Pour ce projet nous avons deux grands sentiments qui ressortent, tout d’abord celui d’inachevé, qui nous laisse un goût amer. En effet, nous n’avons pas pu réaliser l’ensemble des fonctionnalités demandées pour ce projet. La gestion de notre temps n’a pas été bonne, puisque nous n’avions à ce jour jamais eu à faire face à un problème aussi complexe que l’OSGi. La partie documentation a donc été bien plus longue que prévu.
Cependant il ressort aussi un sentiment de satisfaction puis que nous avons maintenant de nombreuses bases sur OpenHAB et nous avons bien compris l’utilité et le fonctionnement du protocole UPnP et OSGi.
Nous pouvons dire que ce projet nous permettra de plus rapidement prendre du recul sur nos projets futurs. Il nous a aussi permis de bien penser qu’il est important de veiller à se documenter correctement avant de commencer à coder.