[Tuto] Google Home Assistant + Domoticz + IFTTT
Publié : 02 août 2018, 10:38
IFTTT est super simple à mettre en place et à utiliser si c'est juste pour passer des interrupteurs de on à off ! Cela remplace assez rapidement controlicz qui est devenu payant.
IFTTT (IF This Then That) est un service web gratuit utilisé pour provoquer une action (then that) à la suite d'un événement déclencheur (if this). Parmi la liste des très nombreux déclencheurs possibles, on retrouve Google Assistant. Et parmi les actions possibles, on peut envoyer une requête HTML avec WebHooks.
https://ifttt.com
Alors le principe est simple.
Éveiller Google Home: « OK Google »
Énoncer une commande: « Alume la lampe de chevet »
Envoyer, avec WebHooks, une requête HTML formatée selon les exigences du logiciel de domotique qui allumera la lampe.
Il suffit d'utiliser le tuto à partir de l'étape 7 : https://www.sigmdel.ca/michel/ha/domoti ... html#ifttt
mais pour l'url, il faut encoder en base64 le login et le mot de passe :
Exemple (utilisez https://codebeautify.org/base64-encode ):
idx=115
username = moi = bW9p en base64
password = monpass = bW9ucGFzcw== en base64
ce qui donne comme url :
Pour faire lire une température par l'enceinte google, j'ai créer un script PHP en passant action "Temp" et l'IDX du capteur.
Le PHP recupère la valeur json du capteur et execute le script notification_google_home.sh
https://easydomoticz.com/forum/viewtopic.php?t=5914
qui se base sur stream2chromecast.py
https://github.com/dohliam/stream2chromecast
Mon php :
exemple d'appel WebHooks de IFTTT à la phrase "Quelle est la température du salon" :
https://monurl/monscript.php?action=Temp&idx=120
IFTTT (IF This Then That) est un service web gratuit utilisé pour provoquer une action (then that) à la suite d'un événement déclencheur (if this). Parmi la liste des très nombreux déclencheurs possibles, on retrouve Google Assistant. Et parmi les actions possibles, on peut envoyer une requête HTML avec WebHooks.
https://ifttt.com
Alors le principe est simple.
Éveiller Google Home: « OK Google »
Énoncer une commande: « Alume la lampe de chevet »
Envoyer, avec WebHooks, une requête HTML formatée selon les exigences du logiciel de domotique qui allumera la lampe.
Il suffit d'utiliser le tuto à partir de l'étape 7 : https://www.sigmdel.ca/michel/ha/domoti ... html#ifttt
mais pour l'url, il faut encoder en base64 le login et le mot de passe :
Exemple (utilisez https://codebeautify.org/base64-encode ):
idx=115
username = moi = bW9p en base64
password = monpass = bW9ucGFzcw== en base64
ce qui donne comme url :
Code : Tout sélectionner
https://domoticz-ip:port/json.htm?type=command¶m=switchlight&idx=115&switchcmd=On&username=bW9p&password=bW9ucGFzcw==Pour faire lire une température par l'enceinte google, j'ai créer un script PHP en passant action "Temp" et l'IDX du capteur.
Le PHP recupère la valeur json du capteur et execute le script notification_google_home.sh
https://easydomoticz.com/forum/viewtopic.php?t=5914
qui se base sur stream2chromecast.py
https://github.com/dohliam/stream2chromecast
Mon php :
Code : Tout sélectionner
$DOMOTICZ_URL="http://xxx.xxx.xxx.xxx:8081";
if(isset($_GET['idx']) and isset($_GET['action'])) {
$idx = $_GET['idx'];
$action = $_GET['action'];
if($action=='Temp') {
$curl = curl_init($DOMOTICZ_URL."/json.htm?type=devices&rid=".$idx);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$json = json_decode(curl_exec($curl),true);
$json = $json['result'][0];
$temp = $json['Temp'];
$phrase = 'sudo /home/scripts/sh/stream2chromecast/notification_google_home.sh "'.$temp.' degrés" 0 0 2>&1 &';
$output = shell_exec($phrase);
echo "<pre>$output</pre>";
}
} else {
echo 'attente';
}
https://monurl/monscript.php?action=Temp&idx=120