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