« Controler une amploule Lifx via python » : différence entre les versions
Aucun résumé des modifications |
(Changement des balises code pour syntaxhighlight) |
||
(15 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 | |||
==Via Github== | ==Via Github== | ||
Ligne 17 : | 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 | |||
==Via nos fichiers== | ==Via nos fichiers== | ||
Ligne 24 : | 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 | |||
=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 | |||
=Utilisation de l'API= | =Utilisation de l'API= | ||
Ligne 37 : | Ligne 36 : | ||
Dans notre script python, il faut importer le module lifxlan: | Dans notre script python, il faut importer le module lifxlan: | ||
<syntaxhighlight lang="python"> | |||
from lifxlan import * | from lifxlan import * | ||
</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". | ||
<syntaxhighlight lang="python"> | |||
ampouleSalon = Light("12:34:56:78:9a:bc", "192.168.1.42") | |||
</syntaxhighlight> | |||
Pour sélectionner toutes les ampoules : | Pour sélectionner toutes les ampoules : | ||
<syntaxhighlight lang="python"> | |||
lan = LifxLAN() | |||
ampoules = lan.get_lights() | |||
</syntaxhighlight> | |||
N'oublier pas de faire une boucle pour les traiter individuellement : | N'oublier pas de faire une boucle pour les traiter individuellement : | ||
< | <syntaxhighlight lang="python"> | ||
for ampoule in ampoules: | |||
#traitement | |||
</ | </syntaxhighlight> | ||
==Get== | ==Get== | ||
Ligne 62 : | Ligne 67 : | ||
Permet de savoir si la lumière est allumé ou éteinte. | Permet de savoir si la lumière est allumé ou éteinte. | ||
<syntaxhighlight lang="python"> | |||
etatLum = ampoules.get_power() | |||
</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. | ||
<syntaxhighlight lang="python"> | |||
couleurLum = ampoules.get_color() | |||
</syntaxhighlight> | |||
==Set== | ==Set== | ||
Ligne 81 : | 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) | ||
<syntaxhighlight lang="python"> | |||
ampoules.set_power(power, [duration], [rapid]) | |||
</syntaxhighlight> | |||
===Color=== | ===Color=== | ||
Ligne 92 : | 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) | ||
<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 à 10: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])