ASK commandes avec conditions?

Bonjour à tous,

aujourd’hui j’ai une petite question sur la fonctionnalité « ask ».
Je m’en sert principalement dans des intéractions, et j’aimerais savoir s’il est possible d’utiliser des conditions pour l’argument « commandes » : mon but est de définir à qui envoyer le ask

Aujourd’hui, je dois dupliquer toutes mes commandes ask pour les envoyer soit à Madame, soit à Monsieur (moi-même donc :slight_smile: ) en fonction de qui aura initié l’intéraction.
On se retrouve donc avec :

j’aimerais savoir s’il n’y a pas la possibilité de faire le test directement dans le champs « commande » un peu comme ca :

j’ai essayé de différentes manières, y compris avec une fonction qui renvoie l’ID de la commande notification, mais soit je m’y prends mal, soit je n’ai pas la bonne syntaxe.

any idea ? help ?

merci ! :slight_smile:


Version : 4.0.61
Source : default
Branche : V4-stable
Système : RPI 3 B

personne !? pas d’idée pour moi ? :pleading_face: :sob:

Bonjour,
Non ceci n’est pas possible.

Bonjour ,
Comme dit mips, pas possible dans le bloc ask tel que,
mais ça doit être possible dans un bloc code, avec la syntaxe du type, recopié directement de nou :

$name_variable = xxxx; // nom de la variable qui stockera la réponse
$time_limit = yy; // time out pour la réponse 
$cmd_ask = '#[zzzzzzz][zzzzzzzzzzz][Notification]#'; // nom de la commande <-  la on peux imainer une conditionnel ou alors un tag passé au scénario pour choisir à qui envoyer
$scenario->setData($name_variable,'');
$options_cmd = array('title' => 'Un titre à la notif', 
							'message' => 'Un message ou question ? ', 
							'answer' => explode(';', 'Oui;Non'), 
							'timeout' => $time_limit, 
							'variable' =>$name_variable);
$cmd = cmd::byString($cmd_ask);
$cmd->setCache('ask::variable', $name_variable);
$cmd->setCache('ask::endtime', strtotime('now') + $time_limit);
$cmd->execCmd($options_cmd);

Eh ben c est bien dommage !
Une evol a mettre dans le backlog !?

Merci pour ton retour egalement ! :slight_smile:
J avais en effet deja vu un bout de code similaire, c’etait l etape suivante a tester sur ma todo. Mais je voulais d abord verifier si un ‹ standard › etait faisable (voir meme via une fonction custom dans le user.function.class.php …!?)

Bonjour,

Une façon de contourner cette impossibilité : utiliser un manager de notification. On retrouve ce concept dans plusieurs Todo sur le net, ainsi que dans plusieurs fils de discussion sur le forum.

En te le faisant simple si tu ne connais pas (si tu connais, ce sera pour les lecteurs qui ne connaissent pas :wink:) :

  • tu crées un scénario (nommé " NotifCenter Triage " dans mon exemple ci-dessous) auquel tu envoies toutes tes notifications. En tag, tu précises entre autres choses le ou les destinataires de ta notification. Exemple d’un tel appel :


    ‹ texte_notif › ici est le texte du message, et ‹ origine › le titre.

  • Dans le scénario " NotifCenter Triage ", ton appel à notification est trié en fonction du ou des destinataires. Comme ceci :


    Pour chaque destinataire possible (dans mon cas superadmin, admin, parents, Éric, Sarah,…), tu y mets les notifications que tu veux.

Tout est concentré en un seul endroit, le manager de notification. Plus simple à maintenir (passage de Telegram à Discord par exemple) et plus souple d’utilisation (il suffit de désactiver le bloc relatif à l’envoi par courriel Google si je ne veux recevoir de courriel par ce biais par exemple).

Dans ton cas particulier, il suffit donc, avec ce dispositif, que le tag ‹ destinataires › prenne la valeur Tom ou Sarah en fonction de qui a initié l’interaction (faudra passer par une variable, comme varChk01 dans ma première capture d’écran, variable qui aura donc la valeur Tom ou Sarah). Le manager de notification fait le reste :blush: !

Salut Avallo

merci pour ton retour.
j’ai en effet déjà tout centralisé avec un scénario Gestion-Notif qui prend plusieurs param en entrée :slight_smile:
[et perso je n’utilise pas de variables, que JE trouve trop polluante, mais des tags :wink: ]

malheureusement ca ne répond pas à mon besoin ici … :frowning:
puisque le sujet est en relation avec la commande ASK, qui réalise donc une demande et attend une réponse avant un certain délai.
Je pense qu’on doit pouvoir utiliser le « gestionnaire de notif » mais il faudrait pour cela passer par un autre scénario et utiliser des variables supplémentaires que le 1er scénario récupèrerait (la réponse du ask entre autre!)
pas certain que ce soit l’idéal dans ce cas … :confused:

alors que si le champ « commande » de ASK accepte d’avoir une fonction comme valorisation (-> qui renverrait l’ID de l’objet à utiliser pour réaliser son action), ca faciliterait grandement la chose !! :smiley:

Bonjour à tous j’ai une petite question, quelqu’un sait comment on peut mettre un delais supérieur à 3 chiffres en secondes dans la commandes ASK?

dans mes scenario si je vais jusqu’a 999 s ca marche si je passe la barre des 1000 le ask n’attend plus et va direct dans aucune réponse.

Merci d’avance de vos aides :slight_smile:

Salut !

Je ne suis pas certain que ca ait un rapport avec le sujet de ce topic !
Merci de creer un sujet dédié pour avoir une réponse a ta question…!

non effectivement c’etait pas en rapport, et je voulais pas juste creer un sujet juste pour ca… mais je vais le faire merci

Hello again @kiboost @Salvialf

idée bonne à prendre ?
ou je ferme le post ?

Tu peux déjà le faire avec le tag #profile#

Dans la doc de JeeRhasspy : Jeedom Plugin JeeRhasspy | Jeedom by KiboOst

1 « J'aime »

merci pour le retour

visiblement t’as plus de chance que moi !

[2021-09-21 10:56:51][SCENARIO] Start : Scenario lance manuellement.
[2021-09-21 10:56:51][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-09-21 10:56:51][SCENARIO] Mise à jour du tag #qui# => Tom
[2021-09-21 10:56:51][SCENARIO] Commande introuvable - Vérifiez l'id : #[Notifications][Telegram][#qui#]#
[2021-09-21 10:56:52][SCENARIO] Fin correcte du scénario

le remplacement ne se fait que au niveau equipement (2nd [ ]) ? pas au niveau cmd (3e [ ] ) ?

Il faut utiliser le tag profile, pas n’importe lequel.

okiii ! :+1:

on peut faire un test (ici bidon) pour savoir quelle commande complète utiliser !

faut juste pas avoir besoin du vrai tag ‹ profile › (qui par exemple arrive avec une interraction!) :sweat_smile:

thanks !