Archives par étiquette : ifttt

TP-Link Kasa et IFTTT

If This Then That, IFTTT, Si Ceci Alors Cela en français, un site qui permet de créer des Applets destinées à interagir avec votre domotique, votre Google Home, votre Alexa, vos modules TP-Link, eWelink, etc.

Aujourd’hui, nous allons créer une applet permettant de venir activer une prise Kasa (TP-Link) via un simple appel https. Cet appel pourra être lancé avec un simple curl depuis votre Raspberry Pi, un bouton sur Domoticz ou autre application de domotique, voir même depuis un IoT ESPeasy, ou un tableau de bord Node Red : vous l’aurez compris, TOUT est permis, TOUT est envisageable !

Commencez par vous inscrire sur https://ifttt.com/ puis depuis votre compte en haut à droite, cliquez sur CREATE :

Nous allons choisir WEBHOOKS pour pouvoir venir activer votre prise via https :

Choisissons Receive a web request puisque telle est notre intention, cqfd :

et donnons le nom radiateurmarche pour pouvoir l’indiquer dans notre requête web par la suite :

Nous venons de créer le déclencheur, trigger, il faut maintenant choisir le service qui sera activé, dans notre cas Kasa de TP-Link sur lequel nous possédons déjà un compte et une App android active. Les prises ont déjà un nom, faciles à retrouver :

Il vous sera demandé email et mot de passe de votre compte Kasa.
Que voulons-nous faire ? Choisissons Turn On pour ALLUMER notre prise :

Quelle prise voulons-nous activer ? La salle de bain, choisissons là :

et on termine en cliquant sur Create Action.

Voyons le résumé, puis validons :

Maintenant, il nous faut récupérer la clé d’activation, sans cela IFTTT ne pourra pas savoir qui demande quoi. Rendez-vous dans l’Applet Webhooks :

et cliquons sur SETTINGS en haut à droite :

Cliquez et copiez l’URL, cachée ici, pas fou 😉

Vérifions notre applet :

Vous pourrez désormais activer le chauffage en envoyant :

https://maker.ifttt.com/trigger/radiateurmarche/with/key/xxxxxxxxx

où xxxxxxxx doit être utilisé avec votre propre clé.

A vous de jouer maintenant pour créer une applet radiateurarret et utiliser le lien https://maker.ifttt.com/trigger/radiateurarret/with/key/xxxxxxxxxxxxx pour désactiver la prise.

Simple non ?

 

 

 

 

H801 : vos LEDs RGB en WiFi avec Google Home

Après la découverte du H801 pour contrôler vos LEDs RGB en WiFi, intéressons-nous à leur activation à distance, via une commande lancée à votre assistant Google Home dans le salon : allume LEDéteint LED, etc.

Il faut avant toute chose préciser que le H801 semble se mettre en veille au bout d’un certain temps d’inactivité. La solution ? Lui envoyer un ping toutes les 2 mn via le Crontab du Raspberry Pi dédié à la domotique, ainsi il ne s’endormira pas :

*/2 * * * * sudo ping -c2 192.168.1.192 &> /dev/null

Ici, nous interrogeons le module placé sur 192.168.1.192 toutes les 2 minutes.
Pour la commande des LEDs, je vous invite à récupérer les commandes décrites dans la découverte du H801, tout s’y trouve.

Sur notre serveur Raspberry domotique, nous allons installer un script php dans /var/www/html, ledon.php par exemple :

<?php
exec('sudo ping -c4 192.168.1.192');
exec('sudo sendip -p ipv4 -p udp -us 30978 -ud 30977 -d 0xfbebffffff00005c59d6000 -v 192.168.1.192');
exec('sudo ping -c4 192.168.1.192');
exec('sudo sendip -p ipv4 -p udp -us 30978 -ud 30977 -d 0xfbebffffff00005c59d6000 -v 192.168.1.192');
?>

Ici, nous réveillons encore plus le contrôleur sur 192.168.1.192 avec 4 pings, on lui transmet la trame d’allumage (LEDs blanches ici) et on recommence, histoire de bien insister lourdement. Remplacez bien entendu l’IP par la votre.

Pour l’extinction, créons ledoff.php par exemple :

<?php
exec('ping -c 2 192.168.1.192');
exec('sudo sendip -p ipv4 -p udp -us 30978 -ud 30977 -d 0xfbeb00000000005c59d6000 -v 192.168.1.192');
exec('ping -c 2 192.168.1.192');
exec('sudo sendip -p ipv4 -p udp -us 30978 -ud 30977 -d 0xfbeb00000000005c59d6000 -v 192.168.1.192');
?>

Pareil, toujours des tas de ping pour réveiller la bestiole, et pensez toujours à remplacer l’IP par la bonne IP.

Maintenant, créons un compte sur le site IFTTT et venons créer une Applet :

Ici nous donnons les différentes possibilités d’allumer nos LEDs, via Google Assistant.

Voyons maintenant la requête à envoyer sur notre Raspberry Pi domotique via la fonctionnalité WEB REQUEST :

Vous l’aurez compris, il faudra :

  • disposer d’une IP fixe ou d’un dyndns car IFTTT va appeler une IP publique, hélas, votre Google Home ne pourra appeler une IP locale directement.
  • ouvrir un port public dédié (par ex 8080) et le faire pointer sur le port 80 de votre Raspberry Pi, celui de son serveur Apache2
  • pointer vers http://votre_ip_fixe:port/ledon.php
  • choisir la méthode POST sur IFTTT

Sauvegardez l’applet et testez : Dis Google, allume LED

Si tout fonctionne, vos LEDs s’activent, miracle ! Si cela ne fonctionne pas, depuis votre smartphone en 3G ou 4G testez : http://votre_ip_fixe:port/ledon.php

Si les LEDs ne s’allument pas, le soucis vient du NAT de port, permettant d’accéder au Raspberry Pi depuis l’extérieur, relisez la méthode en fonction de votre box internet (on déconseille un peu les Livebox… désolé…).

Bien entendu, coté sécurité, euh… Si vous avez un .htaccess d’activé, utilisez alors : http://login:password@votre_ip_fixe:port/ledon.php

Faites une nouvelle Applet avec l’extinction, je pense que vous avez compris le principe : éteindre LED dans ce cas, et pointez sur http://votre_ip_fixe:port/ledoff.php

 

CONCLUSION :

Certes, on peut faire largement mieux, sécuriser tout cela, voir utiliser des modules commerciaux pour activer une prise à distance, mais où serait le plaisir dans ce dernier cas ? 🙂 Ici, l’ensemble est à la fois intégré dans un système domotique maison, mais également utilisable avec l’assistant Google. Par la suite, on peut prévoir de venir passer des arguments à une seule page php, par ex : http://mon_ip/domo.php&lampe=salon&etat=on qui pourra alors transmettre l’information à un script python plus sophistiqué encore, permettant d’effectuer des traitements complexes.