C# .NET Biblioteca padrão para controlar as lâmpadas LED Smart LIFX sobre a nuvem
Este projeto é uma biblioteca de wrapper que contém funcionalidades da API OFICIAL API https://api.developer.lifx.com/reference/introduction
Crie uma instância da classe LifxBulbs , fornecendo o TokenApikey e o nome da etiqueta da lâmpada 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 durationNão é obrigatório especificar um nome de etiqueta no construtor de classe ao usar os métodos Sweeptoggle. Esses métodos executarão uma operação geral de alternância em todos os dispositivos conectados.
using LifxLibrary ;
LifxBulbs devices = new LifxBulbs ( "tokenKey" ) ;
//synchronous
devices . SweepToggle ( ) ;
//async
await devices . SweepToggleAsync ( ) ; Os métodos PutPower permitem alterar o estado das lâmpadas, configurando -as para on ou off e fornecendo um parâmetro de tempo de duração opcional que varia 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" ) ; Os métodos de PutBrightness levam um parâmetro inteiro que varia de 0 a 100 para definir a intensidade do brilho.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//synchronous
bedroom . PutBrightness ( 50 ) ; //set the brightness at 50%
//async
await bedroom . PutBrightnessAsync ( 50 ) ; Os métodos PutColor podem receber uma série de valores de string como parâmetro para definir a cor, brilho, saturação e outros 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 um guia mais detalhado sobre como definir cores, visite a documentação oficial da API LIFX em https://api.developer.lifx.com/reference/colors.
Os métodos de multiuso aceitam um conjunto de parâmetros opcionais para realizar diversas ações nas lâmpadas LED, como alterar a color , brightness , power , duration time e a ativação fast mode .
O modo rápido executa a consulta rapidamente, sem verificações iniciais do estado e aguarda nenhum resultado.
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" ) ; A classe LightSearcher é uma classe estática que contém métodos assíncronos estáticos que ajudam a descobrir as lâmpadas LED e recuperar suas propriedades, como LED bulb name , power status , connection status , brightness level , saturation level e muito mais.
O método ShowConnectedDevicesAsync retorna uma lista de objeto String com os nomes dos rótulos de todos os dispositivos conectados.
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
var devices = await LightSearcher . ShowConnectedDevicesAsync ( ) ;
foreach ( var device in devices )
{
Console . WriteLine ( device ) ;
} O método GetNamesAsync retorna uma lista de objeto String com os nomes dos rótulos de todos os dispositivos vinculados à sua conta, independentemente do status de conexão ou status de energia.
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
var devices = await LightSearcher . GetNamesAsync ( ) ;
foreach ( var device in devices )
{
Console . WriteLine ( device ) ;
} O método ShowStateAsync retorna um objeto BulbState com o power status , connection status , LED label name , brightness level , saturation level , UUID , ID e o nível 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 A classe LightGroup contém métodos para controlar um conjunto de lâmpadas LED que pertencem a um grupo específico.
Métodos assíncronos e síncronos disponíveis na classe 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" ) ;