Page 1 sur 2
IFTTT / google assistant
Publié : 07 août 2018, 11:35
par miralant
Bonjour à tous,
[edit : j'essais dans un post dédié pour donner un peu de visibilité]
Je pilote déjà quelques devices avec IFTT pour allumer des lumière, pompes and co.
J'utilisais Controlicz pour certaines actions avec google home pour faire un : "quelle est la température du salon"
Il me répond, il fait "23°c dans le salon, thermostat blablabla".
Je souhaiterai faire quelque chose de similaire avec IFTT et les webrequest. Le soucis c'est que je ne sais pas comment récupérer une valeur et lui faire dire
ex :
https://login:mdp@url.hopto.org/json.ht ... ices&rid=1
me renvoie
Code : Tout sélectionner
{
"ActTime" : 1533291211,
"ServerTime" : "2018-08-03 12:13:31",
"Sunrise" : "06:42",
"Sunset" : "21:16",
"result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"CustomImage" : 0,
"Data" : "26.8 C",
"Description" : "controlicz:température piscine",
"Favorite" : 1,
"HardwareID" : 2,
"HardwareName" : "sonde",
"HardwareType" : "1-Wire (System)",
"HardwareTypeVal" : 12,
"HaveTimeout" : false,
"ID" : "FFAD",
"LastUpdate" : "2018-08-03 12:11:58",
"Name" : "Température piscine",
"Notifications" : "false",
"PlanID" : "2",
"PlanIDs" : [ 2, 4 ],
"Protected" : false,
"ShowNotifications" : true,
"SignalLevel" : "-",
"SubType" : "LaCrosse TX3",
"Temp" : 26.800000000000001,
"Timers" : "false",
"Type" : "Temp",
"TypeImg" : "temperature",
"Unit" : 173,
"Used" : 1,
"XOffset" : "624",
"YOffset" : "202",
"idx" : "1"
}
],
"status" : "OK",
"title" : "Devices"
}
l'idée est de récupérer le noeud "Data" : "26.8 C" du json et lui faire dire
avez vous une idée ?
Re: IFTTT / google assistant
Publié : 10 août 2018, 09:20
par landaisbenj
Récupérer une valeur ne sera pas compliqué, mais lui faire dire c'est autre chose.
Tu pourras surement utiliser IFTTT pour actionner domoticz, mais pas pour faire la reponse via le gh derriere...
A mon avis il faut que tu couples les deux.
Il y a des tutos sur le forum qui te permettent de faire parler le gh via domoticz je crois.
Trouve ça, et fait en sorte que ça fonctionne. Une fois que ce sera bon, tu pourras peut être simplement activer un code LUA via IFTTT.
Dans le fonctionnement moi j'imaginerai ca:
Hook IFTTT -> webhook pour modification d'un variable (ulterieurement dans cette variable tu peux faire transiter ce que tu veux par exemple si j'ai un ifttt qui dit: 'Ok google' 'Demande a domoticz' $ en webhook je vais simplement changer une variable de domoticz avec la chaine complete, et sur le changement de cette variable utilisateur je vais activer un script lua. Selon la variable je pourrai faire tout ce que je veux.)
"ok google demande a domoticz la temperature du salon" -> user variable 'la température du salon' -> Script lua:
Code : Tout sélectionner
Si uservariable commence par 'la temperature' alors
parser les devices pour trouver le reste de la chaine (ici 'du salon')
faire dire a google "otherdevice_temperature['Salon']"
Sinon si uservariable commence par 'fermer' ou 'ouvrir' alors
parser les devices pour trouver le reste de la chaine
fermer ou ouvrir le device
faire dire a google "j'ai fermer ou ouvert"...
Sinon si uservariable commence par 'allume' ou 'eteins' alors
parser les devices pour trouver le reste de la chaine
allumer ou eteindre le device
faire dire a google "j'ai allumer ou eteins"...
C'est clair dans ma tete mais c'est peut etre compliqué a comprendre..
Du coup avec un seul ifttt ce serait autonome et pas avec un script trop compliqué ( a par parser le device ), A la suite on pourrait chacun ajouter notre petit plugin d'utilisation genre:
Code : Tout sélectionner
Sinon si uservaraible commence par 'quel est l'etat'
parser les devices pour trouver le reste de la chaine
faire dire a google otherdevice[device]
Pour ma part je pourrais largement faire le code mais j'ai un peu la flemme de suivre le tuto pour faire parler domoticz :/
Re: IFTTT / google assistant
Publié : 10 août 2018, 12:12
par miralant
landaisbenj a écrit :Récupérer une valeur ne sera pas compliqué, mais lui faire dire c'est autre chose.
Tu pourras surement utiliser IFTTT pour actionner domoticz, mais pas pour faire la reponse via le gh derriere...
A mon avis il faut que tu couples les deux.
Il y a des tutos sur le forum qui te permettent de faire parler le gh via domoticz je crois.
Trouve ça, et fait en sorte que ça fonctionne. Une fois que ce sera bon, tu pourras peut être simplement activer un code LUA via IFTTT.
Dans le fonctionnement moi j'imaginerai ca:
Hook IFTTT -> webhook pour modification d'un variable (ulterieurement dans cette variable tu peux faire transiter ce que tu veux par exemple si j'ai un ifttt qui dit: 'Ok google' 'Demande a domoticz' $ en webhook je vais simplement changer une variable de domoticz avec la chaine complete, et sur le changement de cette variable utilisateur je vais activer un script lua. Selon la variable je pourrai faire tout ce que je veux.)
"ok google demande a domoticz la temperature du salon" -> user variable 'la température du salon' -> Script lua:
Code : Tout sélectionner
Si uservariable commence par 'la temperature' alors
parser les devices pour trouver le reste de la chaine (ici 'du salon')
faire dire a google "otherdevice_temperature['Salon']"
Sinon si uservariable commence par 'fermer' ou 'ouvrir' alors
parser les devices pour trouver le reste de la chaine
fermer ou ouvrir le device
faire dire a google "j'ai fermer ou ouvert"...
Sinon si uservariable commence par 'allume' ou 'eteins' alors
parser les devices pour trouver le reste de la chaine
allumer ou eteindre le device
faire dire a google "j'ai allumer ou eteins"...
C'est clair dans ma tete mais c'est peut etre compliqué a comprendre..
Du coup avec un seul ifttt ce serait autonome et pas avec un script trop compliqué ( a par parser le device ), A la suite on pourrait chacun ajouter notre petit plugin d'utilisation genre:
Code : Tout sélectionner
Sinon si uservaraible commence par 'quel est l'etat'
parser les devices pour trouver le reste de la chaine
faire dire a google otherdevice[device]
Pour ma part je pourrais largement faire le code mais j'ai un peu la flemme de suivre le tuto pour faire parler domoticz :/
Merci, je pense que t'on approche est bonne pour faire parler le google home. Cependant dans mon cas, c'est le google assistant (sur mon mobile) que je souhaite faire parler
Pour le coup, ok, j'ai fait le webhook, qui écrit dans une variable via l'api Domoticz. Je vais regarder pour faire un script lua qui parse et déclenche une lecture du capteur demandé. Reste à trouver comment faire le retour vers Google assitant

Re: IFTTT / google assistant
Publié : 10 août 2018, 12:55
par landaisbenj
A oui ok. Effectivement ma remarque sur les totus pour faire parler google home ne sera donc pas valable. Google assistant est sur l'enceinte google home. Mais les tutos ne font que diffuser un son sur l'enceinte en elle meme... Ils ne font rien avec l'assistant.
Tu ne pourras donc pas faire parler le google assistant.
Il serait d'ailleurs peut etre judicieux de ce pencher sur la question. Domoticz pourrait tout a fait faire parti de la liste des partenaires valide de google.... Mais il y aura surement un contribution a avoir.
Il y a un sdk de google assistant offert par google. Il doit etre trouvable sur github. Avec ca on pourrait peut etre regarder comment faire repondre le google assistant a des retour de domoticz. C'est une piste a creuser mais je ne m'y connais pas assez

Re: IFTTT / google assistant
Publié : 10 août 2018, 13:25
par miralant
En fait, c'est le seul service que j'utilisais avec Controlicz. Je me suis donc dit que ça serait bien de tout faire avec IFTTT et la API domoticz
Re: IFTTT / google assistant
Publié : 10 août 2018, 16:37
par miralant
J'ai trouvé une solution pour notifier mon mobile via un webhook maker. C'est en fait un API entrante à IFTTT qui permet de déclencher un event.
Code : Tout sélectionner
curl -X POST -H "Content-Type: application/json" -d '{"value1":"chambre : 34"}' https://maker.ifttt.com/trigger/Test/with/key/maclef
Donc en appelant la ligne ci dessous, je lance le Trigger "Test" auquel je passe 34 (ma température). Mon mobile est notifier du nombre "chambre : 34":D
Il me manque donc la partie script lua et pour le coup, je suis un peu dans le flou.
L'idée :
1. Appel de l'API domoticz. Nom de la zone souhaitée mise dans une variable (Zone) : OK
2. Script lua déclenché sur changement d'état de la variable Zone.
si Zone = bureau, chercher idx de la zone et récupérer la température
Appel de l'IFTTT avec le nom de l'idx + " : "+ la température de l'idx
Vous auriez un sample de code pour la partie lua (trouver l'idx et les infos correspondantes) + l'appel d'une API Json ?
Merci
Re: IFTTT / google assistant
Publié : 10 août 2018, 16:57
par landaisbenj
Ça ne doit pas être trop compliqué en jouant avec la chaîne de caractère.
J'essaierai de voir pour pondre quelque chose assez vite.
Re: IFTTT / google assistant
Publié : 10 août 2018, 16:58
par landaisbenj
Par contre moi j'étais parti sur une seule variable. Et la détection de la zone se faire dans cette variable.
Re: IFTTT / google assistant
Publié : 10 août 2018, 17:23
par miralant
landaisbenj a écrit :Par contre moi j'étais parti sur une seule variable. Et la détection de la zone se faire dans cette variable.
C'est bien ça l'idée. Une seule variable avec le nom de la zone souhaitée.
Re: IFTTT / google assistant
Publié : 20 août 2018, 15:34
par fratton
miralant a écrit :Je souhaiterai faire quelque chose de similaire avec IFTT et les webrequest. Le soucis c'est que je ne sais pas comment récupérer une valeur et lui faire dire

Je l'ai fait en php, regarde ici :
https://easydomoticz.com/forum/viewtopi ... =17&t=6873