Aller au contenu
jjacques68

Google Home & QA

Recommended Posts

Bon ben aucun soucis pour la gestion du Google Home avec la HC3... :) 

 

Attention je fonctionne à l'ancienne, sans passer par le plugin Fibaro de google home.

Je préfère... je maîtrise ce que je veux comme je veux... ça se discute... bref...

 

Prérequis : 

- accéder à la HC3 depuis l'extérieur (ouverture de port sur le routeur, connaitre son IP publique, ...)

- un compte IFTTT

- un user spécifique sur la HC3 avec accès uniquement au QA de réception du message

 

Voici les paramètres de l'applet IFTTT : 

 

What do you want to say? = HC3 $

URL = http://user:pass@adresse_ip_publique:port/api/devices/57/action/Receive

Method = POST

Content Type (optional) = application/x-www-form-urlencoded

Body (optional) = {"args":["{{TextField}}"]}

 

:

 

- 57 est l'ID de QA

- "Receive" est le nom de la fonction (méthode) dans le QA.

 

Voici le code du QA qui permet, pour le moment, d'afficher la commande dans un label et exécuter l'action : 

function QuickApp:Receive(value)
    self:updateView("LBL_Receive","text",tostring(value))
    self:Execute(value)
end

function QuickApp:Execute(value)
    if value == "ferme le volet 6" then fibaro.call(38, "close") end
    if value == "ferme le volet 5" then fibaro.call(41, "close") end
    --et puis tout ce qu'on a envie de faire...
end

Donc si je dis "OK google, ferme le volet 6", 

Le GH transmet à IFTTT qui transmet à la HC3 la commande "ferme le volet 6".

C'est donc la fonction "Receive" qui reçoit cette commande,

La fonction "Execute" récupère ce message et selon la phrase, effectuera l'action demandée.

et ben... donc le volet 6 se ferme :) 

et la réactivité est nickel.

 

JE PRECISE : 

 

Vous avez peut-être remarqué, je ne dis pas "OK google, HC3 ferme le volet 6" comme ça devrait l'être normalement, ...

Je dis bien "OK google, ferme le volet 6".

Le mot clé "HC3" définit dans l'applet disparaît, car je passe par des routines, décrites dans l'application GH (allez dans : paramètres - plus de paramètres - assistant - routines).

 

La routine est paramétrée ainsi : 

 

- Quand je dis : "ferme le volet 6"

- L'assistant exécute : "HC3 ferme le volet 6"

 

du coup pas besoin de spécifier le mot clé tout moche avant de donner l'ordre.

On peut cumuler plusieurs actions dans un seul ordre, et ça c'est top !

Bon, ça veut dire que chaque ordre doit être saisi... (inconvenient si on en a beaucoup)

 

y a peut-être d'autres solutions plus ou moins simple... j'utilisais déjà ça avec la HC2... jamais eut de soucis.

Modifié par jjacques68
  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

si tu veux faire parler ton GH, regarde dans ma signature (je l'utilise tout le temps)

Partager ce message


Lien à poster
Partager sur d’autres sites

ouuuh, mais c’est intéressant ça ! très intéressant !!!

on peut le faire tourner sur un rapsberry ?

Partager ce message


Lien à poster
Partager sur d’autres sites

oui, sûrement, je l'avais fait sur un Syno, mais ça a fini par déconner (je ne sais pas pourquoi), alors je l'ai installé sur une Debian. Alors pourquoi pas sur un Raspery ? Dans mon auto, je donne le lien vers le site originel, regarde ce qu'il propose.

Partager ce message


Lien à poster
Partager sur d’autres sites

Petit problème dans ifttt

il refuse le caractère "$" ici What do you want to say? = HC3 $

Il refuse le caractére "TextField" ici Body (optional) = {"args":["{{TextField}}"]}

Partager ce message


Lien à poster
Partager sur d’autres sites

Es tu sur du caractère ?
Écris le dans notepad et colles le dans IFTTT...
C'est pas possible qu'il ne l'accepte pas !


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

oui alors en fait il faut avoir ça

2F18E99E-7CE4-47BE-A553-8C064F188791.jpeg.d5b3d8534b3a64f12589951783036e4b.jpeg

 

je pense pas qu'il ne faut saisir le "text_field".

Ce doit être un champs spécifique.

tu as un normalement un bouton "add ingredient", où tu peux choisir "text field"

Partager ce message


Lien à poster
Partager sur d’autres sites

Je remarque que[mention=5094]jjacques68[/mention] met tout en minuscules

Je sais pas si cela a une importance dans ce cas

 

Envoyé de mon BLA-L29 en utilisant Tapatalk

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum, sur ma HC2 j'utilise le plugin Fibaro, et je n'ai pas besoin de dire Ok Google, HC2****, un ok Google, ferme le portillon c'est ok...

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 03/07/2020 à 20:37, jjacques68 a dit :

oui alors en fait il faut avoir ça

2F18E99E-7CE4-47BE-A553-8C064F188791.jpeg.d5b3d8534b3a64f12589951783036e4b.jpeg

 

je pense pas qu'il ne faut saisir le "text_field".

Ce doit être un champs spécifique.

tu as un normalement un bouton "add ingredient", où tu peux choisir "text field"

non malheureusement le bouton add ingredient ne propose que "CreatedAt"

Partager ce message


Lien à poster
Partager sur d’autres sites

non pas possible !

 

image.png.142635886df277fde4b70e9c1195f01d.png

 

tu as bine choisi "Say a phrase with a text ingredient" ?

Partager ce message


Lien à poster
Partager sur d’autres sites

il semble que se soit effectivement une erreur de ma part

Je viens de le refaire avec "Say a phrase with a text ingredient" et cela semble être bien pris en compte

reste a faire des essais

Merci pour votre aide

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

alors ça se passe au moment où tu créé ta "recette" :

 

comme trigger tu dois choisir google home et c'est là que tu spécifies "Say a phrase with a text ingredient"

tu remplies les champs comme il se doit

ensuite dans action, tu choisi webhooks...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

Je suis en cour de migration de mon HC2 vers la HC3 et je viens de faire un essai avec les commandes vocales google home

Cela ne semble pas fonctionner mais je ne sais pas ou cela coince

Ma google home me répond "OK marche lumière ampli" mais il ne se passe rien

 

voici se que me répond la box avec la requête

http://user:pass@adresse_ip_publique:port/api/devices/40/action/Receive

évidement avec mon user password ip et N° de scène correcte pour avoir cette réponse

 

	
0	
id	40
name	"Google home"
roomID	233
view	
0	
type	"json"
type	"com.fibaro.genericDevice"
baseType	"com.fibaro.device"
enabled	true
visible	true
isPlugin	true
parentId	0
viewXml	true
configXml	false
interfaces	
0	"quickApp"
properties	
apiVersion	"1.2"
categories	
0	"other"
dead	false
deadReason	""
deviceControlType	0
deviceIcon	28
emailNotificationID	0
emailNotificationType	0
log	""
logTemp	""
mainFunction	""
manufacturer	""
model	""
pushNotificationID	0
pushNotificationType	0
quickAppVariables	[]
saveLogs	true
smsNotificationID	0
smsNotificationType	0
typeTemplateInitialized	true
uiCallbacks	[]
useEmbededView	true
userDescription	""
viewLayout	
$jason	
body	
header	
style	
height	"0"
title	"quickApp_device_40"
sections	
items	[]
head	
title	"quickApp_device_40"
actions	{}
created	1617112971
modified	1617112971
sortOrder	1

Dans le QA j'ai mis cela comme requête

function QuickApp:Receive(value)
    self:updateView("LBL_Receive","text",tostring(value))
    self:Execute(value)
end

function QuickApp:Execute(value)
    if value == "Marche lumière ampli" then fibaro.call(64, "turnOn") end
    if value == "Stop lumière ampli" then fibaro.call(64, "turnOff") end
    --et puis tout ce qu'on a envie de faire...
end

Dans les routines google j'ai mis

 

quant je dit a l’assistant

"marche lumière ampli"

 

Action de cette routine

"fibaro marche lumière ampli"

 

Dans ifttt

What do you want to say? = fibaro $

URL = http://user:pass@adresse_ip_publique:port/api/devices/40/action/Receive (avec mon user, password, ip, port)

Method = POST

Content Type (optional) = application/x-www-form-urlencoded

Body (optional) = {"args":["{{TextField}}"]}

 

ou j'ai bien peut me tromper?

Merci pour votre aide

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

hmm... :15:

ton user utilisé dans IFTTT a bien les droits sur le QA ?

Dans IFTTT, tu vois une erreur si tu vas dans la vue de l'activité ?

 

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, jjacques68 a dit :

hmm... :15:

ton user utilisé dans IFTTT a bien les droits sur le QA ?

Dans IFTTT, tu vois une erreur si tu vas dans la vue de l'activité ?

 

Oui j'ai donné les droit au QA a mon user, je l'ai aussi valider dans fibaro +ID

 

voila se que dit ifttt

 

monochrome_regular.png
Google Assistant
 
 
Say a phrase with a text ingredient
 
Trigger ran, 7:48 PM
TextField
marche lumière ampli
CreatedAt
March 30, 2021 at 07:48PM
monochrome_regular.png
Webhooks
 
 
Make a web request
 
Action ran, 7:48 PM
url
http://XXX:XXXXXX@XXX.XXX.XXX.XXX:XXX/api/devices/40/action/Receive
method
{"label":"POST","value":"POST"}
content_type
{"label":"application/x-www-form-urlencoded","value":"application/x-www-form-urlencoded"}
body
{"args":["marche lumière ampli"]}
 
 
Le body ne me semble peut etre pas bon
sur HC2 j'ai
{"args":[{"action":"stop home cinéma salon"}]}
sur HC3 j'ai
{"args":["{marche lumière ampli}"]}
 
Les crochets ne sont pas au même endroit, cela ne pourrait être le probleme?
Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

Es-tu sur de la configuration du body justement dans IFTTT, tu as des captures plus haut dans le topic pour comparer...


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vais refaire des essais ce week-end

je suis en cour de migration de tous mes modules de la HC2 vers ma HC3, et a refaire mes scenes

reste la partie google home a gérer, et GEA

 

Je reviens ici pour donner des nouvelles pour la partie google home

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

dans le debug de la HC3 j'ai ce message

[02.04.2021] [22:31:12] [DEBUG] [QUICKAPP40]: onAction: {"actionName":"Receive","deviceId":40,"args":[" marche lumière ampli"]}

Mais ma lampe ne s’allume pas

 

a la création du QA quel modèle choisir?

quel rôle? (télécommande, appareil générique ou autre ou sans importance?)

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

je sais pas si c'est le copier/coller, mais tu as un espace étrange avant le mot "marche"..l

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est bon j'ai trouvé, c’était juste une histoire d’espace et de majuscule dans le QA qui n’était pas bon

Merci pour votre aide

 

effectivement c'est l'espace qui posait probleme, j'ai fait une petite erreur d'espace dans ifttt {"args":[" {{TextField}}"]} au lieu de {"args":["{{TextField}}"]}

merci encore pour tous

Modifié par flacon030
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×