IFTTT avec scénario

Bonjour,
J’essaie d’utiliser IFTTT.
Pour ce faire j’ai récupérer le code

Commandes simples avec 1 applet IFTTT : celui de Sattaz

mon applet IFTTT a l’air de fonctionner (j’ai un retour sonore à l’execution de la commande orale
mon scénario pour tester:


Le problème: variable $ textfield de IFTTT ne semble pas se charger.
Peut être simpliste comme explication mais je peux vous communiquer autre chose si vous en avez besoin.
Merci pour votre aide
cordialement

Bonjour,
Je reviens vers vous et peut être @Sattaz avec quelques éléments supplémentaires sur mon problème:
lorsque je supprime dans le script (avec variables):
if(contains_words(trim(strtolower($message)), array("allumer", "lumi", "salon")))
la commande s’éxécute
et lorsqu’elle existe, voici le log du scénario:

[2022-02-20 16:16:33][SCENARIO] Start : Execution provoquee par un appel API . Tags : {"#IFTTT#":"\"peux - tu allumer le salon\""}
[2022-02-20 16:16:33][SCENARIO] Exécution du sous-élément de type [action] : code
[2022-02-20 16:16:33][SCENARIO] Exécution d'un bloc code
[2022-02-20 16:16:34][SCENARIO] Exécution du sous-élément de type [condition] : if variable(IFTTTMessage) =="allumer le salon"
[2022-02-20 16:16:34][SCENARIO] Evaluation de la condition : ["" =="allumer le salon"] = Faux
[2022-02-20 16:16:34][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-20 16:16:34][SCENARIO] Exécution du sous-élément de type [condition] : if variable(IFTTTMessage) == "eteindre le salon"
[2022-02-20 16:16:34][SCENARIO] Evaluation de la condition : ["" == "eteindre le salon"] = Faux
[2022-02-20 16:16:34][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-20 16:16:34][SCENARIO] Exécution du sous-élément de type [condition] : if variable(IFTTTMessage) !=""
[2022-02-20 16:16:34][SCENARIO] Evaluation de la condition : ["" !=""] = Faux
[2022-02-20 16:16:34][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-20 16:16:34][SCENARIO] Fin correcte du scénario

Je remarque que l’évaluation de la condition ne s’effectue pas probablement parce que la variable IFTTTMessage est vide mais pourquoi, je ne comprends pas
Je connais peu de chose dans ce domaine peut être que quelqu’un pourrait m’aider à y voir clair, cela serait sympa.
le log du scénario:

[2022-02-21 18:36:38][SCENARIO] Start : Execution provoquee par un appel API . Tags : {"#IFTTT#":"\"peux - tu allumer le salon\""}
[2022-02-21 18:36:38][SCENARIO] Exécution du sous-élément de type [action] : code
[2022-02-21 18:36:38][SCENARIO] Exécution d'un bloc code
[2022-02-21 18:36:38][SCENARIO] Exécution du sous-élément de type [condition] : if variable(IFTTTMessage) =="allumer le salon"
[2022-02-21 18:36:38][SCENARIO] Evaluation de la condition : ["" =="allumer le salon"] = Faux
[2022-02-21 18:36:38][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-21 18:36:38][SCENARIO] Exécution du sous-élément de type [condition] : if variable(IFTTTMessage) == "eteindre le salon"
[2022-02-21 18:36:38][SCENARIO] Evaluation de la condition : ["" == "eteindre le salon"] = Faux
[2022-02-21 18:36:38][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-21 18:36:38][SCENARIO] Fin correcte du scénario

Bonne journée
Cordialement

Salut,

Voici ce que cela donne chez moi:

[2022-02-25 19:07:09][SCENARIO] Start : Execution provoquee par un appel API . Tags : {"#IFTTT#":"\"\u00e9teindre la lumi\u00e8re de la cuisine\""}
[2022-02-25 19:07:09][SCENARIO] Exécution du sous-élément de type [action] : code
[2022-02-25 19:07:10][SCENARIO] Exécution d'un bloc code
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-02-25 19:07:10][SCENARIO] Exécution d'un bloc élément : 495
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [condition] : if
[2022-02-25 19:07:10][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [condition] : if
[2022-02-25 19:07:10][SCENARIO] Evaluation de la condition : ["Lumière cuisine éteinte" == "Lumière cuisine allumée"] = Faux
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [action] : else
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [condition] : if
[2022-02-25 19:07:10][SCENARIO] Evaluation de la condition : ["Lumière cuisine éteinte" == "Lumière cuisine éteinte"] = Vrai
[2022-02-25 19:07:10][SCENARIO] Exécution du sous-élément de type [action] : then
[2022-02-25 19:07:10][SCENARIO] Exécution de la commande [Rez de chaussée][Cuisine][Eteindre]

En fait il faut voir ce qui ne va pas dans la partie qui identifie les mots clefs, dans mon exemple cette partie du script cherche si dans la phrase il y a les mots clefs : étein , lumi et cuisine

if(contains_words($message, array("étein", "lumi", "cuisine")))
{
  $tags['#IFTTTMessage#'] = "Lumière cuisine éteinte";
}

Si c’est le cas alors 'evaluation de la condition donne:
Evaluation de la condition : [« Lumière cuisine éteinte » == « Lumière cuisine éteinte »] = Vrai

Chez toi cela reste vide : Evaluation de la condition : ["" ==« allumer le salon »] = Faux

Essaye de chercher a ce niveau.

Sebastien

@Sattaz
Tout d’abord un grand merci pour ta réponse :grinning_face_with_smiling_eyes:
J’ai comparé ton log avec le mien et j’arrive à la conclusion que la variable IFTTTMessage est vide donc la condition d’évaluation est fausse.
Cela vient peut être de mon applet IFTTT aussi je te joint une capture, tu pourras peut être encore m’aider.




Bonne journée
Cordialement

Non c’est faux, comme ceci :

Et apres ton JeeAPi.php, enleve le ? …

Sebastien

@Sattaz
comme tu me l’indique, j’ai enlevé le ? après jeeApi.php.
dans le webhooks body j’ai bien:
&type=scenario&id=114&action=start&tags=IFTTT:"allumer le salon"
je vois bien maintenant la variable IFTTT.
Malheureusement dans le log de mon scénario, elle est toujours absente et l’évaluation ne se fait évidemment pas.
le log de mon scénario:


Bonne après midi

@Sattaz
Je crois que j’ai trouvé: dans mon scénario j’ai mis une action déclarant la variable(IFTTTMessage) avec en valeur #IFTTT#


Dis moi ce que tu en penses.
Merci pour ton soutien et ton aide

toujours pas bon …

Regarde, dans le code php on decoupe ce qui est vient de IFTTT:

$arg = $tags['#IFTTT#'];

$message = $arg;
$number = -1;

if (strpos($arg, '%')  !== false || strpos($arg, 'pourcents')  !== false) {
	$pos = my_ofset($arg);
  	$number = substr($arg, $pos, strlen($arg)-$pos);
  	$number = substr($number, 0, strpos($number, ' ')); 
	$message = substr($arg, 0, $pos);
}

$message = trim(strtolower($message));
$number = trim(strtolower($number));

ensuite on dit par exemple que si la variable php $message contient les mots clef étein , lumi et cuisine alors on met le tag Jeedom IFTTTMessage a ‹ Lumière cuisine éteinte › :

if(contains_words($message, array("étein", "lumi", "cuisine")))
{
  $tags['#IFTTTMessage#'] = "Lumière cuisine éteinte";
}

C’est ceci que tu doit mettre dans ta condition, comme ceci:

Ensuite tout a la fin de ton scenario, tu peux utiliser ce tag #IFTTTMessage# pour faire parler un google assistant.

Sebastien

@Sattaz
Je me perds un peu. J’utilise ton code avec les variables et tu mets dans ton scénario
« Tag(IFTTTMessage) »
J’avoue ne plus comprendre d’autant que tout ceci est absolument inconnu pour moi
Heureusement que des personnes comme toi existent pour les gens comme moi :blush:

@Sattaz
Pas d’inquiétude j’ai mis ton code « tag » un essai et tout fonctionne :grinning:
Un grand merci pour ton aide et ta patience
Bon week-end end
Cordialement

1 « J'aime »

Tu peux mettre le sujet en ‹ resolu › …

Sebastien

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.