Précisions sur le moteur d'interactions de Jeedom

salut @Djelau, dsl je viens de voir ce message. Concernant l’interaction des volets dont tu as vu une capture plus haut, voici la capture des actions de l’interaction :

et la capture du début du scenario :

voici si besoin le scenar en entier (je crois que tu peux l’injecter chez toi avec le bouton template?)
scenario.txt (8,3 Ko)

j’espère que ça t’aidera, dis moi si souci

1 « J'aime »

bonjour @Loic. Je reviens à la charge avec une triste nouvelle : même en beta 4.0.39, les interactions s’emmêlent encore les pinceaux : quand je demande « allume la lumière du salon », il ne comprend pas :

 [2020-02-05 20:48:13][DEBUG] : Je compare : allume la lumiere du salon avec #shift# la #light_type# du #piece# et tags : {"#shift#":"allume","#light_type#":"lumiere","#piece#":"salon"}
[2020-02-05 20:48:13][DEBUG] : Je compare : allume la lumiere du salon avec allume la lumiere du salon => 0
[2020-02-05 20:48:13][DEBUG] : Correspondance trouvée : #shift# la #light_type# du #piece# mais ne contient pas : /.*baisse.*lampe|baisse.*lumiere|augmente.*lampe|augmente.*lumiere|diminue.*lampe|diminue.*lumiere|monte.*lampe|monte.*lumiere|mets.*/
[2020-02-05 20:48:13][INFO] : J'ai reçu : allume la lumière du salon. Je n'ai rien compris. J'ai répondu : Je ne comprends pas
[2020-02-05 20:48:13][INFO] : J'ai reçu : allume la lumière du salon. Je réponds : Array (     [reply] => Je ne comprends pas )

alors que l’interaction est bien présente dans les phrases :

Si jamais un truc évident te saute aux yeux et peut être corrigé rapidement , c’est cool!

merci de m’avoir lu

La je peux rien y faire c’est comme si tu lui dis * ne doit pas correspondre à toto ben forcement c’est pas possible. Si il tombe sur une phrase qui a une correspondance de 0 (donc le mieux possible) alors il considere que c’est la bonne et ne vas pas plus loin. Ta seule solution la c’est de faire avec des regexp d’exclusion peut etre. Niveau code la je peux absolument rien faire car impossible de savoir en cas de phrase qui ont pour valeur 0 laquel est la meilleure

Par contre c’est étrange qu’il ne sorte pas la phrase a correspondance exact, la requete c’est :

SELECT *
FROM interactQuery
WHERE LOWER(query)=LOWER(:query)

Avec :query qui vaut la phrase indiquée.Peut etre un soucis d’espace qui traîne (j’ai poussé en beta un changement la dessus)

merci @Loic, j’ai effectivement des regexp d’exclusion et des regexp obligatoires, impossible d’avoir 0 à 2 phrases différentes selon catégorie (lumière, musique, chauffage…)

Si c’est qu’une faute de frappe (un espace qui traîne) c’est cool! quelle est le numéro de version que tu as poussé stp?

Pour les modifications de ce genre il n’y a pas de numéro de version il suffit de bien etre sur la branche beta et de lancer une mise à jour meme si il ne te propose rien

ok merci @Loic, une dernière faveur stp, je sens que je suis tout près de l’osmose c’est vraiment frustrant, ne penses tu pas qu’il faille tester uniquement les phrases qui ne sont pas éliminées par les regexp obligatoires? Encore tout à l’heure il me dit qu’il n’a pas compris alors que la bonne phrase existe et possède les bons regexp :sob::scream: :

 [2020-02-08 15:19:41][DEBUG] : Je compare : monte la temperature de la salle de bain de 2 degres. avec monte la temperature de la salle de bain de 2 degres. => 0
[2020-02-08 15:19:41][DEBUG] : Correspondance trouvée : monte la #light_type# de la #piece#. mais ne contient pas : /.*lampe|lumiere.*/

alors qu’en fait tout est censé bien aller :

merciiiiiii !! :pray::grin:

Edit : je viens de faire le test après mise à jour de ma beta. Le résultat est le même, il trouve des correspondances dans les phrases non autorisées…

Question bête: c’est pas juste parceque dans demande tu as écrit « la temperture » au lieu de temperAture?

Après j’utilise pas les interactions, c’est juste ce qui me fait tiquer sur la capture…

et non @Poumi, bien vu mais apparemment la correction se faisait d’elle même, le résultat reste le même :

[2020-02-08 15:36:07][DEBUG] : Je compare : monte la temperature de la salle de bain de 2 degres. avec monte la temperature de la salle de bain de 2 degres. => 0
[2020-02-08 15:36:07][DEBUG] : Correspondance trouvée : monte la #light_type# de la #piece#. mais ne contient pas : /.*lampe|lumiere.*/

:sob::sob:

par contre, pas de problème avec « monte le chauffage de la salle de bain de 3 degrés »…à n’y rien comprendre, pourtant j’ai corrigé temprature, même avec l’accent, rien à faire…@Poumi si tu as un autre commentaire je suis preneur merci!

Je pense que comme tu as monte la xxx il prend cette interaction:

Avec monte le xxx tu n’as donc pas le soucis.

Par contre comme je n’utilise pas les interactions je saurais pas te dire comment faire pour qu’il prenne la bonne

Tu peux montrer la config de celle là au cas où? Je pense que c’est dans celle là qu’il manque un regexp pour pas qu’il la sélectionne.

Édit: en regardant les config des interactions, je vois qu’il y a un regexp d’exclusion, donc à priori je dirais que tu dois exclure température dans cette interaction non?

Très cher @Poumi, tu viens d’égayer sensiblement mon dimanche (et les jours suivants aussi du coup!!) :pray::sunglasses::fist_right::fist_left::champagne::sun_with_face:

En fait j’étais persuadé que les regexp d’exclusion ne servaient qu’à filtrer les phrases quand il y en a plusieurs centaines générées automatiquement (par exemple en supprimant « la salon », « on », « off », « le lampe »…).
Alors qu’en fait ils servent aussi à exclure des demandes qui ne figurent pas dans ces phrases, par exemple comme tu le dis ci dessus, en mettant un regexp temperature dans mon interaction volume musique. Traduction : tout va bien!

Un grand merci @Poumi et @Loic je vous en dois une bonne! Je peux même maintenant rêver à améliorer mon WAF !

@Loic, si je peux me permettre une suggestion, si c’est pas déjà prévu, c’est de compléter la doc interaction.
@Poumi (et qui veut), je tiens à ta disposition toutes mes config interactions (musique, chauffage, lumières, volets, liste de courses, alarme…)

A+

C’est prévu depuis des années je dirais mais on trouve malheureusement pas le temps par contre c’est sur github donc vous pouvez aider faire des PR et on les acceptera avec plaisir. On a nous malheureusement trop de charge et les années 2020/2021 sont deja full…

1 « J'aime »

Bonjour à tous,

Désolé je suis novice en interaction et tout les tutos que je trouve sont sur Jeedom V3, et je vois quand même pas mal de différence, alors voilà mon problème je débute simplement je voudrais ouvrir fermer les volets de chez moi par interaction SMS.

mais mon problème c’est que le moteur d’interaction ne me génère pas de phrase :

image

Salut, j’ai déjà eu ce problème, les phrases sont apparues en décochant « commandes » dans le filtre « visibles ».

La liste des plugins cochés est masquée, as tu bien coché le plugin qui gère les volets? (zwave?)

Dans les synonymes, si la commande est Ouverture, il faudrait plutôt écrire

Ouverture=ouvre

pour info ma capture :

(ne fais pas attention aux regexp, on verra ça plus tard)

Salut @Seb54 !

Comment te dire ? Merci !!

Mon plugin pour les volet c’est Deconz et MyHome, car je suis en Zigbee…

En fait ça s’est aussi débloqué car j’avais pas coché d’unité dans les filtres… bref

Sinon, je ne comprends pas trop comment la table de synonyme fonctionne, car ça marche du tonnerre pour mes volets

En revanche pour mes éclairages la commande On fonctionne, mais le Off pas du tout : cf. log ci-dessous

[2020-04-27 23:28:49][INFO] : Evènement sur la commande [Maison][SMS xXx][Message] valeur : Eteint spots salle a manger
[2020-04-27 23:28:49][INFO] : Evènement sur la commande [Maison][SMS xXx][Expediteur] valeur : xXx (répétition)
...
[2020-04-27 23:30:19][INFO] : Exécution de la commande [Salle à manger][Spots Salle à Manger][ON] avec les paramètres {"tags":{"#query#":"on spots salle a manger","#plugin#":"sms","#profile#":"admin","#identifier#":"sms::admin","#dictation#":"Eteint spots salle a manger","#valeur#":"","#unite#":"","#commande#":"ON","#objet#":"Salle \u00e0 manger","#equipement#":"Spots Salle \u00e0 Manger"}}
[2020-04-27 23:30:19][INFO] : Exécution de la commande [Aucun][Dimmable light 3][On 0b] avec les paramètres {"tags":{"#query#":"on spots salle a manger","#plugin#":"sms","#profile#":"admin","#identifier#":"sms::admin","#dictation#":"Eteint spots salle a manger","#valeur#":"","#unite#":"","#commande#":"ON","#objet#":"Salle \u00e0 manger","#equipement#":"Spots Salle \u00e0 Manger"}}
[2020-04-27 23:30:19][INFO] : Exécution de la commande [Aucun][Dimmable light 4][On 0b] avec les paramètres {"tags":{"#query#":"on spots salle a manger","#plugin#":"sms","#profile#":"admin","#identifier#":"sms::admin","#dictation#":"Eteint spots salle a manger","#valeur#":"","#unite#":"","#commande#":"ON","#objet#":"Salle \u00e0 manger","#equipement#":"Spots Salle \u00e0 Manger"}}
[2020-04-27 23:30:19][INFO] : Exécution de la commande [Aucun][Dimmable light 5][On 0b] avec les paramètres {"tags":{"#query#":"on spots salle a manger","#plugin#":"sms","#profile#":"admin","#identifier#":"sms::admin","#dictation#":"Eteint spots salle a manger","#valeur#":"","#unite#":"","#commande#":"ON","#objet#":"Salle \u00e0 manger","#equipement#":"Spots Salle \u00e0 Manger"}}
[2020-04-27 23:30:19][INFO] : Exécution de la commande [Aucun][Dimmable light 6][On 0b] avec les paramètres {"tags":{"#query#":"on spots salle a manger","#plugin#":"sms","#profile#":"admin","#identifier#":"sms::admin","#dictation#":"Eteint spots salle a manger","#valeur#":"","#unite#":"","#commande#":"ON","#objet#":"Salle \u00e0 manger","#equipement#":"Spots Salle \u00e0 Manger"}}

Éteint prends la valeur On, Off prend la valeur On aussi, si on regarde ma config ça donne :

essaie dans synonyme avec on=allume|offc=eteint

Bingo! c’est bon ça y est je comprends, et maintenant tout fonctionne, je élargir mes synonyme maintenant et commencer les regexp

Encore une dernière petit question à tous, toutes mes interactions marche correctement par SMS, et j’aimerais personnaliser la réponse en fonction des user autorisé, je n’ai pas trouvé d’info à ce sujet :


la variable #utilisateur# ne fonctionne pas, je ne connais pas le nom de la variable à utiliser ici :).

Merci d’avance

Bonjour à tous,

Personne n’a d’idée sur comment récupérer le nom d’expéditeur de l’interaction ?

bonjour, non dsl, mais je reste attentif aux réponse, ça m’intéresse

edit : d’après la doc, l’info est à sens unique, autorisation d’un utilisateur, sans pouvoir savoir lequel interagit

1 « J'aime »

Merci pour ton retour