..:: Planète-Domotique : Le Blog ::..
Articles Clients iPhone Logiciels Tous les articles

Pilotez votre domotique avec la voix grâce à Sara

Dans le but de commander mon IPX800 à la voix avec mon iPhone via des commandes HTTP (l’article est aussi valable pour les BOX comme la eeDomus, la Zibase…) , j’avais cherché une solution pour faire cela avec SIRI mais sans grand succès
car pour avancer dans le projet il faudrait l’implémentation d’une fonction par les développeurs de l’application « MyAssistant », voir mon poste sur le forum TouteLaDomotique.com

En attendant, j’ai continué mes recherches et j’ai trouvé une sérieuse alternative à SIRI, tout aussi rapide et conviviale   (je remercie au passage Bilil de m’avoir mis sur la piste de SARA ).

Seul petit « hic », cette application nécessite un iPhone Jailbreaké…

Alors voici les prérequis :

1° Avoir un iPhone, un iPad ou un iPod (peut importe le modèle , il faut juste qu’il soit « Jailbreaké »)
2° Installer la source dans »Cydia » (Menu « Gérer, puis cliquez sur «  »Sources » puis sur « Modifier » -en haut à droite- puis cliquez sur « Ajouter » -en haut à gauche-)
3° Installer le paquet Sara 0.2.2 – Build 1
3° Installer le paquet Sara SDK 0.1
3° Installer le paquet Sara Dictation Keybaord ( Optionnel, c’est la Cerise sur le gâteau, grâce à 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émarrer 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 )

Attribution du bouton HOME de l’iPhone à SARA lors d’un appui long comme avec SIRI : ( ceci est optionnel, on peut lancer SARA via l’icone présente sur le Springboard )

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

2° 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 et cela lancera SARA

Accès au réglage de SARA :

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

Accès au SDK de SARA via un navigateur WEB :

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 de l’iPhone, de l’Ipad ou de l’iPod.
Une fois arrivé sur la page, renseigner 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, par exemple, dans mon cas je veux exécuter une URL pour commander un relais de mon IPX800.

Exemple du code que j’utilise pour fermer mes stores électriques à partir de mon IPX800 commandé par une URL:

<?
   if($request == "stopper les volets"){
      $response->say("Les volets sont stopper");
      $response->call("DISPLAY_WEBPAGE","https://192.168.1.150/preset.htm?RLY7=1");
      $response->exitContext();
      ok();
   }
?>

Explication de base:

<?
    if($request == "ici on indique la phrase a dicter à SARA sans accents"){
      $response->say("ici on indique la reponse donne par SARA sans accents");
      $response->call("DISPLAY_WEBPAGE","ici on renseigne l'URL que SARA doit exécuter");
      $response->exitContext();
      ok();
}
?>

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

En image :

Lancement de SARA et demande d’ouverture des volets

Demande de stopper les volets et demande de fermer les volets :

Maintenant, j’essaie de trouver un moyen pour qu’il n’y ai pas de page web qui s’affiche lorsque j’exécute une commande via URL, pour l’instant je ne trouve pas comment faire.

EDIT : Après quelques recherches, et avec l’aide de Mickaël (Planète Domotique), voici le code qui permet de piloter l’IPX800 sans afficher la page web …

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

Il faut bien noter que Sara ne supporte pas les accents ! Donc on oublie l’orthographe, et « sont stoppés » devient « sont stopper »…

Les différentes commandes possibles sont disponibles dans la documentation du SDK mais qui n’est malheureusement pour l’instant pas à jour, il peut donc y avoir certaines fonctions qui ne fonctionnent pas correctement.

SDK de SARA :
FAQ de SARA :

NOTA :

Il arrive parfois que l’accès au SDK via le navigateur WEB ne fonctionne pas, n’ayez pas d’inquiétude, il suffit :

1 – Installer « SBSettings » via « Cydia »,
2 – Lancer sur l’icone « SBSetting »
3 – Dans le menu « Dropdown Windows » cliquez sur « Set Windows Toggles »
4 – Activer le toggle « Lighttpd »

Voila, j’espère que cela rendra service, n’hésitez pas à me poser vos questions dans les commentaires, vous pouvez consultez l’excellent site français dédié à SARA et il y a aussi le site officiel de SARA qui comporte également un forum mais principalement en Anglais

0
0
Jonathan

L'informatique, les nouvelles technologies et tout ce qui touche à la domotique est pour moi une passion, j'apprends lentement le développement PHP, on va plutôt dire qu'au besoin j'arrive à mes fin ! Enfin presque ;) En gros, je bidouille un peu tout ce qui me plait ;)<br /> <br /> J'ai 27 ans, je suis marié et jeune papa d'une petite fille de 5 mois, je suis à la base assez technique et bricoleur !<br /> J'ai été conseiller technique chez PSA pendant 5 ans, commercial itinérant pendant 3 ans puis technicien support client durant 2 ans...

Commentaires

  1. Bonjour,
    J’aime beaucoup l’idée. Cependant peut-on changer le mot de passe lors de l’accès en http ? mieux, peut-on désactiver le serveur quand on ne s’en sert pas ? Car là, c’est pas super secure !

    • Salut,

      Oui, tu peux changer le mot de passe, y’a même un message qui t’y invite quand tu te connecte.

      Tu peux aussi arrêter le serveur lighttp, qui n’est utilisé que pour créer le plugin.

      En tout cas, pour avoir regardé un peu hier !… C’est MEGA puissant !!!!

      A+

  2. Salut,

    Je ne l’ai pas mis dans l’article mais bien sur que oui cela est possible et c’est ce que j’utilise

    L’URL pour l’IPX doit être de ce type :

    http://nomutilisateur:motdepasse@adresseipdeIPX/preset.htm?RLY7=1

    @ +

    Je l’utile même de l’extérieur en 3G sans souci

  3. Pas de souci 😉 j’ai fait plein de plug-in pour SARA, je ferais bientôt une vidéo qui montre toute les possibilité

    HS : je peut toujours pas modifier l’article, t’a pus voir au niveau des privilège qui me sont attribué ?

  4. bonjour,

    je suis novice dans tout cela, j’ai juste fait un copier coller des codes qu’il faut mettre, mais je ne comprends pas cela ne marche pas.
    j’ai du surement me trompé, si quelqu’un peut m’aider svp merci

    exemple de code que j’ai rentré :

    say(« Les volets sont fermer »);
    $ret = file(« http://192.168.0.40/preset.htm?RLY7=1″);
    $response->exitContext();
    ok();
    }

    voila et lorsque je dicte l’action à faire à sara rien ne se produit, je pense que le problème doit venir de l’url à exécuter, mais si c’est cela, comment puis je faire pour connaitre l’url de mes volets par exemple

    votre aide me sera très précieuse merci d’avance.

  5. pardon voici ce que j’ai mis comme code

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

  6. Bonjour,

    J’ai un problème que je n’arrive à résoudre, je souhaite créer des scénarios avec SARA et l’IPX800, comme les [b]&[/b] ne sont pas accepté afin d’envoyer plusieurs commandes j’utilise ce code :

    [code]say(utf8_encode(« Mode de départ activé : Activation de l’alarme, fermeture du grand portail et fermeture des volets roulants en cours ! »));
    $ret = file(« http://192.168.1.250/preset.htm?led1=1 »);
    $ret = file(« http://192.168.1.250/preset.htm?RLY2=0 »);
    $ret = file(« http://192.168.1.250/preset.htm?RLY6=0 »);
    $response->exitContext();
    ok();
    }[/code]

    Pas de problème cela fonctionne, mon alarme ce s’active, mon portail se ferme et mes volets roulants se fermes aussi.

    Maintenant, je veut faire l’inverse et là, seulement la première commande s’exécute !!! L’alarme se désactive mais que neni pour mon portail et mes volets, voici le code !!!

    [code]say(utf8_encode(« Mode d’arrivé activé : Désactivation de l’alarme, ouverture du grand portail et ouverture des volets roulants en cours ! »));
    $ret = file(« http://192.168.1.250/preset.htm?led1=[b]0[/b] »);
    $ret = file(« http://192.168.1.250/preset.htm?RLY2=[b]1[/b] »);
    $ret = file(« http://192.168.1.250/preset.htm?RLY6=[b]1[/b] »);
    $response->exitContext();
    ok();
    }
    [/code]

    Je pige pas pourquoi cela ne fonctionne pas, je pense plus a un problème au niveau de l’IPX800 mais à quel niveau ?

    Une idées ?

    Merci d’avance

  7. C’est bon, en faite je m’étais trompé de relais

    Bon maintenant je cherche a mettre une tempo entre l’envoi de deux commande de l’IPX800

    Pour fermer mes volets, la commande est ;

    $ret = file(« http://192.168.1.250/preset.htm?RLY8=1 »);

    Pour stopper les volets la commande est :

    $ret = file(« http://192.168.1.250/preset.htm?RLY7=1 »);
    Cela permettrait au relais de commande de mes volet de ne pas rester continuellement enclenché après la fermeture de ces derniers

    say(utf8_encode(« Mode d’arrivé activé : Désactivation de l’alarme, ouverture du grand portail et ouverture des volets roulants en cours ! »));
    $ret = file(« http://192.168.1.250/preset.htm?led1=0 »);
    $ret = file(« http://192.168.1.250/preset.htm?RLY3=1 »);
    $ret = file(« http://192.168.1.250/preset.htm?RLY8=1 »);

    –> il me faudrait une temporisation ici avant d’exécuter la commande suivante exitContext();
    ok();
    }

    Merci d’avance.

  8. Bon j’ai trouvé pour ajouter une temporisation entre deux action de mon IPX800 :

    C’est tous bete en faite :

    il suffi de rajouter $ret = sleep(3); entre chaque action, (3) étant le nombre de secondes

    say(utf8_encode(« Mode temporisation 3 secondes! »));
    $ret = file(« http://192.168.1.120/preset.htm?RLY2=1 »);
    $ret = sleep(3);
    $ret = file(« http://192.168.1.120/preset.htm?RLY3=1 »);
    $ret = sleep(3);
    $ret = file(« http://192.168.1.120/preset.htm?RLY4=1 »);
    $response->exitContext();
    ok();
    }

    Par contre, maintenant, tant que tout les actions ne sont pas exécuté, le message :

    $response->say(utf8_encode(« Mode temporisation 3 secondes! »));

    n’apparaît pas, il apparaît seulement à la fin de l’exécution de toutes les action, je cherche a changer cela ( qu’il apparaisse dès le départ comme initialement mais pour l’instant c’est choux blanc )

  9. Pierre dit :

    je suis novice dans tout cela, j’ai juste fait un copier coller des codes
    qu’il faut mettre, mais je ne comprends pas cela ne marche pas.

    Voici ce que j’ai mis comme code :

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

    Salut pierre, remplace tous les caractère « et » par des  » et cela fonctionnera.

    @ bientôt.

  10. Bon sa passe pas sur le blog, remplace les « et les » par des guillemets

  11. Bonjour j utilisé Sara et je n arrive à lancer scénario de ma zibase q avec les lien ouvrant safari les autre ne lance pas le scénario

    Quelqu un. À t il la solution ?
    Merci

  12. @folkers :

    Il y a aussi la fonction

    $response->call(« DISPLAY_WEBPAGE », « http://ton_adresse_url);

    Cela ouvrira ta page en mode réduit dans SARA 😉

  13. Bonjour,

    j’ai essayé d’installer SARA sur un iphone 4S en 5.1.1 pour piloter ma Zibase mais mon iphone passait de plus de 300Mo de RAM à moins de 100Mo en quelques secondes! Donc iphone était extrêmement lent. Bilan : obligé de le restaurer.
    Quelqu’un à t’il eu des problèmes de mémoire avec SARA sur un iphone 4S ?
    J’ai bien envie de réessayer mais sans passer par la case restauration.
    A noter que la version disponible actuellement est Sara 0.2.2 – Build 35.

    Merci

  14. bonjour quelqun peut me vinir en aide svp pour sara

  15. bonjour mickael quand j appui sur l icone de sara l ecran devient noir et sa revient sur l ecran d acceuil ciao

  16. sa y et j ai réussis a mettre sara mais le problemene maintenant cet quil parle en anglais j ai bien était ds le menu pour le mettre en francais mais rien y fait en attente de ta réponse merci d’avance mick

  17. Salut « flo », dans les réglage il y a 2 paramètres a mettre en français, après il faut essayer de redémarrer l’iPhone.
    @+

  18. bonjour jonathan et merci mais elle me demande a chaque fois <html< je lui met quoi en sachant que je veux faire fermer mes volet
    merci ciao

  19. Bonsoir j’ai un problème je n’arrive pas du tout à accéder aux réglages de Sara ?!
    Du coup toujours en anglais 🙁
    Help me please ! 🙂

  20. Hello à tous, Peut on installer Sara sur un vieux Imac Tournesol ou un vieux G4 ou G5 (en changeant l’OS par exemple ? )

    Merci par avance.

    Ben.

  21. Bonjour.

    J essaye d installer Sara sur mon iPhone 4 mais j ai l impression que ça ne fonctionne plus. Quelqu un peut il me le confirmer?

    Peut être que je m y prend mal…

    Merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.