Au(x) développeur(s), modérateurs? Bref à qui sait?

Bonjour.
J’aimerais savoir s’il est permis de greffer dans la classe interactQuery.class.php quelques lignes de code personnelles à la place de l’issue selon laquelle le moteur n’a pas trouvé d’occurrence de la demande (et donc à la place de « j’ai reçu … Je n’ai rien compris »). Je voudrais dans ce cas l’envoyer dans un autre script.
Faut-il demander une autorisation? Si oui, à qui?
Merci!

Salut,

Dans un plugin ?
Hors plugin?

Sinon sur ton jeedom tu fais ce que tu veux mais ca sera écrasé à chaque mise à jour

Merci pour ta réponse rapide!

C’est dans le core\class\interactQuery.class.php donc je peux :smiley: :smiley:. Super!

Sinon sur ton jeedom tu fais ce que tu veux mais ca sera écrasé à chaque mise à jour

Oui oui, je vais garder une version interactQuery.class.php.custom … en essayant de ne pas oublier à chaque MAJ.

Bonjour,

Fais une PR sur le github jeedom core, on verra ce qu’on en fait. Au pire c’est refusé… Au mieux, si ça passe on en profitera tous :slight_smile:
L’idée ça serait que chacun puisse paramétrer une action / script / scénario sur une interaction pas comprise ?

Merci pour ta réponse et ta proposition!

Fais une PR sur le github jeedom core

Je ne suis pas sûr que ça intéresse grand monde et surtout je ne sais pas trop comment la formuler. Actuellement, c’est un appel à un script python qui envoie une requête à openai.

Ex: ordres vocaux s/ smartphone :
Samantha allume la télé => interaction jeedom
Samantha Qu’est ce que la loi de Murphy et donne m’en un exemple dans le domaine de la domotique => envoi à l’IA

détrompe toi, ça m’'intéresse :wink: ( et je ne suis peut être pas le seul)
Si tu ne souhaites pas faire une PR, est-ce que tu peux m’envoyer ta modif, je verrais ce que je peux en tirer ? Je ne connais pas trop ce module des interactions mais je soupçonne qu’il est sous-exploité et je voudrais m’y pencher!
Merci

1 « J'aime »

Tout à fait d’accord avec toi pour la sous-exploitation du moteur « interactions ». J’avoue l’avoir moi même mis de côté plusieurs années, il demande quand même un minimum d’investissement. Je regarde dès que possible à te rendre compréhensibles mes élucubrations :wink:

Bonjour,

Cela peut en intéresser certains :+1:
Surtout que Jeedom a choisi de focaliser ses ressources sur les assistants vocaux et a arrêté tout développement de cette partie :

Merci pour l’intérêt :wink:

Surtout que Jeedom a choisi de focaliser ses ressources sur les assistants vocaux

Mais l’un n’empêche pas l’autre … Et c’est bien la collaboration des deux que j’ai visée.
J’ai préparé un doc sur mon drive qui reprend les quelques lignes greffées dans le core de jeedom ainsi que deux scripts python: https://docs.google.com/document/d/1KbYQ6zL1HLfx7kyz-1SFt03peYWOSMr_YeNEYgOv4os/edit?usp=sharing
Cette partie ne représente que la partie « serveur » de mon projet dont la partie « cliente » est une app android. Soyez indulgents et pour vous aider à concrétiser, je retourne à la mise en place d’une petite vidéo.

1 « J'aime »

L’intérêt me semble évident :slight_smile: à l’heure où on discute de l’énergie consommée (gaspillée?) par les IA, si Jeedom peut mettre en avant son propre moteur d’interaction qui permettrait d’éviter d’interroger une IA à chaque fois qu’on veut allumer la lumière du salon ou fermer la porte du garage… c’est tout bénef!

Comme je le comprends, il faut un plugin pour déclencher l’interaction, lequel utilise-tu ? On pourrait faire ce traitement dans le plugin concerné, mais la réponse de l’interaction ne permet pas simplement de savoir si ça a fonctionné ou pas, puisqu’elle répond du texte dans tous les cas… Il faudrait analyser la réponse (si contient « désolé… je n’ai pas compris… ») avant d’envisager un traitement alternatif par un autre plugin / script python / autre.

Ton approche me semble la bonne, en gros il faudrait proposer dans la configuration Jeedom / Interaction la possibilité de répondre une action / commande si il n’a pas compris


L’action ajoutée serait ton script python (plugin script) ou bien interroger une IA (plugin Jeemate si possible?) ou bien rien du tout…

si Jeedom peut mettre en avant son propre moteur d’interaction qui permettrait d’éviter d’interroger une IA à chaque fois qu’on veut allumer la lumière du salon ou fermer la porte du garage… c’est tout bénef!

Exactement ! C’est dans cette optique que tout mon projet est axé: rester un max en local avec ses avantages économiques mais aussi de latence nulle, d’indépendance et de gestion des retours (j’en ai un marre des ”et je démarre la télé” de GH

Comme je le comprends, il faut un plugin pour déclencher l’interaction

C’est une app android qui sert de client. Elle se trouve dans un post antérieur ainsi que tout ”mon” contexte où …

puisqu’elle répond du texte dans tous les cas… Il faudrait analyser la réponse (si contient « désolé… je n’ai pas compris

…est traité entre autres :wink:
(Une vidéo pour comprendre vaut mieux qu’un long discours mais je dois m’y remettre demain: c’est pas mon fort)

Ton approche me semble la bonne, en gros il faudrait proposer dans la configuration Jeedom / Interaction la possibilité de répondre une action / commande si il n’a pas compris

C’est exactement ça, tu as mis le doigt sur l’objet et l’emplacement, on pourrait ainsi envoyer la requête dans un script, dans un scénario, etc :saluting_face::saluting_face:

Voilà la video (de qualité très discutable) en ligne: https://youtu.be/dmLFUxUJx6I.
Comme on peut le voir et comme mentionné dans d’autres posts, le problème réside essentiellement dans la qualité du microphone (ici smartphone Samsung S4).
En résumé, l’app écoute non-stop, ne réagit que si le mot-clé apparaît en PREMIERE position dans la parole, scanne celle-ci pour ne réagir que si quelque chose suit le mot-clé et comporte plus de 2 mots (pour éviter un tas de faux-positifs).
Ce n’est qu’à ce moment que l’ordre est envoyé à jeedom.
Si ordre compris car configué dans les interactions, exécution, sinon envoi à l’IA.

@pifou : cet algorithme est-il applicable dans un plugin?.. Ca dépasse mes connaissances

… Et la dernière version de l’apk: https://drive.google.com/file/d/1Iu-F_zhWuczMUa7ChwNWmoULgEWDlqK7/view?usp=sharing

1 « J'aime »

Alors oui, tout est faisable (après c’est une question de compétence) mais je ne comprends pas bien: ce que tu décris c’est pris en charge côté tel android par ton appli Jeedomix (que je ne connaissais pas, j’ai rattrapé l’historique de ton affaire, bravo en passant!)

Du coup, que reste-t-il à faire côté plugin ?

Si admettons on pose un micro conférence sur la box (en cable ou bluetooth) alors on peut refaire la même chose en direct sur la box et sans app android, juste avec un plugin, mais c’était pas ça le sens de ta question ?

:smile: C’est pas toi qui avais évoqué un plugin ?

J’ai alors pensé que ce plugin pourrait remplacer mon app android pour ceux qui préféreraient s’en passer. Donc, si un bon micro relié à la box pouvait communiquer à un plugin qui jouerait le rôle de mon client actuel:


Pourquoi pas?
Rem: il y a le côté nomade de ma solution qu’on n’aurait pas.
Dans tous les cas, l’option de sortie que tu proposes dans les interactions, j’applaudis à 2 mains!!

Hahaha mais je pensais pas forcément créer un nouveau plugin, je demandais juste lequel tu utilise (mais je ne connaissais pas ton app) :sunglasses: moi j’ai testé les interactions avec le plugin Telegram (text only) mais il y a déjà des plugins intégrés à Jeedom pour la reco vocale aussi je pense. Artyom; Jeerhaspy, Snips. Et je suis sur qu’il y en a d’autres, en cloud ou locale. Sans compter les app mobiles Jeemate ou Jeedom-Connect :cowboy_hat_face:

Du coup je me concentre juste sur la partie « exception => autre action à définir » qui peut être une action message vers une IA ou bien vers le plugin ayant initié l’interaction. Il faut faire attention à ne pas initier une boucle infinie dans ton diagramme, si l’on renvoie l’exception vers le même plugin d’origine et qu’il veut à nouveau générer une interaction…

Du coup je me concentre juste sur la partie « exception => autre action à définir »

Super! (C’est toi qui va modifier la page comme tu l’avais suggéré? Je peux te demander de me tenir au courant?)

attention à ne pas initier une boucle infinie dans ton diagramme

Merci mais pas de problème de ce côté: jeedomix ne gère le retour que pour l’afficher et/ou l’énoncer. 200 ms après l’envoi de la requête, il est déjà reparti sur l’écoute non-stop