IPX800 et IFTTT

De GCE Electronics
Aller à : navigation, rechercher

IPX800 et IFTTT

IFTTT a prévu un channel spécifique pour les systèmes DIY comme l’IPX 800.

Il s’agit du Webhooks. Il permet, dans un sens, à IFTTT d’envoyer une requête URL à l’IPX et, dans l'autre sens, à l’IPX d’envoyer un signal à IFTTT.

Exemple d’utilisation :

IPX-IFTTT-SAMPLE1.png

Si le Channel Météo WeatherUnderground de IFTTT indique qu’il fait en dessous de 10 deg dans votre ville, alors envoyer une requête l’IPX pour modifier un relai virtuel.

Dans l’autre sens :

IPX-IFTTT-SAMPLE2.png

Si l’IPX transmet un PUSH URL a IFTTT, alors envoyer une notification sur mon téléphone.

Ci-dessous un petit guide pour utiliser l’IPX avec WebHook dans l’un et l’autre sens. Ce sont des utilisations « basiques », pour d’autres configurations, lire des manuels de IFTTT et IPX.

Comment piloter l’IPX depuis IFTTT.

Les prérequis pour faire cette opération sont 
A – Activer les API sur l’IPX.
B – Définir une IP à l’IPX votre réseau local
C – Disposer d’une IP fixe sur internet ou à défaut d’un nom de host dyndns.
D – Configurer votre box pour mettre en place un NAT entre votre IP internet et l’IP de l’ipx.

Ceci fait vous devez être en mesure de piloter votre IPX depuis l’extérieur depuis des requêtes de ce genre :

http://<mon-ip-publique>:<le-port-nat>/api/xdevices.json?key=<ma-cle-api>&SetVI=1

Une fois cette étape franchie, vous pouvez vous attaquer à IFTTT.

Dans le cas présent nous allons utiliser le WeatherUnderground comme évènement déclencheur. Mais ce n’est pas limitatif.

Par exemple avec le trigger lever du jour.

IPX-IFTTT-INPUT-TRIGGER.png
IPX-IFTTT-INPUT-RULE-W-INPUT.png

Puis dans THAT choisir WebHook.

IPX-IFTTT-INPUT-THAT-WEBHOOK.png

Dans URL, mettre la commande que vous voulez transmettre à l’IPX. (Voir doc de l’API IPX pour les détails). La méthode peut être GET ou POST de façon indifférente. Le content type n’est pas important, l’IPX ne s’en sert pas. De préférence mettre text/plain.

Voila c’est fait.

ATTENTION : j’attire votre attention que ouvrir un port depuis l’extérieur dans votre réseau privé sans passer par un firewall ou un VPN est un risque de sécurité majeur.

Comment déclencher un trigger IFTTT avec l’IPX.

Le principe est de faire du PUSH sur le WebHook Channel de IFTTT.

Première étape, se connecter au Channel. Ensuite en allant sur https://ifttt.com/maker vous obtenez toutes les informations nécessaires pour calculer l’URL a programmer sur l’IPX. En particulier allez sur ‘How to Trigger Events’ Où vous verrez le guide suivant:

'''To trigger an Event''' 
Make a POST or GET web request to: 
https://maker.ifttt.com/trigger/{event}/with/key/<<my-channel-key>> 
With an optional JSON body of: 
{ "value1" : "", "value2" : "", "value3" : "" } 
The data is completely optional, and you can also pass value1, value2, and value3 as query parameters or form variables. This content will be passed on to the Action in your Recipe.
Traduit en PUSH IPX cela donne
Serveur : maker.ifttt.com
PORT : 80 (sans SSL) ou 443 (avec SSL)
URL ON : /trigger/{event}/with/key/<<my-channel-key>>?value1=ON
URL ON : /trigger/{event}/with/key/<<my-channel-key>>?value1=OFF
METHODE : GET
SSL : OFF /ON

Nous reviendrons sur les URL.

La doc WebHoopk est ambiguë sur les variables. Donc voici les erreurs les plus communes :

Penser au ‘/’ en début de l’URL
Utiliser le paramètre valueN avec un v minuscule.

Pour déclarer le Webhook Channel en réception; sur le trigger THIS de votre Applet, utiliser le WebHook Chanel auquel vous associez un eventName.

Exemple digitalInput:

IPX-IFTTT-OUTPUT-RULE-W-WEBHOOK.png

WebHook Channel va propager les paramètres event (digitalInput dans notre cas), OccuredAt pour la date et l’heure de l’évènement ainsi que value1, value2 et value3 provenant de l’URL.

Sur la partie THAT, utilisons le Channel Notification pour recevoir une alerte sur votre smartphone.

IPX-IFTTT-OUTPUT-THAT-NOTIFICATION.png

Vous pouvez finir de créer votre Applet.

Revenons à l’IPX et au PUSH.

Créez une entrée de PUSH avec les réglages suivants :

Serveur : maker.ifttt.com
Port 80
URL ON : /trigger/digitalInput/with/key/<<my-channel-key>>?value1=ON&value2=$D05
URL OFF : /trigger/digitalInput/with/key/<<my-channel-key>>?value1=OFF&value2=$D05
SSL : OFF

Note : Lors de essais pour cette doc seul le mode SSL OFF a été validé.

Il reste ensuite a créer un scenario qui déclenche le PUSH sur le changement de l’entrée digital 5.

Remarque : contrairement à la première partie, envoyer un message PUSH vers IFTTT, n’augmente pas le risque de sécurité de votre réseau.