Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée . (140 caractères max). L’envoi est anonyme.

On demande beaucoup de choses à notre Jeedom, mais si maintenant, c’était lui qui vous posait des questions ? C’est le principe de la fonction ASK que je vous propose aujourd’hui.

Pour aborder cette fonction, nous aurons besoin de JPI et son plugin que nous avons déjà vus dans plusieurs articles, dont le dernier Jeedom Paw Interface (JPI) APK et Plugin.

Selon votre installation, la fonction ASK peut être utilisée via le TTS, façon Jarvis, ou comme nous allons le voir dans l’article, par SMS.

Dans notre exemple, Jeedom nous demandera si on souhaite lancer l’aspirateur Mi-Robot de Xiaomi et nous pourrons lui répondre « Oui » pour lancer le nettoyage, « Non » pour qui ne fasse rien, « Rappel » pour qu’il nous repose la question dans quelques minutes. En cas de non réponse il ne fera rien.

Si vous n’avez pas de Mi-Robot de Xiaomi, le principe du scénario sera exactement le même pour toute autre question, comme par exemple :

  • Dois-je éteindre les lumières ?
  • Dois-je activer l’alarme ?
  • Télé ou radio ?
  • Dois-je passer en mode Absent ?
  • C’est l’heure de #programme_tv#. Dois-je le lancer ?

Commandes de JPI

Avant de commencer le scénario, nous allons créer 2 commandes dans le plugin JPI :ASK et SMS.

  • Aller dans JPI.
  • Sélectionner le téléphone qui enverra les SMS (Nécessite une carte SIM GSM.)
  • Dans l’onglet Commandes, cliquer sur « Assistant de commande JPI« .
  • Nom  : ASK ou SMS. J’ajoute mon prénom après le nom de la commande, pour pouvoir en faire une par membre de la famille.
  • Action : sendSms.
  • Number : Le numéro de téléphone du destinataire.
  • AskData : jeedomJPI. Pour la commande ASK il faut ajouter cette variable pour que JPI sache que le SMS envoyé attend une réponse.
  • Sauvegarder.
  • Changer le type de la commande « Défaut » par « Message« .
  • Sauvegarder.

Si vous n’avez pas modifié les réglages par défaut du scénario « Réponses aux ASK » de l’APK de JPI sur le téléphone, vous devriez avoir en face de ASK_DATA, la variable : jeedomJPI que nous avons saisi plus tôt.

Voila pour les réglages de JPI, maintenant on passe au scénario.

MODE DU SCÉNARIO = PROVOQUÉ ou Programmé.

Le scénario sera, dans mon cas, provoqué par un autre scénario, en fonction de la présence, ou plutôt, de l’absence pour être précis. (Un article est en cours de rédaction sur « La gestion de la présence ».) Vous pouvez donc provoquer le scénario comme bon vous semble, en fonction de vos besoins.

ACTION : ASK

Pour commencer, il faut sélectionner la commande ASK.

  • Cliquer sur : Ajouter un bloc.
  • Sélectionner : ACTION.
  • Enregistrer.
  • Cliquer sur : Ajouter.
  • Sélectionner le mot clé : Faire une demande.

Question : Voulez-vous que je lance l’aspirateur ?

La forme de la question n’a pas d’importance pour le bon déroulement de la fonction ASK.

Réponse : Oui;Non;Rappel

Le champ réponse permet de connaître les options disponibles lors de l’envoi du SMS de réponse. Ces réponses seront entre parenthèses après la question.

Variable : AspiAsk délais : 300 sec (5 minutes.)

  • La variable sera utilisée pour interpréter la réponse à la question dans le scénario. La réponse ne tient pas compte de la casse, vous pouvez, ou pas, mettre des majuscules aux réponses.
  • Le délais, en secondes, permet de renvoyer « Aucune réponse » en cas de non réponse. J’ai choisi de mettre 300 secondes (5 minutes), car si la question est envoyée lorsque je pars de chez moi, je ne veux pas devoir me dépêcher à répondre lorsque je suis au volant.

Commandes : #[Hardware][ARCHOS JPI][ASK Guillaume]#

Pour finir de paramétrer l’action, il faut sélectionner la commande ASK, créé précédemment dans le plugin JPI.

Cette commande va envoyer un SMS avec la question et attendre une réponse.

Voila pour la première partie du scénario.

Maintenant, nous allons voir comment activer les commandes en fonction des réponses.

Le principe, c’est de faire un bloc pour chacune des réponses qui seront envoyées par SMS « Oui, Non, Rappel » et « Aucune réponse » qui sera générée automatiquement à la fin du TimeOut saisi dans le délais de la variable.

SI variable(AspiAsk) == »oui » ALORS

Commande : #[Hardware][ARCHOS JPI][SMS Guillaume]# Message : Ok c’est parti pour le nettoyage.

Commande : #[Cuisine][Mi-Robot][Démarrer]#

Si le scénario reçoit la réponse « oui« , alors on envoie un SMS pour confirmer la prise en compte de l’information, puis on lance la commande pour démarrer l’aspirateur Robot.

SINON SI variable(AspiAsk) == »non » ALORS

Commande : #[Hardware][ARCHOS JPI][SMS Guillaume]# Message : Ok pas de nettoyage aujourd’hui.

Si le scénario reçoit la réponse « non« , alors on envoie un SMS pour confirmer la prise en compte de l’information et on s’arrête là.

SINON SI variable(AspiAsk) == »rappel » ALORS

Commande : #[Hardware][ARCHOS JPI][SMS Guillaume]# Message : Ok je lance un rappel dans 15 minutes.

DANS 15 FAIRE

Scénario : #[Appartement][ASK][Aspirateur JPI]# Start

Si le scénario reçoit la réponse « rappel« , alors on envoie un SMS pour confirmer la prise en compte de l’information et 15 minutes plus tard, on relance le scénario et on recevra à nouveau la question.

SINON
Commande : #[Hardware][ARCHOS JPI][SMS Guillaume]# Message : Sans réponse je ne lance pas l’aspirateur.

Dans les cas ou on ne réponds pas, ou qu’on envoie une réponse qui ne fait pas partie des réponses traitées, alors on envoie un SMS pour être informé.

Exemple de LOG 

Demande
[message] => Voulez-vous que je lance l'aspirateur ?
[timeout] => 300
[variable] => AspiAsk
Réponse oui
if ["oui" =="oui"] = Vrai
[Hardware][ARCHOS JPI][SMS Guillaume] [message] => Ok c'est parti pour le nettoyage.
[Cuisine][Mi-Robot][Démarrer]
Fin correcte du scénario
------------------------------------
Demande
[message] => Voulez-vous que je lance l'aspirateur ?
[timeout] => 300
[variable] => AspiAsk
Réponse non
if ["non" =="oui"] = Faux
else
if ["non" =="non"] = Vrai
[Hardware][ARCHOS JPI][SMS Guillaume] [message] => Ok pas de nettoyage aujourd'hui.
Fin correcte du scénario
------------------------------------
Demande
[message] => Voulez-vous que je lance l'aspirateur ?
[timeout] => 300
[variable] => AspiAsk
Réponse rappel
if ["rappel" =="oui"] = Faux
else
if["rappel" =="non"] = Faux
else
if ["rappel" =="rappel" ] = Vrai
[Hardware][ARCHOS JPI][SMS Guillaume] [message] => Ok je lance un rappel dans 15 minutes.
Tâche : programmé + 15 min
Fin correcte du scénario
------------------------------------
Demande
[message] => Voulez-vous que je lance l'aspirateur ?
[timeout] => 300
[variable] => AspiAsk
Réponse Aucune réponse
if ["Aucune réponse" =="oui"] = Faux
else
if ["Aucune réponse" =="non"] = Faux
else
if ["Aucune réponse" =="rappel" ] = Faux
else
[Hardware][ARCHOS JPI][SMS Guillaume] [message] => Sans réponse je ne lance pas l'aspirateur.
Fin correcte du scénario

Conclusion

La fonction ASK apporte beaucoup de possibilités. A vous maintenant de l’adapter à vos besoins, sans en abuser. Personnellement j’utilise les ASK seulement dans mes scénarios d’absence.
Sachez que pour pouvoir lancer plusieurs ASK en même temps, il faudra faire quelques modifications au niveau de JPI (APK) ou du scénario. On peut par exemple faire une variable ASK_En_Cours qui sera testée au début de chaque scénario ASK, avec un Wait jusqu’à ce que la variable soit vide.

Voilà pour la fonction ASK avec le plugin JPI, mais si vous utilisez le plugin Script, vous ne pourrez pas utiliser la fonction ASK des scénarios. Mais il est possible d’adapter le scénario, c’est ce que nous verrons dans un prochain article.

Si vous avez des idées de déclinaisons, d’optimisations ou des remarques, n’hésitez pas à laisser un commentaire.

Pour info en ce moment (08/12/2017) le Mi-Robot de Xiaomi est en vente flash à 266,15 € depuis l’entrepôt européen. (Livraison en 2 à 7 jours)

Cet article a 16 commentaires

  1. Julien

    Bonjour, excellent tuto, hate de pouvoir essayer, ma carte sim arrive demain ! J’ai un léger problème, je suis incapable de trouver ou modifier JPI en rapport avec ce passage de votre guide : Si vous n’avez pas modifié les réglages par défaut du scénario « Réponses aux ASK » de l’APK de JPI sur le téléphone, vous devriez avoir en face de ASK_DATA, la variable : jeedomJPI que nous avons saisi plus tôt.
    Pourrais-je avoir un peu plus de détails s’il vous plait ?

    1. Guillaume Braillon

      Bonjour,
      C’est dans jpi sur le smartphone qu’il faut aller dans la partie de gauche dans scénario SMS.
      Je ne suis pas chez moi si vous ne trouvez pas n’hésitez pas à me relancer je regarderai le chemin exacte.

      1. Julien

        Je viens d’aller vérifier c’est parfait merci de votre réponse. Il semblerait que dans JPI dernière version tout soit déjà en ordre, je n’ai rien eu à modifier.

  2. Julien

    Je suis vraiment content d’être tombé sur votre article, je cherche désormais à trouver un moyen d’envoyer ces requêtes ASK sur 2 numéros différents, Madame et moi, un conseil ? Pardonnez-moi d’abuser de votre savoir !

    1. Guillaume Braillon

      Bonjour, désolé je n’avais pas vu le message.
      Je n’ai pas essayé mais je pense que oui et la première personne qui répond déclenche le scénario.

  3. Bernard

    Bonjour,

    J’ai lu votre tuto avec beaucoup d’intérêt mais, bien qu’ayant la dernière version (0.972), j’ai le même problème rencontré par Julien. J’ai beau regarder sur la partie gauche, j’ai bien les menus : Configuration, Evénements/scénarios, Journaux, Outils, Divers, mais dans aucun d’eux je ne trouve « scénarios SMS ».
    Si vous pouviez m’éclairer, j’en serais bien content !

    1. Guillaume

      Bonjour,
      Désolé pour le délai de réponse.
      J’ai modifié l’image en espérant que se soit plus clair :
      JPI ASK

  4. Bernard

    Bonjour et merci pour ce complément d’information.

  5. Pierrick

    bonjour
    est-il possible de faire varier dynamiquement le numero de tel da la commande JPI ask en y mettant une variable par exemple : number=variable(numero1)
    merci

  6. Chanchan BZH

    Bonjour et merci pour ce super tuto.
    Je voudrais l’adapter chez moi mais je ne sais pas trop comment m’y prendre.
    Je voudrais que ma tablette où est installé JPI me pose oralement la question « Dois-je allumer la TV ? » dès que je rentre chez moi (j’ai un détecteur de mouvement à l’entrée de chez moi et c’est lui qui modifie le Mode « présence » de absent à présent).

    De plus, j’utilise dans Jeedom le plugin Script et apparemment, d’après vos dire, il y aurait des problèmes à l’utilisation de la fonction « ASK » dans les scénarios :
    « Voilà pour la fonction ASK avec le plugin JPI, mais si vous utilisez le plugin Script, vous ne pourrez pas utiliser la fonction ASK des scénarios. Mais il est possible d’adapter le scénario, c’est ce que nous verrons dans un prochain article. »
    Est-ce que vous avez déjà publier le « prochain article » ?

    Merci d’avance.

  7. Dig

    Bonjour encore une fois un excellent tutot par contre est qu’il existe une solution pour avoir le meme type de commande mais avec un iPhone et est qu’il est possible de faire envoyer le sms via Internet pour éviter une carte SIM supplémentaire.

    merci pour ton retour

    1. Guillaume

      Re bonjour,
      Je n’ai plus d’iphone du coup je ne sais pas si il y a des applis de géolocalisation. Je sais que l’application jeedom permet de le faire mais les quelques tests que j’ai fait n’étaient pas concluant.

      Pour les SMS il n’y a pas de solution non plus a ma connaissance. Si vous avez un abonnement chez free pour votre portable ou quelqu’un de votre famille il y a le plugin free mobile sms qui permet d’envoyer des SMS sans carte sim supplémentaire. Perso j’ai un abonnement Free a 2€ et ça marche bien. Je peux même recevoir un appel en cas d’urgence comme le déclenchement de l’alarme.
      Bonne soirée.
      Guilaume.

  8. Feuillette

    Bonjour,
    j’envoie bien le message, JPI reçois nom message « oui » mais jeedom ne répond pas, j’ai beau chercher je ne trouve pas le problème, pourtant j’ai suivi votre tuto a la ligne.
    Jean

    1. Guillaume

      Bonjour,
      Il faut voir si le scénario est provoqué par jpi.
      Il y a des log dans jpi, il fait voir si le lien est bien envoyé et si il y a un message d’erreur.
      Il y a aussi des log dans jeedom pour les requêtes reçu, il faut voir si jeedom reçois la réponse.
      Vous pouvez aussi essayer de coller l’adresse dans un navigateur pour voir se qu’il se passe.

  9. Feuillette

    Rebonjour,
    je ne comprends pas la phrase : Pour finir de paramétrer l’action, il faut sélectionner la commande ASK, créé précédemment dans le plugin JPI. Ainsi que le la variable JeedomJPI.
    Merci d’avance

Les commentaires sont fermés.

Les liens d’affiliation vers les partenaires nous permettent de recevoir du matériel gratuit afin de proposer plus de tests. Nous refusons les partenaires qui ne nous laissent pas dire ce que nous voulons dans les articles. Les commissions perçues sont réutilisées pour l’achat de matériel et l’entretien du site.
Merci de soutenir les sites amateurs et indépendants !

Merci à ceux qui ont contribué.

Fermer le menu

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :