Controler une amploule Lifx via python
Lifx est une ampoule connecté. Ils sont en concurrence avec les ampoules de Phillips : Hue. Les ampoules Lifx sont connecté sur le wifi domestique. Lifx nous propose sont cloud, mais il n'est pas obligatoire.
Lifx nous propose une API python disponible sur Github. Nous allons voir comment l'API fonctionne.
Installation
Il faut avoir installé python (2 ou 3) .
Via Pip
Il faut avoir installé l'utilitaire pip (python-pip).
$ pip install lifxlan
Via Github
Voici le lien sur Github
Télécharger les fichiers (via zip ou git). Installer le module:
$ python setup.py install
Via nos fichiers
Dans nos fichiers, lifxlan est en version 0.2.3.
Décompressé le tar et installer le module:
$ tar zxvf lifxlan-0.2.3.tar.gz && python lifxlan-master/setup.py install
Hello World
Pour contrôler le bon fonctionnement du module, dans le github ou le tar, vous trouverez un répertoire "examples". Dans celui-ci, un script python nommé hello_world.py permet de lister les ampoules connectées sur le réseau. pour l’exécuter taper la commande:
$ python hello_world.py
Utilisation de l'API
Vous trouvez toutes les commandes possible dans le fichier README.md du github ou du tar. Dans cette doc, j'expliquerai les commandes les plus importante.
Import
Dans notre script python, il faut importer le module lifxlan:
from lifxlan import *
Sélectionner l'ampoule
Pour sélectionner une ampoule, il faut connaitre son adresse MAC et son IP. Nous pouvons avoir ces infos avec le script "hello_world.py".
ampouleSalon = Light("12:34:56:78:9a:bc", "192.168.1.42")
Pour sélectionner toutes les ampoules :
lan = LifxLAN() ampoules = lan.get_lights()
N'oublier pas de faire une boucle pour les traiter individuellement :
for ampoule in ampoules: #traitement
Get
Nous pouvons récupéré des informations sur l'ampoule
Power
Permet de savoir si la lumière est allumé ou éteinte.
etatLum=ampoules.get_power()
Color
Permet de savoir quelle est la couleur attribué a l'ampoule.
couleurLum=ampoules.get_color()
Set
Nous pouvons envoyer des commandes à l'ampoule
Power
Permet d'allumer ou éteindre l'ampoule.
Paramètres:
- power : "on"/"off", True/False, 0/1, ou 0/65535
- duration : Facultatif, duré entre l’état initiale et l’état demandé, en milliseconde (défaut 0)
- rapid : Facultatif, si la valeur est vrais, le code attend la confirmation d’exécution de l'ampoule. (défaut True)
ampoules.set_power(power, [duration], [rapid])
Color
Permet de définir la couleur de l'ampoule.
Paramètres:
- color: la couleur est défini avec la liste suivante [hue (0-65535), saturation (0-65535), brightness (0-65535), Kelvin (2500-9000)], le plus simple et de mettre la couleur voulu sur l'ampoule, et d’exécuter le script "hello_world.py" pour récupéré la valeur de la couleur.
- duration : Facultatif, duré entre l’état initiale et l’état demandé, en milliseconde (défaut 0)
- rapid : Facultatif, si la valeur est vrais, le code attend la confirmation d’exécution de l'ampoule. (défaut True)
ampoules.set_color(color, [duration], [rapid])
Sources
- Linux Magazine France N°195 (juillet/août 2016) : Prenez le contrôle des objets connectés avec votre Raspberry Pi p.58
- https://github.com/mclarkk/lifxlan