Give a voice to a smarthome setup

At the beginning I was not so much interested about alert aspects, unless I’ve seen some useful tips done by Jean-Martin. I’m not able to do without them nowdays.

My voice alerts are made of different flavors, from “It’s time to go to school”, “Fish have to be fed”, to “Warning, server is disconnected”.
It’s useful, funny, and easy to setup using eedomus.

What do we need?

  • archos_101xs_img3An Android tablet located at a strategic place and being sufficiently loud. If tablet should be mounted on a wall, select one with a front loudspeaker. It doesn’t need to be top notch device. My personal choice ? Please have a look to this post.
  • Imperihome android App. This is a smarthome interface App, but it includes also a small webserver we can use to send orders and particularly to read out text.
  • A smarthome controller. In my case this is an eedomus.
  • Optionnaly, Tasker App on the tablet.

Configuration, tablet side

Not much to say here compared to what have been already explained in previous post. Tablet have to be set with a fix IP address to be able to discuss with it easily. It can be configured in network parameters of the tablet, or using an advanced DHCP server that can serv fix IP addresses.

Loudness on tablet should remain constant, even if malicious people (my children) are changing volume or muting it. Tasker is the one to be used to do so by creating the following task that is resetting volume parameters every 30 minutes :

smartvoice_tasker_profile

Tasker profile “Reset Parameters” : reset of parameters every 30 minutes

smartvoice_tasker_tasks

“Default parameters” task creation called by previous profile

smartvoice_tasker_taskdescr

“Default parameters” task actions :reset all audio volume parameters to maximum

Also the embedded http server of Imperihome have to be activated and port verified :

smartvoice_imperihome_webserver

Activation Serveur http Imperihome

Reading out a text by the tablet

It is then possible to read out a text, when Imperihome is active, by calling the following http address :

http://192.168.x.x/api/rest/speech/tts/Audio%20Test
  • 192.168.x.x has to be modified to correspond to IP address of your tablet
  • text have to be entered after tts/
  • Special characters have to be replaced by corresponding codes for URLs. Here are some useful codes :
       Space %20
    ,  Coma %2C
    .  Mark %2E
    !  Exclamation mark %21
    Interrogation mark %3F

For the first try, use the browser of your computer before setting the parameters in your smarthome controller.

Android speech synthesis have sometimes some difficulties to analyse complex spelling, at least with french language. In those case you should have to simplify phrase or word to have it spelled correctly. Apart from that, pronunciation is good and, in my case, sufficiently loud to be heard from all the rooms at first floor.

Voice alerts with eedomus

smartvoice_eedomus_configuration

Let’s start using those alerts on the eedomus controller. We have to connect through eedomus.com portal. When logged, the configuration panel can be accessed at top right of th screen.

Select option “Add or remove a device”,

loceedomus1_eedomusadddevice

then “Add another type of device” :

loceedomus1_eedomusaddother

We’re going to create a new http actuator that can send commands through http calls.
smartvoice_eedomus_httpactuatorsmartvoice_httpact_configuration

There is no particular topic to underline in general configuration which is equivalent for all types of devices : name to be changed, assignment to a room, and eventually to a specific use, icon change.

The most interesting part is the value Tab in which are defined all the phrases that should be dictated :

smartvoice_httpact_values

For each phrase, add a new value with those parameters :

  • Value : this one won’t appear lately, take care that there is a single value per line. The controller propose a default value that can be used directly.
  • Image : optional but useful to find easily a phrase if you put an icon matching that one.
  • Description : Description of the value. This description is the one that will be selected in rules.
  • URL = http://AddresseIPTablette:8080/api/rest/speech/tts
  • Type = GET
  • Parameters = ?text=Voice%20Alert

smartvoice_httpact_select

Don’t forget to save your new values with corresponding button at the bottom of the page, you never have to use the back button from your browser.

Et voilà, configuration is done.
It’s now possible to activate this new device from main panel, it is classified by function and by room. One clic on it and you can select one of the values, then the voice alert should activate.

Integrating a voice alert inside a rule

We already have done most of it. To trigger a voice alert from a rule, you have simply to add an Action, select this new peripheral and the correct value.

smartvoice_httpact_rules

Vincent Recipon

Propriétaire de ce blog. Owner of this blog.

You may also like...

30 Responses

  1. Wil says:

    Bonjour,
    J utilise une tablette archos sous Android mais impossible d’avoir une adresse IP statique,pouvez vous svp détailler la procédure ?
    Merci d’avance de votre aide précieuse

    • Malheureusement je ne peux pas vous aider, je n’utilise pas cette fonction. De mon côté la tablette récupère son adresse par dhcp comme d’habitude depuis mon serveur Linux. C’est mon serveur Linux que j’ai configuré pour fournir toujours la même adresse IP en se basant sur l’adresse MAC de la tablette.
      Si vous avez une box orange cela peut être géré également dans la box. Peut être que cela existe également sur les autres box.

  2. Quesson Benoit says:

    Bonjour,

    En ce qui me concerne, j’arrive a faire décrocher Skype, mais la camera ne s’active pas d’elle même. Je ne trouve pas de paramètre pour l’activer automatiquement.

    Une idée ?

    • Point bête mais sait-on jamais, effectues-tu un appel vidéo ?
      Pour les points plus compliqués maintenant : chez moi également la vidéo a souvent du mal à s’activer. L’astuce utilisant Tasker décrite dans l’article aide à ce que l’activation de la video fonctionne mieux. Cette astuce fait en sorte que Skype soit l’application active dès qu’un message skype apparaît dans la barre de notification. Néanmoins, ce n’est pas du 100%, il me faut en général 2 ou 3 appels rapprochés pour que la vidéo s’active correctement.

      Jusqu’à présent je mettais cette difficulté sur le compte de Imperihome qui utilise également la caméra. Es-tu dans la même configuration que moi ?

  3. bubu says:

    oui ca marche bien sans inclusion de valeur de périphérique.
    je remplace les xxx par la valeur de l’API souhaité mais ca lit intégralement :”crochet perif ID….”

    • As tu essayé avec les caractères accentués :
      ?text=température extérieure [LAST_VALUE PERIPH_ID=xxxxxx] degrés
      Je n’utilise pas de valeur de capteur pour mes alertes vocales, et il est trop tard pour essayer… Par contre pour l’envoi de SMS, oui je m’en sert,et cela fonctionne.
      Je me souviens avoir eu également des problèmes. Il me semble que j’ai dû recréer une valeur dans le tableau et mettre les caractères accentués.

  4. bubu says:

    bonjour à tous,

    Merci beaucoup pour le tuto. Par contre je n’arrive pas à intégrer dans une phrase la valeur d’un capteur.
    j’ai mis type GET
    Paramètes ?text=temp%E9rature%20ext%E9rieure%20[LAST_VALUE PERIPH_ID=xxxxxx]%20degr%E9s

    Vous auriez la solution?

    Merci beaucoup

    • Tu peux déjà remettre les caractères spéciaux car j’ai découvert que la box fait la conversion et cela améliore le fonctionnement. As tu vérifié le periph_id, est il bien égal au code API du device ? Est ce que ça fonctionne sans inclusion d’une valeur de périphérique ?

  5. Arnaud P says:

    ma solution ici pour Zibase capricieuse avec le TTS et ma tablette …
    http://www.touteladomotique.com/forum/viewtopic.php?f=42&t=14973

  6. Arnaud P says:

    Merci dèja pour ton retour,
    Sur la tablette est installé uniquement imperihome, tasker, ainsi que google drive pour mes backup de config mensuel rien d’autre
    La tablette, enfin je dirai plutot écran est unVSD220 de chez wievsonic c’est un écran 22 pouces tactile avec android en natif !
    Il est placé contre un mur et l’on ne voit aucun fil (prévu lors de la réhabilitation de la pièce de vie )
    Le vsd220 est genial car en 22 pouces lorsqu’on a 8 cam, la tailles est franchement top !
    Reste plus qu’a trouver une solution a mon problème ….

  7. Arnaud says:

    Et non j’utilise une Zibase … la tablette possède un connecteur Ethernet 🙂 plus fiable que le wifi …. et est connecté un permanence … et oui j’ai suprimé la veille ainsi que le lock …
    J’ai essayé aussi avant de poster de supprimer les caractère spéciaux … j’ai essayé avec pour voir mais rien y fait
    le lance la commande une 1er fois TTS uniquement la fin de phrase
    second essai dans les 2 secondes qui suive le 1er essai ca marche …
    J’essai 10 s plus tard idem plus que la fin de phrase … comme si le volume etait progressif !
    c’est pénible comme problème

    • Étrange comme phénomène… Il n’y aurait pas une application exotique qui jouerait avec le volume ? Sinon pas d’idées… Ça m’intéresse la tablette avec rj45, la connexion wifi de ma tablette n’est pas assez stable. Quelle est le modèle ?

  8. Arnaud P says:

    Hello Tous,
    Moi ca fonctionne partiellement, partiellement car le 1er TTS est prononcé partiellement
    Dans l’exemple si je mets :http://192.168.x.x/api/rest/speech/tts/On%20sonne%20au%20portillon
    => le 1er TTS j’entend juste portillon
    JE relance dans la foulé et la j’ai l’ensemble de la phrase

    J’attends 10 secondes rebelote que ” portillon ” fonctionne aléatoirement
    Une idée ? j’utilise comme tablette un Viewsonic 22″
    MErci pour vos retours

    • Utilises-tu également une eedomus ? Si oui essaie en enlevant le codage des caractères spéciaux (un vrai espace au lieu %20 par exemple). J’ai découvert dernièrement que l’eedomus fait la conversion toute seule, et que cela se passe mieux dans ce cas.
      Par ailleurs la tablette est-elle configurée pour être constamment allumée ainsi que le wifi ?

  9. Crapulfeust says:

    Bonjour,
    j’ai lu avec attention et je cherche à mettre en pratique pour ce cas de figure cependant j’aimerais adapter un peu, je m’explique.
    J’aimerais que lorsque je rentre chez moi et que je dise un certain énoncé, j’obtienne en retour le texte que j’aurais prévu dans l’eedomus.
    Exemple : je rentre chez moi, je dis, “bonjour la maison”, et en retour j’ai le texte “bonjour et bienvenue à la maison”.
    Je ne sais si c’est faisable en l’état , à partir de cet exemple où s’il faut envisager un autre équipement complémentaire (pour info, j’ai un karotz en stock)
    Merci beaucoup pour les éclaircissements et pour ce très bon tuto !
    C.

  10. ma pomme / pikat says:

    Oui effectivement 3,5 € ça fait cher !!!!
    Je les ai depuis un moment, elles étaient à 1 € à leur sortie, ils abusent un peu là….
    Sinon la voix de Aurélie sur Ivona.

  11. enr37 says:

    vu que ca fonctionne niquel, merci à vous deux, je vais essayer les voix voxygen je pense car le TTS par défaut est trop moche, meme si je pense mieux robotisé que ladite robot de voxygen ^^

    bref, ma question subsidiaire la voici.
    volet fermé ou ouvert il n’y a que 2 affirmations. j’ai aussi un état météo indiquant de vert à rouge et je voulais savoir si on pouvait indiquer un TTS du type: la vigilance passe à [LAST_VALUE PERIPH_ID=XXXXX] avec un risque [LAST_VALUE PERIPH_ID=XXXXX]

    • Je pense que cela fonctionne côté Eedomus. J’ai intégré une température dans l’article pour l’envoi de SMS chez Free, l’insertion d’une valeur de périphériques fonctionne. Est ce que 2 insertions fonctionnent, pas encore essayé…

  12. Laurent Simon says:

    En l’absence du chef, je me permets de répondre à sa place.

    Les parties rayées correspondent aux parties qui sont à remplacer en fonction de ta configuration et/ou de ce que tu veux faire. Par exemple, l’adresse IP et le port sont rayés car ils peuvent différer pour chaque installation, de même, le message de l’alerte dépend de ce que l’on veut notifier.

  13. enr37 says:

    une eedomus, je viens de trouver une vieille archos 70b sous android 3.2 qui peut donc accueillir imperihome. disons qu’il me manque de la compétence ^^
    Pourquoi par exemple as tu rayé les mention que tu avais écrites ?

  14. enr37 says:

    salut,
    je découvre ton blog grace a un lien d’abavala sur les sms de free et tombe sur la partie vocale qui m’interresse fortement mais qui n’est a mon avis pas super détaillée pour un néophyte. tu parles dans cet article de jean-martin. J’ai eau googleliser, je ne tombe que sur ton site ^^ tu as une url du blog dont tu parles ?
    Merci

  15. ma pomme / pikat says:

    Pour ma part j’utilise les voix voxygen car celle de la tablette n’est pas terrible …..
    Merci pour cette présentation 😉

    • C’est étonnant je trouve la voix de ma tablette pas trop mal par défaut avec android 4.1. Mais vous êtes plusieurs à la trouver pas terrible. Elles sont vraiment mieux ces voix voxygen ?
      3,5€ pour une voix ça me paraît cher. Et pas moyen d’écouter avant…

  1. Friday June 13th, 2014

    […] compte. La configuration de ces actionneurs a déjà été décrite dans le précédent article Donner de la voix à sa domotique,vous pouvez donc vous référer à celui-ci pour plus de détails […]

  2. Thursday August 7th, 2014

    […] les alertes vocales, je ne reviendrai pas dessus puisque l’article « Donnez de la voix à sa domotique » est à portée de […]

  3. Tuesday September 2nd, 2014

    […] les alertes vocales, je ne reviendrai pas dessus puisque l’article « Donnez de la voix à sa domotique » est à portée de […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.