Aller au contenu

Google Home & QA


jjacques68

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
Lien vers le commentaire
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.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...
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"

Lien vers le commentaire
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
Lien vers le commentaire
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...

 

Lien vers le commentaire
Partager sur d’autres sites

  • 8 months later...

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
Lien vers le commentaire
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
Lien vers le commentaire
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
Lien vers le commentaire
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
Lien vers le commentaire
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
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...