A voir
 

Contrôle vocal de votre maison avec Sara

 
alarme
alarme
alarme

 
Présentation
 

Catégorie:
 
Prix:
 
Durée:
 
Mise en place
 
 
 
 
 


 
Utilisation
 
 
 
 
 


 
Utilité
 
 
 
 
 


 
Cout
 
 
 
 
 


 
Note Globale
 
 
 
 
 


Note des Lecteurs
4 Total des notes

 

Pour


La reconnaissance vocale fonctionne plutôt bien, les plugins sont très simples à réaliser, les possibilités sont immenses !

Contre


Dommage de devoir jailbreaker son iPhone :/


3
Posté le13 avril 2012 par

 
Tutorial Complet
 
 

Apple a mis à disposition une fonction géniale sur son iPhone 4S: Siri, qui est un véritable assistant vocal. Vous lui donnez des ordres, il vous répond, et les exécute avec brio. Siri est tellement intelligent qu’on a parfois l’impression de tenir une conversation avec quelqu’un.

Je vous avais présenté quelques cas où Siri était utilisé pour effectuer des contrôles domotiques. Malheureusement, Apple n’ayant pas ouvert cette fonctionnalité, il fallait ruser pour la détourner, en utilisant un serveur proxy, etc… Quelque chose d’assez lourd et pas vraiment à la portée du premier venu.

Parallèlement à cela, le milieu underground a travaillé sur une fonctionnalité équivalente, appelée SARA, disponible pour tous les iPhones, et pas seulement le 4S. En revanche, cela nécessite d’avoir un ibidule jailbreaké. Si le votre ne l’est pas, ce qui va suivre va sans doute vous en donner envie…

Pour présenter SARA en quelques mots, disons qu’à l’image de SIRI, il s’agit d’un assistant vocal: vous parlez, il exécute vos ordres. La force de SARA, c’est de donner la possibilité à n’importe qui de créer des plugins en quelques minutes, très facilement. Notre but ici: commander notre maison à la voix !

 

I. Prérequis

 

Comme je le disais, donc, il vous faudra un bidule (iPhone quelque soit le modèle, et même iPad ou iPod touch avec un micro externe) jailbreaké.

Pour ceux qui ne connaissent pas, le jailbreak consiste à « cracker » son iPhone afin de pouvoir y installer les applications qu’on souhaite, en dehors d’iTunes. Il faut savoir qu’Apple est très strict sur les applications acceptées dans l’Appstore, pourtant il existe énormément d’applications non validées par Apple disponibles via le jailbreak, vraiment très intéressantes. C’est le cas par exemple de SARA, qui vous ajoutera un assistant vocal sur votre ibidule.

Bon, le terme « jailbreak » peut faire peur, mais il existe aujourd’hui des applications très bien faites, qui vous font cela en moins de 5min sans aucun risque. C’est le cas par exemple de Redsn0w. Je ne vais pas vous expliquer ici comment jailbreaker votre ibidule, il y a des milliers de sites qui en parlent déjà. Vous pouvez déjà consulter celui ci, qui est très clair.

En faisant une sauvegarde de votre iPhone avant de le jailbreaker, il n’y a en général aucun problème. Seule chose à savoir: certaines application « légales » refusent parfois de fonctionner si votre ibidule est jailbreaké. C’est relativement rare, mais j’ai eu le coup par exemple avec l’application du Crédit Agricole, considérant qu’il s’agissait d’une faille de sécurité… Il faut donc le savoir.

 

II. Installation

 

Une fois votre iPhone jailbreaké, il va falloir installer SARA via l’application Cydia, qui est une sorte d’Appstore hors Apple.

Dans Cydia, il faut se rendre dans le menu « Gérer », puis cliquer sur « Sources » et sur « Modifier » ( en haut à droite ), et enfin cliquer sur « Ajouter » ( en haut à gauche ), pour ajouter la source http://isoftjsc.com

  • Ensuite, installer le paquet Sara 0.2.2 – Build 1
  • Installer le paquet Sara SDK 0.1
  • Et enfin, installer le paquet Sara Dictation Keybaord ( Optionnel, c’est la Cerise sur le gâteau, grace à cela vous aurez la possibilité de dicter un SMS ou autre chose à la voix tout comme avec SIRI (Attention: Ne pas installer ce paquet sur l’iphone 4S car il dispose déjà de la dictée vocale ).

 

 

Une fois tout cela installé, redémarrez de préférence l’iphone, l’iPad ou l’iPod.

Vous retrouverez l’icone de SARA sur le « Springboard » (Ecran d’accueil, bureau de l’appareil)

 

 

1. Lancement de SARA par le bouton HOME

 

Si on souhaite par exemple lancer SARA par un appui long sur le bouton Home, comme le vrai SIRI, ce qui facilite beaucoup son accès, il faudra utiliser Activator (ceci est optionnel, on peut lancer SARA via l’icone présente sur le Springboard).

Lancez Cydia et installez « Activator » si il n’est pas déja présent sur votre appareil.

Lancez activator, cliquez sur « Partout » puis dans la section « Bouton d’accueil » sélectionnez « Maintenir » puis choisissez dans la liste l’application « SARA ». (Cela aura pour effet d’avoir le même fonctionnement qu’avec SIRI, c’est à dire un lancement de SARA en restant appuyé sur le bouton HOME de l’iPhone, iPad, iPod )

NOTA : Pour les iPhone 4S, activez SARA par un triple appui sur le bouton « HOME » afin de pouvoir toujours utiliser SIRI normalement.

 

 

Une fois cela fait, restez appuyé sur le bouton HOME de l’iPhone, cela lancera SARA

 

2. Réglage de SARA

 

Il faut au préalable configurer SARA pour utiliser le français, et au passage indiquer votre prénom pour personnaliser les phrases:

 

 

III. Création des plugins

 

Maintenant il faut configurer SARA selon vos besoins avec l’aide du SDK en créant des Plug-in codés en PHP.

Pour ce faire, il faut accéder au SDK de SARA installé sur l’iPhone, l’iPad ou l’iPod à partir d’un navigateur WEB sur le même réseau WIFI en tapant l’adresse IP de l’iPhone, de l’Ipad ou de l’iPod.

Une fois arrivé sur la page, renseignez le mot de passe « sara » ( en minuscule et sans les guillements ).

A partir de là, il est très simple de créer un plug-in: dans la zone « Create New Plug-in » tout en bas, rajoutez le nom de votre plug-in après le « com. », puis cliquez sur « Create ».

 

 

Dans la fenêtre qui s’ouvre, il suffit de coder la fonction voulue en PHP.

 

1. Exemple avec l’IPX800

 

C’est Jonathan qui a ouvert la voie avec un exemple d’application avec SARA et l’IPX800. Par exemple, dans son cas il a voulu exécuter une URL pour commander un relais de son IPX800.

Exemple du code qu’il utilise pour fermer ses stores électriques à partir de son IPX800 commandée par une URL:

 

<?
if($request == « stopper les volets »){
$response->say(« Les volets sont stopper »);
$ret = file(« http://192.168.1.250/preset.htm?RLY7=1″);
$response->exitContext();
ok();
}

 

Petite explication:

 

<?
if($request == « ici on indique la phrase a dicter à SARA sans accents »){
$response->say(« ici on indique la reponse donne par SARA sans accents »);
$ret = file(« renseigner l’URL à exécuter »);;
$response->exitContext();
ok();
}

}

 

Une fois le code entré, cliquez sur « save » et c’est terminé, le plug-in est codé et SARA peut l’interpréter

 

 

Voici ce qu’on obtient à l’utilisation:

 

Lancement de SARA, avec message d'accueil

 

Demande d'ouverture des volets

 

Demande de stopper les volets

 

Et demande de fermer les volets

 

Note: vous remarquerez les fautes d’orthographe, volontaires, car SARA ne gère pas encore correctement les accents. Il faut donc ruser pour qu’à l’oral cela sonne correctement…

Voici une petite vidéo de son iPhone 4S dans lequel il active SARA par un triple appui sur le bouton « HOME » (afin de pouvoir toujours utiliser SIRI normalement) et où il contrôle ses volets:

 


2. Exemple avec l’eedomus

 

L’eedomus disposant d’une API via des requêtes HTTP, il est tout à fait possible de la piloter comme l’IPX800. Sur le même modèle que l’exemple précédent, on peut faire un plugin de ce genre:

 

<?
if($request == « on a de la visite »){
$response->say(« OK, je passe la maison en mode visiteurs. »);
$ret=file(« http://api.eedomus.com/set?action=periph.value&periph_id=IDPERIPHERIQUE&value=1&api_user=CODEUSER&api_secret=CODESECRET »);
$response->exitContext();
ok();
}

 

Remplacez bien sûr l’ID périphérique par votre module à contrôler, et le code user et code secret par les vôtres.

Avec ce plugin, il suffit que je dise « on a de la visite » pour que SARA passe la maison en mode visiteurs (ce qui dans mon cas désactive certains automatismes pour ne pas effrayer les invités :p)

 

 

On peut tout aussi bien activer l’alarme, allumer une lampe, etc…

Après avoir découvert les possibilités de SARA, autant dire que nous nous sommes bien amusés avec. Ainsi, avec Jonathan, mais également Mickael, de Planète Domotique, nous avons testé différentes choses. Et ce dernier nous a rapidement concocté un petit plugin pour l’eedomus très sympa !

 

<?
//////////////////////////////////////////////////////////////////////////////////////////
// Plugin Sara pour eeDomus
// Pilotez votre box eeDomus pas la voix…
// Création : Mickael VIALAT – http://www.planete-domotique.com// Renseigner le API USER et API SECRET de votre box eeDomus 

$api_user = « xxxxxx »;
$api_secret = « xxxxxxx »;

// Défini les différentes actions possibles
define(« UNKNOWN », 0);
define(« ALLUMER_LAMPE », 1);
define(« ETEINDRE_LAMPE », 2);
define(« OUVERTURE_VOLET », 3);
define(« FERMETURE_VOLET », 4);

// id d’extraction du mot clef
define(« IDEXTRACT », 2);

$action = UNKNOWN;

if ($request== »domotique »)
{
$response->call(« DISPLAY_BIG_WEBPAGE », »eeDomus », »http://mobile.eedomus.com« );
$response->exitContext();
ok();
}
else

// On défini un ensemble de masque, les * peuvent être remplacé par n’importe quelle chaine de caractère
// On peut donc avoir « Merci d’allumer la lampe du salon », « Allumer lampe salon », « Allumer une lampe du salon » …
if ($request->match(« *allumer *lampe* »)) $action = ALLUMER_LAMPE;
else
if ( $request->match(« *teindre *lampe* »)) $action = ETEINDRE_LAMPE;
else
if ( $request->match(« *ouverture *volet* »)) $action = OUVERTURE_VOLET;
else
if ( $request->match(« *fermeture *volet* »)) $action = FERMETURE_VOLET;

if($action != UNKNOWN)
{
$periph_id=0;

// En fonction de la commande et de la pièce, on cherche le périphérique
if ($action==ALLUMER_LAMPE || $action==ETEINDRE_LAMPE)
{
// strpos permet de traiter « du salon », « salon », « de mon salon »…

if (strpos($request->data[IDEXTRACT], « salon »)!==false)
$periph_id= 4196;
else
if (strpos($request->data[IDEXTRACT], « cuisine »)!==false)

$periph_id= 4158;
}
else
if ($action==OUVERTURE_VOLET || $action==FERMETURE_VOLET)
{
// strpos permet de traiter « du salon », « salon », « de mon salon »…

if (strpos($request->data[IDEXTRACT], « salon »)!==false)
$periph_id= 4196;
else
if (strpos($request->data[IDEXTRACT], « cuisine »)!==false)

$periph_id= 4158;
}// En fonction de la commande, on défini la valeur du composant
if ($action==ALLUMER_LAMPE || $action==OUVERTURE_VOLET)
$value = 100;
else
$value = 0;if ($periph_id!=0)
{
$ret = file(« http://api.eedomus.com/set?action=periph.value&periph_id=« .$periph_id. »&value= ».$value. »&api_user= ».$api_user. »&api_secret= ».$api_secret);

switch ($action)
{
case ALLUMER_LAMPE:

$response->say(« J’allume la lampe « .$request->data[IDEXTRACT]);
break;
case ETEINDRE_LAMPE:
$response->say(utf8_encode(« J’éteind la lampe « ).$request->data[IDEXTRACT]);
break;
case OUVERTURE_VOLET:
$response->say(« J’ouvre le volet « .$request->data[IDEXTRACT]);
break;
case FERMETURE_VOLET:
$response->say(« Je ferme le volet « .$request->data[IDEXTRACT]);
break;
}

}
else
$response->say(« Je ne connais pas « .$request->data[IDEXTRACT]);

$response->exitContext();
ok();
}

 

Ce plugin est très flexible et peut accepter de nombreuses commandes.

En pronancant « domotique », SARA lancera automatiquement l’interface mobile de l’eedomus.

Ensuite, en prononcant une phrase comme « Merci d’allumer la lampe du salon », « Allumer lampe salon », « Allumer une lampe du salon », SARA exécutera automatiquement la commande. Grâce aux masques utilisés dans ce plugin, SARA ne recherche pas une phrase exacte, mais va juste rechercher ici « allumer », « lampe » « salon », afin de connaitre l’action à exécuter.

 

 

 

Il suffit de lire un peu le code pour comprendre le fonctionnement, applicable pour les lumières, les volets, etc… Il vous suffira d’indiquer votre code user et votre code secret au tout début du code, puis ensuite de remplacer les ID des périphériques ($periph_id) par les ID des vôtres.

La reconnaissance vocale fonctionne plutôt pas mal, et les ordres sont exécutés rapidement ! Le code peut bien sûr être complété selon vos besoins, très facilement. Je ne vous cache pas qu’on devient vite accro à SARA :D

D’ailleurs, je vous invite à lire un peu la documentation du SDK de SARA ici afin de voir les fonctions disponibles. Il y en a de très intéressantes, comme par exemple l’utilisation des contexts: ils permettent à SARA de vous répondre par une autre question afin de préciser votre choix.

J’ai fait un test pour désactiver l’alarme, par exemple: je demande la désactivation de l’alarme, SARA me répond en me demandant le code de désactivation, je donne le code, et alors seulement SARA désactive l’alarme si le code est bon. Le principe est assez simple. On crée un plugin comme précédemment avec par exemple ce code:

 

<?
if($request == « coupe l’alarme »){
$response->say(« pouvez vous me confirmer le code de desactivation ? »);
$response->enterContext(« demande_code_deverouillage »);                                                                           
ok();
}
Ensuite, sur la gauche de l’interface web du SDK, on crée un nouveau context nommé « demande_code_deverouillage »
Dans ce context (qu’on peut assimiler à un sous programme), on met le code:
<?
if($request == « tu tu »){
$response->say(« Merci, je desactive l’alarme »);
$response->exitContext();
ok();
}else{
$response->say(« Desoler, ce n’est pas le bon code »);
$response->exitContext();
ok();
}

 

On obtient alors un vrai « dialogue » avec SARA:

 

 

Bref, c’est vraiment très puissant ! Ce ne sont là bien sûr que quelques exemples. Les plugins peuvent être encore plus complets, et ils peuvent être adaptés facilement pour les autres solutions domotiques pouvant être pilotées via une URL: Zibase, Vera, Homeseer, etc… Les possibilités sont immenses !

De nombreux plugins existent déjà, pour piloter sa Freebox, consulter le programme TV, envoyer un mail, etc… Une recherche sur Google vous donnera de nombreux résultats mais vous pouvez déjà consulter ces deux sites:

 

N’hésitez pas à venir partager avec nous les codes que vous pourriez mettre au point de votre côté !

Je tiens à remercier encore une fois Jonathan et Mickael pour les échanges que nous avons eu sur cette solution vraiment géniale, qui nous ont permis d’avancer très rapidement avec SARA ;-)

 

PS: pour ceux qui malgré cela ne souhaiteraient pas jailbreaker leur iPhone, la seule solution de contrôle vocal qui s’en approche est l’application DomoVoice, que je vous ai présentée il y a quelques jours. Bon week end à vous !

Vous aimez ? Partagez le ! Share on FacebookShare on Google+Tweet about this on TwitterPin on PinterestShare on RedditShare on TumblrShare on LinkedInBuffer this pageFlattr the authorEmail this to someone







  
  • Fcm Vang

    Impossible d’acceder à la source, existe elle encore <?

    • spoon

      Bonjour,

      Moi aussi je suis a la recherche !! car source non valide snif !!

  • Adam

    est-ce que vous avez trouver un autre repo? car http://isoftjsc.com n’existe apparament plus :( Merci