« Controler une amploule Lifx via python » : différence entre les versions

De Wiki doc

(Changement des balises code pour syntaxhighlight)
 
(11 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
[http://www.lifx.com/ 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.
[[Category:domotique]]
[http://www.lifx.com/ 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, <del>mais il n'est pas obligatoire</del> 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.
Lifx nous propose une API python disponible sur Github. Nous allons voir comment l'API fonctionne.
Ligne 8 : Ligne 9 :
Il faut avoir installé l'utilitaire pip (python-pip).
Il faut avoir installé l'utilitaire pip (python-pip).


  $ pip install lifxlan
  pip install lifxlan


==Via Github==
==Via Github==
Ligne 15 : Ligne 16 :
Télécharger les fichiers (via zip ou git). Installer le module:
Télécharger les fichiers (via zip ou git). Installer le module:


  $ python setup.py install
  python setup.py install


==Via nos fichiers==
==Via nos fichiers==
Ligne 22 : Ligne 23 :
Décompressé le tar et installer le module:
Décompressé le tar et installer le module:


  $ tar zxvf lifxlan-0.2.3.tar.gz && python lifxlan-master/setup.py install
  tar zxvf lifxlan-0.2.3.tar.gz && python lifxlan-master/setup.py install


=Hello World=
=Hello World=
Pour contrôler le bon fonctionnement du module, dans le [https://github.com/mclarkk/lifxlan/blob/master/examples/hello_world.py 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:
Pour contrôler le bon fonctionnement du module, dans le [https://github.com/mclarkk/lifxlan/blob/master/examples/hello_world.py 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
  python hello_world.py


=Utilisation de l'API=
=Utilisation de l'API=
Ligne 35 : Ligne 36 :
Dans notre script python, il faut importer le module lifxlan:
Dans notre script python, il faut importer le module lifxlan:


<source lang="python">
<syntaxhighlight lang="python">
  from lifxlan import *
  from lifxlan import *
</source>
</syntaxhighlight>


==Sélectionner l'ampoule==
==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".
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".


<source lang="python">
<syntaxhighlight lang="python">
ampouleSalon = Light("12:34:56:78:9a:bc", "192.168.1.42")
ampouleSalon = Light("12:34:56:78:9a:bc", "192.168.1.42")
</source>
</syntaxhighlight>


Pour sélectionner toutes les ampoules :
Pour sélectionner toutes les ampoules :


<source lang="python">
<syntaxhighlight lang="python">
lan = LifxLAN()
lan = LifxLAN()
ampoules = lan.get_lights()
ampoules = lan.get_lights()
</source>
</syntaxhighlight>


N'oublier pas de faire une boucle pour les traiter individuellement :
N'oublier pas de faire une boucle pour les traiter individuellement :


<source lang="python">
<syntaxhighlight lang="python">
for ampoule in ampoules:
for ampoule in ampoules:
     #traitement
     #traitement
</source>
</syntaxhighlight>


==Get==
==Get==
Ligne 66 : Ligne 67 :
Permet de savoir si la lumière est allumé ou éteinte.
Permet de savoir si la lumière est allumé ou éteinte.


<source lang="python">
<syntaxhighlight lang="python">
etatLum=ampoules.get_power()
etatLum = ampoules.get_power()
</source>
</syntaxhighlight>


===Color===
===Color===
Permet de savoir quelle est la couleur attribué a l'ampoule.
Permet de savoir quelle est la couleur attribué a l'ampoule.


<source lang="python">
<syntaxhighlight lang="python">
couleurLum=ampoules.get_color()
couleurLum = ampoules.get_color()
</source>
</syntaxhighlight>


==Set==
==Set==
Ligne 89 : Ligne 90 :
*rapid : Facultatif, si la valeur est vrais, le code attend la confirmation d’exécution de l'ampoule. (défaut True)
*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])
<syntaxhighlight lang="python">
ampoules.set_power(power, [duration], [rapid])
</syntaxhighlight>


===Color===
===Color===
Ligne 100 : Ligne 103 :
*rapid : Facultatif, si la valeur est vrais, le code attend la confirmation d’exécution de l'ampoule. (défaut True)
*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])
<syntaxhighlight lang="python">
ampoules.set_color(color, [duration], [rapid])
</syntaxhighlight>


=Sources=
=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://boutique.ed-diamond.com/anciens-numeros/1059-gnulinux-magazine-195.html?search_query=195&results=5 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
*https://github.com/mclarkk/lifxlan

Dernière version du 27 février 2022 à 11:59

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