Variable heure dans scénario avec Google

Tags: #<Tag:0x00007f28300797c0>

Bonjour,

après plusieurs recherche et amélioration de ce scénario qui a pour but de programmer l’heure d’une routine de réveil j’ai besoin par soucis de vérification que google me donne en retour vocal l’heure programmé , chose qu’il fait mais pas correctement. (D ailleurs merci à @Mips pour l aide sur le code de ce scénario )

je m’explique, quand je vais au lit je l’indique a google, il lance tout ce qu’il faut pour le coucher et me demande a quelle heure il doit programmer le réveil via ce scenario

il ne comprend pas toujours correctement l’heure donc dans sont retour j’ai ajouter une variable pour qu’il me donne l’heure a la quelle il a programmé le réveil et ainsi corriger si besoin

j’etait passé par un simple appel de la variable concerné (Exécution de la commande [appartement][GH Groupe appartement][Parle !] avec comme option(s) : {« background »:« 0 »,« title »:"",« message »:« le r\u00e9veille est programmer pour (<<8 h 10>>, bonne nuit »})

mais au vue du format google m’annoncé donc : …est programmer pour plus petit que plus petit que 8H10 plus grand que plus grand que

pas le top… lol

et la je coince je n’arrive pas a trouver la bonne variable pour corriger ce « défaut »

voici le scnerio :

Capture d’écran 2020-06-05 à 18.38.31

et log :

[2020-06-05 00:35:59][SCENARIO] Lancement du scénario en mode synchrone
[2020-06-05 00:35:59][SCENARIO] Start : Scénario lancé manuellement.
[2020-06-05 00:35:59][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-06-05 00:35:59][SCENARIO] Demande {"title":"a quelle heure je programme le r\u00e9veille ?","message":"a quelle heure je programme le r\u00e9veille ?","answer":["heure"],"timeout":"60","variable":"heurer\u00e9veil"}
[2020-06-05 00:36:17][SCENARIO] Réponse <<6 h 30>>
[2020-06-05 00:36:17][SCENARIO] Pause de 15 seconde(s)
[2020-06-05 00:36:32][SCENARIO] Exécution d'un bloc élément : 176
[2020-06-05 00:36:32][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-06-05 00:36:32][SCENARIO] Exécution d'un bloc code
[2020-06-05 00:36:32][SCENARIO] heure recue:<<6 h 30>>
[2020-06-05 00:36:32][SCENARIO] heure format hhmm:630
[2020-06-05 00:36:32][SCENARIO] Fin du bloc code
[2020-06-05 00:36:32][SCENARIO] Exécution de la commande [appartement][GH Groupe appartement][Parle !] avec comme option(s) : {"background":"0","title":"","message":"le r\u00e9veille est programmer pour ((, bonne nuit))"}
[2020-06-05 00:36:32][SCENARIO] Exécution d'un bloc élément : 177
[2020-06-05 00:36:32][SCENARIO] Exécution du sous-élément de type [condition] : at
[2020-06-05 00:36:32][SCENARIO] Evaluation de la condition : [610] = 610
[2020-06-05 00:36:32][SCENARIO] Tâche : 177 programmée à : 2020-06-05 06:10:00
[2020-06-05 00:36:32][SCENARIO] Fin correcte du scénario

Peux tu expliquer, je ne comprends pas ta question : "mais au vue du format google m’annoncé donc : …est programmer pour plus petit que plus petit que 8H10 plus grand que plus grand que“

dans ma fonction google parle avec l’appel a cette variable : (variable(formartime(heureréveil))

google me répond : le réveil est programmer pour plus petit que plus petit que 8H10 plus grand que plus grand que

car la variable est sous cette forme : <<8 h 10>>

je ne parvient pas a trouver la variable qui lui ferais dire correctement : le réveil est programmé pour 8H10

hello
Il faut que tu remplace les << et >> avec la fonction :
Remplacer « x » par « y »

str_replace('x','y',VALEUR)

Donc tu ajoutes :

str_replace('<<','',variable(formartime(heureréveil))

puis

str_replace('>>','',variable(formartime(heureréveil)) 

et ensuite si besoin pour avoir 8 heure 10 tu ajoutes

 str_replace('h','heure',variable(formartime(heureréveil))
1 J'aime

merci @Claude69 de ta réponse détaillé qui en plus permet de comprendre la logique

par contre google et toujours têtu et la il me sort la variable complete str_replace(’<<’,’’…

ce que je comprend pas c’est qui si je mais variable(heureréveil)

il annonce bien la valeur et non la variable, mais des que je lui ajoute le reste rien a faire il annonce tout

peut etre ajouter cette valeur dans le bloc code pour ensuite l’appeler simplement via variable(heureverification)
par exemple, mais la j’avoue que j’ai eu beaucoup d’aide pour le bloc code et que ce n’est pas de mon niveau :confused:

Que vaut ta variable avant tout traitement ?

1 J'aime

au tout départ google me demande l’heure de réveil a programmer

l’info brut qui ressort et sous ce format : Réponse <<8 h>>

le bloc code la transforme ensuite au format compatible au bloc A

[2020-05-30 02:29:27][SCENARIO] heure recue:<<10 h>>
[2020-05-30 02:29:27][SCENARIO] heure format hhmm:1000

et le blocA l’exploite de cette façon : time_op(variable(heureréveil),-15)

Il y a un truc qui m’échappe. C’est la structure de ta variable :
variable(formartime(heureréveil))
Cela devrait plutôt être :
formartime(variable(heureréveil))
Tu peux montrer ton scénario

Capture d’écran 2020-06-08 à 20.29.34

Capture d’écran 2020-06-08 à 20.29.55

@happythomas

Les << et >> c’est pas du à une mauvaise syntaxe coté IFTTT ???
image

voici ma chaine ifttt :

Iv8&uuid=any&action=askreply&query=<<{{TextField}}>>

Tu peux essayer 2 trucs :

  • Donner une réponse sous la forme 6h30 sans espace avant/après le h
  • corriger ifft en uuid=any&action=askreply&query={{TextField}}

ça devrait te permettre d’avoir un retour sur GH avec une chaine correcte

merci j’ai corrigé ifttt, je teste ce soir :slight_smile:

Non ça ne fonctionne pas :confused: Google ne réagi plus au réponse avec cette syntaxe ifttt

C’est étonnant…
Tu peux revenir en arrière je pense. ça vaut le coup quand même de regarder dans les logs api voir si rien ne transite réellement entre GH et Jeedom.

Personnellement, j’ai pas besoin de ces <<>> mais j’appelle un scenario

ifftt a bien recu l’information avec la réponse, mais jeedom ne la pas recu

[2020-06-08 20:08:41][SCENARIO] Réponse Aucune réponse

C’est pour ça que la log des api est intéressante, sauf erreur, ifttt ne déclenche pas directement ce scénario

Non effectivement ifttt a l action générique

Ok Google réponse …

J utilise cette fonction dans beaucoup de scénario donc la faire pointer sur un scénario rendrais le reste compliqué

Du coup très bonne idées la correction à la sources ,mais là je ne vois que la solution du traitement de la variable dans le scénario directement

J avais penser à ajouter une action variable et mettre la variable expliqué par @Claude69 mais ça ne fonctionne pas non plus

Les variables ne sont pas mon point fort ,d ailleurs même le bloc code c est @Mips qui m’a aidé grandement

Je commence de plus à plus à comprendre et les utiliser mais ça part vite en compliqué ^^ Est pourtant cela ouvre de grande possibilité

Toujours aucune piste pour que Google donne correctement l heure programmé :confused: personne n’a d idées ?