Page 1 sur 3

[Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 02 août 2018, 10:38
par fratton
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 :

Code : Tout sélectionner

https://domoticz-ip:port/json.htm?type=command&param=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';
}
exemple d'appel WebHooks de IFTTT à la phrase "Quelle est la température du salon" :
https://monurl/monscript.php?action=Temp&idx=120

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 03 août 2018, 12:07
par miralant
fratton a écrit :
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&param=switchlight&idx=115&switchcmd=On&username=bW9p&password=bW9ucGFzcw==
euh, ça fonctionne parfaitement sans l'encodage.
il y'a d'ailleurs un post sur ce sujet déjà ouvert ici > https://easydomoticz.com/forum/viewtopi ... hilit=IFTT

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 03 août 2018, 14:41
par fratton
miralant a écrit :euh, ça fonctionne parfaitement sans l'encodage.
Tout dépend de ta méthode d'identification : Page de connexion (celle que j'utilise) ou Basic-AUTH et de ta version de Domoticz. La doc officielle est claire :
https://www.domoticz.com/wiki/Domoticz_ ... parameters
Capture.JPG
Capture.JPG (31.18 Kio) Consulté 23722 fois
De plus cela evite d'afficher en clair l'utilisateur et le mot de passe, ce qui est une petite amélioration quand même ;)

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 03 nov. 2018, 11:01
par Gardaux
Bonjour,
Le système à l'air pas mal du tout pour avoir les différentes températures de la maison via GH.
Comme tout novice ma question est simple, où dois-je placer le fichier PHP ? :?

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 06 déc. 2018, 21:30
par Seb13
Merci, cela fonctionne très bien !

Pour la base64, possible de faire le contraire... je ne comprends pas l'interet car si je prends en clair : VHVOZVRyb3V2ZXJhc1Bhcw==

Avec le lien que tu as donné tu peux faire decode donc on trouvera le code : TuNeTrouverasPas

L’intérêt ?

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 10 déc. 2018, 09:51
par Seb13
Hello à tous,

Une réponse ? ;)

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 10 déc. 2018, 18:40
par fratton
Comme dit plus haut, je n'ai fait que suivre la doc officielle. Pose la question au développeurs pour en connaitre le pourquoi.
Mais comme le disent les autres, tu peux te passer de l'encodage base64.

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 10 déc. 2018, 19:25
par glybra
Bonsoir a toute et a tous,
je n arrive pas a acceder au site https://www.sigmdel.ca/michel/ha/domoti ... html#ifttt , j ai une erreur 403 a chaque essai !! quelqu un pourrait m'eclairer..merci

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 10 déc. 2018, 19:48
par fratton
Tu trouveras un tuto pour IFTTT ici : https://easydomoticz.com/forum/viewtopi ... hilit=IFTT

Re: [Tuto] Google Home Assistant + Domoticz + IFTTT

Publié : 10 déc. 2018, 22:51
par glybra
Merci fratton