Dans un système domotique, les notifications sont souvent délivrées via notre smartphone,
sauf qu'on ne porte pas ce dernier toujours chez soi.
Dans ce cas, délivrer une notification à travers l'ampoule, en changeant sa couleur ou son intensité,
sera un bon moyen alternatif.
Nous allons voir ensemble dans ce tutoriel comment utiliser les ampoules LIFX à cette fin.
Les LIFX sont des ampoules à base de LEDs, capables de changer de couleur ou d'intensité et fabriquées par une
entreprise australienne. Elle se connecte au réseau WiFi directement sans boîtier intermédiaire.
LIFX a été financée sur Kickstarter en novembre 2012 récoltant plus d'un million de dollars.
Pour notre tutoriel, je vais utiliser un framework PHP écrit par six0r
pour faire clignoter une ampoule LIFX en rouge et blanc.
Il vous faut également un Raspberry Pi qui fait tourner un serveur web et une ampoule LIFX :)
Vous pouvez en commander en cliquant sur l'ampoule :)
Pensez à utiliser le code AMBASSADOR5OFF pour obtenir 5% de réduction :)
Commencez par installer l'ampoule dans son adaptateur puis allumez-la avec l'interrupteur. Elle doit s'allumer avec une lumière blanche.
Depuis votre smartphone, installez l'application officielle LIFX puis connectez vous sur le réseau WiFi "LIFX".
Depuis l'application Lifx, choisissez le réseau WiFi auquel l'ampoule doit se connecter et entrez sa clé de sécurité (si elle existe). Maintenant,
basculez vers votre réseau (que vous venez de sélectionner) et commencez à explorer l'application :)
Pensez à donner à vos ampoules un nom propre (cuisine, salon, etc.), ça vous sera utile plus tard !
Cette étape est facultative.
Depuis l'interface de votre box ADSL, allez dans l'onglet DNS et associez à votre ampoule (ou l'une d'elles si vous en avez
plusieurs) le nom DNS lifx.
Vous pouvez bien sûr en choisir un autre.
Cette bibliothèque va écouter le port 5439 de votre Raspberry pour contrôler les ampoules LIFX.
Téléchargez la bibliothèque du Github de six0r (ou d'ici) puis copiez la dans le répertoire /var/www de votre Raspberry (utilisez un client sftp comme FileZilla ou la commande wget). Renommez le dossier lightd au lieu de lightd-master.
Si vous n'avez pas créer un DNS pour une ampoule LIFX ou si vous avez choisit un nom différent de lifx, alors il faut
modifier la constante LIFX_HOST pour qu'elle corresponde au nom choisi ou à l'adresse IP d'une des ampoules !
Cette constante se trouve dans le fichier lightd.php dans le dossier /var/www/lightd/
Dans cette page, vous pouvez également modifier le port à travers duquel vous communiquez avec LIFX.
Maintenant nous allons créer le script bash suivant qui va lancer lightd au démarrage du Raspberry :
cd /var/www/lightd && nohup php lightd.php &
La commande nohup permet de lancer le programme en arrière-plan.
Il faut maintenant le rendre exécutable :
sudo chmod +x /chemin_du_script/nom_du_script.sh
Pour lancer le script au démarrage du Raspberry, on va l'enregistrer dans le crontab :
@reboot /chemin_du_script/nom_du_script.sh
Si vous souhaitez exécuter le programme sans redémarrer votre Raspberry, tapez les deux lignes du script précédent directement dans le terminal. Si vous choisissez de ne pas créer de script, le programme ne se lancera pas au prochain démarrage du Pi !
En admettant que l'adresse IP du Raspberry Pi est 192.168.1.20 :
Cette commande vous retourne les différentes caractéristiques de chaque ampoule sous forme d'un JSON.
Cette commande éteindra l'ensemble des ampoules LIFX.
Attention : Cela nous coupera pas le courant !
Si vous remplacez off par on, vous allumerez l'ensemble des ampoules. Si vous souhaitez éteindre une ampoule particulière, alors il faut ajouter le nom de l'ampoule : 192.168.1.20:5439/power/off/nom_ampoule
Cette commande appliquera une lumière blanche. Pour trouver le code d'une couleur, allez sur ce site. La commande 192.168.1.20:5439/color/FFFFFFK3500 appliquera une couleur blanche et une intensité de 3500 à toutes les ampoules.
Ajoutez le nom de l'ampoule à la fin de la commande (comme précédemment) pour appliquer les modifications à une ampoule particulière.
Nous allons faire clignoter l'ampoule entre le rouge et le blanc 5 fois à intervalle d'une demi-seconde. Créez le script bash suivant (comme précédemment) et rendez le exécutable :
#!/bin/bash for i in {1..5} do curl -s 192.168.1.20:5439/color/E52929/Salon sleep 0.5 curl -s 192.168.1.20:5439/color/FFFFFF/Salon sleep 0.5 done
Vous pouvez lancer le script de deux manières, soit directement à partir du terminal :
/chemin_script/nom_script.sh
Soit par l'intermédiaire d'une page web, dont le code php est le suivant :
<?php exec('/chemin_script/nom_script.sh');
A vous d'adapter ce code à vos besoins. Par exemple, vérifier les droits de la personne avant d'exécuter le script !
A bientôt :)