Aller à : navigation, rechercher

Controler une amploule Lifx via python


Lifx est une ampoule connectée. 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 malheureusement, nous n'avons plus le choix sur nos smartphones.

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