Site icon Abavala !!!

Instaurer des questions/réponses avec son système domotique via S.A.R.A.H.

Maintenant que S.A.R.A.H. est installé, maintenant que les plugins sont mis en place et configurés, il ne reste plus qu’à l’intégrer dans mon système domotique. Ce n’est pas la partie la plus compliquée car de manière native, on peut s’adresser à S.A.R.A.H. via des requêtes HTTP.  Si votre système domotique est assez ouvert pour permettre ce genre d’appels vous voilà prêt pour la suite!

Le royaume des appels HTTP

Tous les plugins S.A.R.A.H. peuvent être appelés via une requête HTTP. Le Pc Windows sur lequel l’application S.A.R.A.H. est installé devra de préférence avoir, au sein de votre réseau informatique domestique, une adresse IP fixe.  La manip pour obtenir cela dépend de votre box Internet.  Si vous avez une Freebox, vous pouvez procéder comme expliqué dans un article précédent.

Tout plugin peut donc être apelé via une URL. Si le plugin s’appelle “monplugin“, qu’il accepte en paramètre d’entrée “monparam” et que l’adresse IP du serveur S.A.R.A.H. est 192.168.0.20, ce plugin pourra alors être appelé avec l’URL suivante pour lui communiquer la valeur “valeurparam“:

http://192.168.0.20:8080/sarah/monplugin?monparam=valeurparam

Faire parler votre système domotique

Pour faire parler votre système domotique, rien de tel que l’utilisation du plugin “Parle” de Hotfirenet. Ce plugin se trouve sur le Store et ne nécessite aucun paramétrage particulier. Il vous suffit de l’installer tout simplement via le Store et vous êtes prêt à l’utiliser. Pour savoir comment installer un plugin je me permet de vous rediriger vers l’article d’hier.

La requête à utiliser au sein de votre système domotique pour l’appeler est la suivante:

http://192.168.0.20:8080/sarah/parle?phrase=bonjour%20cher%20ami

Vous prendrez soin de remplacer l’adresse IP de l’exemple par celle de votre installation et de fournir la phrase à énoncer à voix haute après le mot “phrase=”.

Inutile de faire plus compliqué n’est pas?

Appeler un système domotique

Admettons que vous ayez un système qui doive contacter la box domotique par exemple.  Vous pouvez très bien faire en sorte que ce système s’adresse directement aux API de votre box domotique. Vous pouvez également opter pour l’utilisation des bons services de S.A.R.A.H..  Cela vous permet de ne pas avoir à vous plonger dans la documentation de l’API de la box domotique en question et de simplifier les appels HTTP.

Si la box domotique est la box eedomus il vous faut alors suivre les étapes suivantes:

  • installer le plugin eedomus sur votre serveur S.A.R.A.H.
  • paramétrer le plugin en lui renseignant les identifiants de connexion aux API de la bos eedomus.

Si vous souhaitez utiliser S.A.R.A.H. en tant que passerelle vers votre box eedomus (ou tout autre box domotique) il n’est nullement besoin de renseigner le périphérique à contacter en HTTP dans le fichier de configuration XML du plugin.  Le fait de le renseigner dans le fichier XML vous permet uniquement de pouvoir l’appeler directement à la voix.

Prennons un exemple, Si vous devez affecter la valeur 3 au périphérique qui a comme identifiant 1657 la requête HTTP à utiliser est la suivante:

http://192.168.0.20:8080/sarah/eedomus?periphId=1657%26periphValue=3

Les caractères “%26” entre “periphID=1657” et “periphValue=3” correspond au “&”. Dans certains systèmes il peut poser problème lorsqu’il est utilisé sous sa forme “&”.

Jouer aux questions / réponses avec votre box domotique

Faire parler son système domotique c’est pas mal.  Mais il y a des moments où l’on souhaiterai que le système domotique puisse poser une question, écouter la réponse afin qu’il puisse alors agir en conséquence.  L’interaction est bien supérieure si, lorsque vous ouvrez la porte d’entrée pour sortir de chez vous, votre système domotique vous demande si vous souhaitez sécuriser la maison.  Si vous répondez “Oui s’il te plait” c’est ce qu’il fera en vérifiant que toutes les fenêtres sont bien fermées, en éteignant les lumières éventuellement restées allumées puis en enclenchant le système de surveillance.  Cela vous évitera d’oublier de le faire par vous même…

Pour atteindre ce but vous pourrez utiliser le plugin Askme de Jérôme VEYRET. La mise en place du plugin est simplissime car comme le plugin “Parle”, aucun paramétrage n’est requis.  Ça commence fort!

Voici comment procéder pour obtenir le résultat d’interaction souhaité avec la box eedomus:

Sur Sarah :

  • installer les plugin Parle,
  • installer le plugin Askme
  • installer et paramétrer le plugin Eedomus

Sur la box eedomus :

  • créer un actionneur HTTP nommé Actions comme présenté dans la copie d’écran

  • lui affecter les variables correspondantes aux url des 3 plugins.  Ce n’est pas obligatoire mais c’est beaucoup plus simple par la suite.  Vous prendrez soin de remplacer l’IP par celle de votre installation S.A.R.A.H.
    • VAR1 : 192.168.0.20:8080/sarah/askme?request=
    • VAR2 : 192.168.0.20:8080/sarah/parle?phrase=
    • VAR3 : 192.168.0.20:8080/sarah/eedomus?
  • Créer une valeur “Je pars de la maison” comme le présente la copie d’écran ci-dessous:

  • Lui affecter comme paramètre la phrase suivante:
{"question":"Veux-tu que je sécurise la maison%3f","answer":["Oui s'il te plait","Non merci"],"answervalue":["http://[VAR3]periphId=123456%26periphValue=3","http://[VAR2]ok je te laisse faire"],"TTSanswer":["Ok, je m'en occupe",""],"timeout":20,"recall":false}

Faites bien attention au fait qu’il ne faut pas de retour à la ligne lorsque vous renseignez cette phrase.  De même il faut remplacer le “?” ponctuant la fin de la question par sa représentation compatible avec les URL à savoir “%3f”.

Présenté de cette manière, il n’est pas facile d’avoir une bonne visibilité concernant ce que l’on demande à réaliser. Pour y voir un peu plus clair je vous propose la même phrase mais en mode clarté. En non condensé voila ce que ça dit:

{

"question":"Veux-tu que je sécurise la maison%3f",

"answer":["Oui s'il te plait","Non merci"],

"answervalue":["http://[VAR3]periphId=123456%26periphValue=3","http://[VAR2]ok je te laisse faire"],

"TTSanswer":["Ok, je m'en occupe",""],

"timeout":20,

"recall":false

}

Voici l’explication des différents éléments mis en place:

  • La “question” est tout simplement la question que, via l’eedomus, S.A.R.A.H. doit vous poser
  • “answer” est la liste des réponses possibles séparées par des virgules. Chaque réponse est encadrée par des guillemets.
  • “answervalue” est la liste des actions à réaliser en fonction des réponses fournies (answer). Il doit y avoir autant d’actions que de réponses. Les actions sont à mettre dans le même ordre que les réponses.
  • “TTSanswer”: confirmation vocale à apporter en fonction des réponses (answer). Il doit y avoir autant de confirmations que de réponses. Les confirmations sont à mettre dans le même ordre que les réponses.
  • “timeout” : temps que SARAH accorde pour que vous lui communiquiez votre réponse suite à la vocalisation de la question (en nombre de secondes)
  • “recall”: si vous ne fournissez pas de réponses S.A.R.A.H. peut garder en mémoire la question pour laquelle vous n’avez pas répondu.  La liste des questions peut être obtenue par la suite. C’est une fonctionnalité du plugin ASKME.

Dans mon exemple,  à la question “veux-tu que je sécurise la maison?”:

  • si je répond “oui s’il te plait”, S.A.R.A.H. demande à la box domotique eedomus de mettre le périphérique 123456 à la valeur 3 puis m’informe que l’ordre a été transmis à la box via la phrase “Ok, je m’en occupe”.
  • si je répond “non merci”, S.A.R.A.H. rétorque “ok je te laisse faire”

Pour rappel, le périphérique 123456 de box eedomus n’a pas besoin d’être renseigné dans le fichier XML du plugin eedomus.  C’est cet état virtuel 123456 qui mis à la valeur 3 qui déclenchera la vérification des éléments de votre domicile que vous souhaitez confier à voter système domotique ainsi que les actions à mener lorsque vous partez.

Si vous souhaitez qu’il y ait une action à faire par défaut s’il n’y a pas de réponses, vous pouvez également rajouter le paramètre suivant:

“no_answervalue”:”http://[VAR2]à priori personne ne veut me répondre”

Pour déclencher l’exécution de cette interaction eedomus / S.A.R.A.H / vous, il vous suffit par exemple de créer une règle associant la détection d’ouverture de porte à cette requête HTTP.

Conclusion

Avec cette mise en oeuvre, l’interaction avec la domotique prend une toute autre dimension. Alors que vous pouviez vous adresser oralement à votre système domotique pour lui ordonner des actions ou pour lui demander de vous vocaliser une restitution des paramètres de contrôle qui vous intéressent (température extérieure,…), la domotique peut maintenant “prendre l’initiative” de vous interpeller afin de vous poser une question.  En fonction de votre réponse, votre domotique exécutera les consignes liées à votre décision.

Faites marcher votre imagination et amusez-vous bien! N’hésitez pas à partager vos idées de mises en œuvres!

Quitter la version mobile