Biblioteca estándar de C# .NET para controlar las bombillas LIFX Smart LED sobre la nube
Este proyecto es una biblioteca de envoltura que contiene funcionalidades de la API LIFX oficial https://api.developer.lifx.com/reference/introduction
Cree una instancia de la clase LifxBulbs proporcionando el Tokenapikey y el nombre de la etiqueta de la bombilla LED como parámetros.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//synchronous
bedroom . LightToggle ( 3 ) ; //toggle with 3 seconds duration
//async
await bedroom . LightToggleAsync ( 3 ) ; //async toggle with 3 seconds durationNo es obligatorio especificar un nombre de etiqueta en el constructor de clase cuando se usa los métodos SWEEPTOGGLE. Estos métodos ejecutarán una operación general de alternativa en todos los dispositivos conectados.
using LifxLibrary ;
LifxBulbs devices = new LifxBulbs ( "tokenKey" ) ;
//synchronous
devices . SweepToggle ( ) ;
//async
await devices . SweepToggleAsync ( ) ; Los métodos PutPower le permiten cambiar el estado de las bombillas, configurarlas on o off y proporcionar un parámetro de tiempo de duración opcional que varía de 0 a 100 segundos.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//synchronous
bedroom . PutPower ( "on" ) ;
bedroom . PutPower ( "off" ) ;
bedroom . PutPower ( "on" , 5 ) ; //with 5 seconds duration time
//async
await bedroom . PutPowerAsync ( "off" ) ; Los métodos PutBrightness toman un parámetro entero que varía de 0 a 100 para establecer la intensidad del brillo.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//synchronous
bedroom . PutBrightness ( 50 ) ; //set the brightness at 50%
//async
await bedroom . PutBrightnessAsync ( 50 ) ; Los métodos PutColor pueden recibir una serie de valores de cadena como parámetro para definir el color, el brillo, la saturación y otros atributos.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//hexadecimal
bedroom . PutColor ( "#0000FF" ) ; //blue color
//RGB
bedroom . PutColor ( "rgb:255,0,0" ) ; //red color
//plain text
bedroom . PutColor ( "white" ) ; //white color
//async
await bedroom . PutColorAsync ( "hue:120 saturation:1.0 brightness:0.5" ) ; //Deep green 50% brightnessPara obtener una guía más detallada sobre la definición de colores, visite la documentación oficial de la API LIFX en https://api.developer.lifx.com/reference/colors.
Los métodos de usos múltiples aceptan un conjunto de parámetros opcionales para llevar a cabo diversas acciones en las bombillas LED, como cambiar el color , brightness , power , duration time y la activación fast mode .
El modo rápido ejecuta la consulta rápidamente, sin verificaciones de estado iniciales y no espere resultados.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//synchronous
bedroom . MultiUse ( "on" , "blue" , 50 , 6 , true ) ; //power on, color blue, 50% brightness, 6 seconds duration with fast mode activated
//other ways to use it
bedroom . MultiUse ( power : "on" , color : "blue" , brightness : 100 , duration : 6 , fast : true ) ;
//duration time is 0 by default and fast mode is false by default
bedroom . MultiUse ( power : "on" , color : "white" , brightness : 80 ) ;
//async
await bedroom . MultiUseAsync ( "off" ) ;
await bedroom . MultiUseAsync ( "on" , "orange" ) ; La clase de LightSearcher es una clase estática que contiene métodos de asíncrono estáticos que ayudan a descubrir las bombillas LED y recuperar sus propiedades, como LED bulb name , power status , connection status , brightness level , saturation level y más.
El método ShowConnectedDevicesAsync devuelve una lista de objeto String con los nombres de etiquetas de todos los dispositivos conectados.
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
var devices = await LightSearcher . ShowConnectedDevicesAsync ( ) ;
foreach ( var device in devices )
{
Console . WriteLine ( device ) ;
} El método GetNamesAsync devuelve una lista de objeto String con los nombres de etiquetas de todos los dispositivos vinculados a su cuenta, independientemente del estado de su conexión o el estado de potencia.
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
var devices = await LightSearcher . GetNamesAsync ( ) ;
foreach ( var device in devices )
{
Console . WriteLine ( device ) ;
} El método ShowStateAsync devuelve un objeto BulbState con el power status , connection status , LED label name , brightness level , saturation level , UUID , ID y nivel HUE .
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
BulbState bedroom = await LightSearcher . ShowStateAsync ( "Bedroom" ) ;
Console . WriteLine ( bedroom . Power ) ; //the response would be off or on
Console . WriteLine ( bedroom . Connected ) ; //the response would be true or false
Console . WriteLine ( bedroom . Brightness ) ; //brightness level
Console . WriteLine ( bedroom . Saturation ) ; //saturation level
Console . WriteLine ( bedroom . Id ) ; //bulb ID La clase LightGroup contiene métodos para controlar un conjunto de bombillas LED que pertenecen a un grupo específico.
Métodos asíncronos y síncronos disponibles en la clase LightGroup .
Toggle methods Brightness methods Color methods MultiUse methods
using LifxLibrary ;
LightGroup bulbs = new LightGroup ( "tokenKey" , "Kitchen" ) ; //tokenKey and group name
bulbs . SweepToggle ( ) ;
await bulbs . PutColorAsync ( "blue" ) ;