Ghome


Guillaume ABADIE, Thierry CANTENOT, Juliette COURLET, Rémi DOMINGUES, Adrien DUFFY-COISSARD, Ahmed KACHKACH

Un projet innovant


... mais réaliste !


une maison...  



... MOINS BÊTE ! 


Nous surveillons votre maison 24h/24*


* La sécurité de vos données est garantie par notre partenaire, la NSA

Alertes automatisées 



Un vrai centre de divertissement !



Des réveils (et une vie) moins difficiles



Un Kiosque à presse



Une garde-robe intelligente

 

Un système modulable, générique







Démonstration

Architecture & conception



Architecture Réseau


Une architecture modulaire




  • Faible couplage entre les différents blocs (serveur EnOcean, serveur web et serveur multimédia)

  • Communication via divers protocoles bas-niveau (EnOcean) ou haut-niveau (HTTP REST, RPC, ...)

Architecture REST


Fonctionnalités GHome exposées et utilisables par de simples requêtes HTTP :

 GET /device/1337/readings

 POST /device/1337/ignore

 GET /temperature/

 GET /weather/

 POST /play_music/jazz

Utilisée pour réaliser notre client web !

Des clients multi-platforme


  • Interfaces responsive
  • Exploitent les technologies web
  • Fonctionnelles sur téléphone, tablette ou PC.

Un système simple & générique



  • Interopérabilité entre différents types de capteurs, actionneurs

  • Facilité d'ajout de capteurs (depuis l'interface graphique) et de nouveaux types de capteurs (interface applicative)

Système ÉVÉNEMENTIEL


Un système générique permettant de lier:

. Un événement (ouverture d'une fenêtre, baisse de température, ...)

à

. Une action (allumer une lampe, éteindre le chauffage, faire un appel téléphonique, ....)

Technologies & outils


Backend : Python


MongoDB



  • Base de données NoSQL
  • Alliée à un ORM, mongoengine

Réseau : Twisted


Backend web: Flask



Frontend : Handlebarjs



  • Templating côté client
  • Idéal pour une architecture REST

VUE 3D : WEBGL





APIs De Services web

Météo : METWIT

Musique : 8tracks


NEWS : RSS



Vêtements : Shopstyle



TÉLÉPHONE : Twilio







OrganisatioN du projet

Trello


Gestion de projet basée sur le paradigme kanban


Séparation du travail en "modules"


  • Une personne spécialisée dans un ou plusieurs "modules" (vue 3D, musique, news, ...)

  • De cette manière nous avons tous fait du full-stack : du frontend (HTML, CSS, JS) au backend (Python, MongoDB)

Qualité & tests




  • Tests unitaires et fonctionnels des modules.

  • Utiles pour éviter les régression, même si difficile à mettre en place pour certaines fonctionnalités (réseau)


Fin !



Questions ?

Ghome

By hexamome

Ghome

  • 1,035