Projet S.A.R.A.H => l’internet des objets

S.A.R.A.H.

L’objectif du Projet S.A.R.A.H est d’avoir une maison intelligente connectée àl’internet des objets un peu dans l’esprit de la série TV Eureka.

Le principe est de déclencher des requêtes HTTP via:

  • la reconnaissance vocale de phrases exprimées en XML
  • la reconnaissance de gestes exprimés en XML
  • la reconnaissance faciale (machine puissante !)
  • une planification Google Calendar
  • la reconnaissance de QRCodes
  • des scripts joués périodiquements, …

Ces requêtes HTTP déclenchent des scripts NodeJS pour interagir avec les boîtiers domotiques, le karotz ou simplement aller chercher de l’information sur internet (scraping): horaires de cinéma, météo, horaires de bus, …

 

ParisWeb 2013

 

Le framework

La configuration de ces actions est simple (XML et JavaScript) et modulaire (plugins).

 

Communauté

Démonstration:

  • S.A.R.A.H et la domotique

 

  • S.A.R.A.H et XBMC

 

Architecture

Une description complète de l’architecture se trouve sur cette page.

  • Un programme C#
    • Ecoute des phrases/gestes/qrcode (grammaires XML).
    • Envoie une requête HTTP
    • Vocalise la réponse HTTP
  • Un programme NodeJS

 

Interface web

SARAH est accessible depuis une interface web (HTML5, CSS3, Bootstrap, Responsive…).

Le portail permet d’avoir une vue d’ensemble des plugins installés. C’est un moyen simple pour véhiculer de l’information ou de la documentation.

Les plugins installés sont automatiquement configurables depuis le tableau de bord de la page d’accueil. Les données sont ensuite stockées au format JSON dans le fichier custom.prop.

 

Planification d’actions

 

Depuis la version 1.9, en plus de la vocalisation, les évènements de calendrier peuvent déclencher des scripts. Cela permet de profiter de toute la souplesse de Google Calandar: IHM, Périodicité, Collaboration, Planification, …

Google
Calendar étant un des channels de IFTTT, cela permet d’avoir un pont entre les actions qui se déroulent en ligne et les objets de la maison.

 

Bibliothèque d’applications

Depuis la version 2.2, l’interface web propose une bibliothèque d’application contenant de nombreux plugins pour SARAH:

Karotz, Freebox, Météo, Dictionnaire, … ou Domotiques (Eedomus, Vera, Zibase, …)

Il est possible d’installer ces plugins, hébergés en ligne (dans ma DropBox), directement depuis le store. Les plugins sont téléchargés puis décompressés dans l’application.

Voici un tutorial décrivant toutes les étapes de création d’un plugin XBMC.

 

Moteur de règles

Depuis la version 2.3, il est possible de définir des règles pour enchaîner les scripts de la même manière que les services en ligne comme IFTTT ou Zapier.

Par exemple: quand la météo se déclenche, si je ne suis pas présent, faire une notification Push sur l’iPhone et envoyer un mail plutôt que de vocaliser le message dans une pièce vide.

L’idée est de faire le pont entre les services de la maison (internet des objets) et les services en ligne (de IFTTT)

Reconnaissance gestuelle

Utilisé avec un Kinect, SARAH permet de faire de la reconnaissance gestuelle pour déclencher des scripts. la grammaire de geste est décrite en XML.

Le plugin gesture propose plusieurs geste prédéfinis à brancher directement via le moteur de règles à d’autres scripts

 

Reconnaissance de QRCodes

Utilisé avec un Kinect, SARAH permet de faire de la reconnaissance de QRCode pour déclencher des scripts. Le plugin Loups garous de Thiercelieu en est un très bon exemple.

Les QRCodes sont gratuits et ont l’avantage de pouvoir encapsuler n’importe quelle URL.

 

Reconnaissance Faciale

La version 2.6 embarque la librairie OpenCV afin, dans une premier temps, de faire de la détection et reconnaissance faciale.

Quand la reconnaissance est activée, une requête est envoyée à NodeJS chaque fois (min 5s) que le visage est détecté.

 

Serveur WebSocket

Depuis la version 2.7, le serveur websocket a été modifié pour streamer des images jpg ou png en mode fond vert.

En jouant avec les styles CSS3 il est alors très simple de construire un hologramme.

Posted in objets connectés

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: