Tuto pour contrôler avec google home la v5 depuis la v4

Hello,

Voulant jouer avec le V5 et google, le support m’a annoncé que Smart Home ne supporte pas la V5 pour le moment.

Comme j’avais envie de tester, je me suis dit que Google savait commander la v4 et que la v4 avait un API.

Petit problème, la v5 est passée à un API Rest, je trouve ça cool MAIS les push de la v4 ne savent pas générer un body.

Donc là il fallait un traducteur. C’est assez simple en PHP mais il faut avoir installé un serveur web avec PHP, un wamp, avoir un NAS synology… beaucoup de possibilités.

En premier il faut avoir configuré Smart Home de GCE. Il faut donc créer en entrée dans smart home.

ipx800-SH

Ici j’ai donc « Test » qui allume ou éteint le relais 8 (j’aurais voulu une sortie virtuelle mais on n’y a pas accès).

Ensuite préparer la page web. dans un folder /IPX800V4versV5 , je mets ce fichier index.php dont voici le code : !! modifier la clef API, l’IP de vitre v5 et les id des relais (moi ca commence à 65536).

<?php
// $_GET["Statut"] contient le statut. !! Uniquement 'true' ou 'false'
// $_GET["NumeroRelais"] contient le numéro du relais controllé (donc de 1 à 8)

//Construction de l'URL avec la clef API
$API_KEY = "xxxxxxx";  //la clef API
$IPX800_IP = "192.168.xxx.xxx";  //l'addresse IP
$Relay=[65536,65537,65538,65539,65540,65541,65542,65542]; // les id des 8 relais (/api/core/io pour les voir)
$IDRelay=$Relay[$_GET["NumeroRelais"]-1]; // -1 car les tableaux en php commencent à 0

//Construction de l'URL avec la clef API et l'ID du relais
$IPX800_API = "http://$IPX800_IP/api/core/io/$IDRelay?ApiKey=$API_KEY";

//Construction de la requête
$ch = curl_init($IPX800_API);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
$data = '{"on":' . $_GET["Statut"] . '}';
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

echo $data;

//Exécution de la requête. Pas de retour car le push ne sait pas les gérer
curl_exec($ch);
?>

Ensuite préparer le push qui va attaquer cette page.
Créer un push qui pointe vers le serveur qui contient votre page php et
dans les URL j’ai (!! un push par relais, modifier NumeroRelais=1 vers le numéro de relais contôlé)

  • /IPX800V4versV5/?NumeroRelais=1&Statut=on
  • /IPX800V4versV5/?NumeroRelais=1&Statut=on

Maintenant créer un scénario sur le V4 toujours :

  • Evénement : Relais (8)
  • Action : on/off
  • Résultat : push (celui que vous venez de créer)

OK Google fonctionne maintenant :slight_smile:
N’hésitez pas si vous avez des questions.
Guy

6 « J'aime »

Salut GMOINS , je vois beaucoup de chose autour du NAS synology , as-tu une référence pour en commander un qui fonctionne bien avec IPX800 ??

Bonjour
N’importe quel modèle convient.
C’est juste la puissance qui change :slight_smile:

La puissance est à déterminer en fonction des fonctionnalitéss que vous utiliserez et du nombre de connexions simultanées.

Personnellement, j’ai un très vieux DS211J qui fonctionne très bien pour la domotique.
J’ai aussi un DS718+ gonflé à 10 Go de RAM pour d’autres scripts domotiques et autres fonctions (Photos, web, proxy, …)
bonne soirée

1 « J'aime »

N’importe quel modèle convient comme vient de le dire François.

Ce qui chance c’est effectivement la puissance de calcul, la ram, les disques et le support de DSM 7.

Pour le reste François à tout à fait raison, même un vieux tant qu’il a php et webstation d’activés ils fonctionnera.

Je suis sur le syno pour le script car c’est vraiment unes superbe boite à outil, et qui me permet des environnements docker accessible et gérables par tout le monde.

Bonne soirée.

1 « J'aime »

Merci pour vos réponses les gars , j’ai un nas mycloud, pensez vous que je peux faire la même chose ou dois-je investir dans un synology ???

Bonsoir,

Je ne le connais pas et vu des articles en parlant mais moins facile.

Après, vu que ce sera bientôt possible avec un nouveau firmware du v5, le script php disparaîtra.

Donc pour tester un wap sur le PC ou un docker avec php et apache serait moins onéreux.

Belle soirée, Guy

2 « J'aime »