Ce tutoriel décrit l’utilisation de Google Home pour commander les appareils pilotés par une carte relais IPX800 V3. IFTTT est le maillon permettant de faire dialoguer Google Home et la carte IPX800. L’article décrit pas à pas les différentes étapes de configuration de la chaîne des composants concernés.
Vous avez automatisé la commande de vos équipements (chauffage, portail, porte de garage, stores, VMC, volets roulants, …) au moyen d’une carte relais IPX800 V3 de la société GCE-Electronics.. Vous êtes tentés par l’acquisition d’un Google Home (normal ou mini) ou vous venez d’en faire l’acquisition ? Et vous vous dites, que ce serait super de commander vos appareils à la voix ? Cet article est fait pour vous.
L’objectif de cet article est de décrire l’intégration d’éléments censés être connus et utilisés par le lecteur. Cependant, les grands principes seront rappelés. Si besoin était, un article complémentaire pourrait être rédigé (n’hésitez pas à vous manifester dans les commentaires si le besoin se fait sentir).
1. Principe de fonctionnement et d’intégration
Lorsqu’une demande est faite (exemple : « Ok Google, Ouvre la porte du garage »), Google Home interagit avec le cloud de Google, qui analyse la phrase transmise et effectue la reconnaissance vocale afin de déterminer la commande et la plateforme concernées.
Dans le cas présent, il s’agit de la plateforme IFTTT qui à son tour détermine l’applet concernée (« recette » dans l’ancienne version). Nous utiliserons une applet de type Webhooks pour exécuter une requête http avec ou sans paramètre.
Si la requête contient un nom de domaine, le serveur DynDNS appelé (dans notre exemple : No-Ip.com) va remplacer le nom de domaine par une adresse IP (fournie par la box internet ou l’IPX800).
Requête en entrée du serveur DynDNS : http://Username:Password@tutoipx800.ddns.net:8083/preset.htm?RLY4=1
Requête en sortie du serveur DynDNS : http://Username:Password@90.112.155.34:8083/preset.htm?RLY4=1
La box internet va faire correspondre le numéro de port contenu dans la requête à une adresse IP locale et un numéro de port (dans notre cas l’adresse IP et le numéro de port de l’IPX800). On parle de Network Address Translation (NAT).
Enfin, l’IPX800 va exécuter la commande reçue (fermeture / impulsion /ouverture d’un relais) qui aura pour effet d’actionner l’appareil raccordé audit relais.
2. Différentes étapes
L’ordre de configuration choisi consiste à partir de l’IPX800 (ordre inverse des flèches) à remonter la chaîne des éléments à intégrer. Cet ordre permet de vérifier le bon fonctionnement des configurations. Il est possible que vous ayez déjà configuré un ou plusieurs de ces éléments. La box internet utilisée est celle de l’opérateur Orange (le seul à fournir de la fibre dans mon immeuble).
2.1 Attribution d’une adresse fixe à l’IPX800
L’attribution d’une adresse fixe IP est obligatoire afin d’interagir avec votre appareil IPX800. Il existe 2 méthodes pour le faire : soit à partir de la box internet, soit à partir de la carte IPX800.
Recommandation : utiliser de préférence la box internet, car cela permet d’avoir une vision globale de l’ensemble des adresses fixes utilisées dans votre réseau local.
Précision : activer le username et le password. Pour une transmission sans problème de la requête html, ceux-ci ne doivent pas comporter d’espace ou de caractères spéciaux.
Vérification : Après avoir redémarré la box internet et la carte IPX800, vous devez pourvoir vous connecter directement à votre IPX800 en tapant son adresse IP fixe (dans notre exemple : http://192.168.1.202).
2.2 Configuration DynDNS (Dynamic Domain Name System)
La majorité des opérateurs fournissent une adresse IP (Internet Protocol) dynamique afin de gérer au mieux la rareté des adresses au format IP V4. Le renouvellement de l’adresse IP se fait généralement toutes les 24 heures.
Le service DynDNS permet aux utilisateurs possédant une adresse IP dynamique de pouvoir l’associer à un nom de domaine (dans notre exemple : tutoipx800.ddns.net). Lorsque la box internet ou l’IPX800 détecte un changement d’adresse IP, il informe le serveur DynDNS qui met à jour sa table de correspondance : nom de domaine = nouvelle adresse IP attribuée par l’opérateur télécom (dans notre exemple : 90.112.155.34).
Il existe légion de fournisseurs (liste non exhaustive) : ChangeIP.com, Dyn.com, Noip.com, OVH.com, Synology (si vous disposez d’un NAS), …
Cette étape n’est pas à réaliser si vous disposez d’une adresse IP fixe attribuée par votre opérateur télécom, comme c’est le cas par exemple avec Free.
Recommandation : utiliser de préférence la box internet, car cela permet de centraliser en un seul point la configuration du réseau local.
Ce snapshot montre la création d’un compte DynDNS: sélectionner ddns.net, le hostname correspond au nom de domaine que vous souhaitez créer (dans notre exemple : tutoipx800.ddns.net).
Précision : la version gratuite vous demandera de valider une fois par mois l’utilisation de votre domaine.
Ce snapshot montre la configuration du DynDNS à partir de la box internet : sélectionner « dyndns« , renseigner le nom de domaine, l’adresse email et le mot de passe sont ceux renseignés sur le site DynDNS (dans notre exemple : no-ip.com).
2.3 Configuration du NAT (Network Adresse Translation)
Vu d’internet, les appareils (IPX800, périphériques, objets connectés) ne sont pas visibles directement. Internet ne connait qu’une seule adresse IP, celle de votre box internet. Pour contourner cette difficulté, on a recours à une fonction de translation de couples (adresse + port).
Le schéma montre le principe de translation à partir d’un port externe (dans notre exemple : 8083 avec l’adresse public attribuée par l’opérateur télécom http://90.112.155.34:8083) vers un couple (adresse locale et numéro de port), soit dans notre exemple (http://192.168.1.202:80). La box internet gère une table de translation.
Ce snapshot montre le principe de configuration.
Vérification : à partir de votre smartphone ou de votre tablette connecté en 4G (ne pas passer par la box internet) vous devrez pouvoir vous connecter directement à l’IPX800 en tapant l’adresse du domaine et le numéro de port (dans notre exemple : http://tutoipx800.ddns.net:8083).
2.4 Création des Applets dans IFTTT
La première chose est de créer un compte IFTTT (IF This Then That, ou si la condition est vérifiée, alors faire cela) sur le site www.ifttt.com. Puis on clique sur le menu « My Applets » et sur le bouton « New Applet ».
Cliquer sur le plus « + » pour sélectionner le service déclencheur. Taper les premières lettres de « Google Assistant », sélectionner « Google Assistant »
Sélectionner le type de trigger (déclencheur) « Say a simple phrase ».
Dans une approche générique (ouvrir / fermer relais n° X), il est possible d’utiliser le type « Say a phrase with a number », le numéro reconnu par Google est alors inséré sous forme d’un chiffre dans la requête html (Cf. § 2.6).
Cliquer sur le plus « + » pour sélectionner le service qui va exécuter l’action, taper les premières lettres de « Webhooks », sélectionner « Webhooks » puis « Make a web request ».
Renseigner la ligne de commande sous forme d’url : nom de domaine + numéro de port + commande IPX800. Je vous recommande d’activer le password sur la carte IPX800.
Exemple sans password :
http://tutoipx800.ddns.net:8083/preset.htm?RLY4=1
Exemple avec password :
http://username:password@tutoipx800.ddns.net:8083/preset.htm?RLY4=1
Choisir la méthode : « Get », le type de contenu « text/plain » et cliquer sur le bouton « Create action ».
Il est possible de recevoir une notification sur son smartphone lors de l’exécution de l’applet ; cela est très utile au début pour s’assurer du bon fonctionnement. Cliquer sur le bouton « Finish » pour finaliser la création.
Il est possible de désactiver l’applet (bouton « On »), de vérifier son bon fonctionnement (bouton « Check now ») ou de modifier la requête (roue dentée).
2.5 Commandes de l’IPX800 V3 en mode local
Commande de fermeture d’un relais (On)
http://192.168.1.202/preset.htm?led41=1, le chiffre 4 indique le numéro de relais
http://username:password@192.168.1.94/preset.htm?led41, avec l’username et le password définis dans l’écran « Lan settings » de l’IPX800.
Commande d’ouverture d’un relais (Off)
http://192.168.1.202/preset.htm?led4=0
Commande d’impulsion d’un relais
http://192.168.1.202/preset.htm?RLY4=1
2.6 Mode Configuration de Google Home
La configuration est automatique à partir de IFTTT, par le simple fait d’utiliser le service Google Assistant qui est lui même associé à votre compte Google. Il n’y a donc rien à faire.
2.7 Mode générique des requêtes avec IFTTT
Il est possible d’utiliser un mode générique pour les requêtes, en passant en paramètre le numéro du relais; cela peut être utile pour les tests mais ce n’est pas à privilégier pour une utilisation au quotidien.
Lors de la création de l’applet, sélectionner l’option « Say a phrase with a number« , utiliser le caractère « # » pour indiquer la position du numéro de relais dans les phrases prononcées et dans la phrase vocalisée par Google Home. Concernant la partie création de la requête, cliquer sur le bouton « Add Ingredient » et sélectionner « NumberField » à l’endroit où vous souhaitez ajouter le paramètre correspondant au numéro du relais (attention, lors de l’ajout, l’application insère un espace et la requête ne doit comporter aucun espace).
3. Conclusion
Si vous disposez des prérequis (Google Home, Carte relais IPX800 V3), voilà de quoi vous faire plaisir et surtout faciliter l’adoption de la domotique par le reste de la famille, qui pourra ainsi piloter les appareils reliés à l’IPX800 d’une simple commande vocale. Si vous souhaitez réaliser un scénario plus élaboré (enchaînement de plusieurs commandes), le mieux est de passer par une box domotique, cela fera l’objet d’un prochain article.