C# .NET Стандартная библиотека для управления LIFX SMART LED светодиодными лампами над облаком
Этот проект представляет собой библиотеку обертки, которая содержит функции из официального API LIFX https://api.developer.lifx.com/reference/introduction
Создайте экземпляр из класса LifxBulbs , предоставляя Tokenapikey и название метки светодиодной лампы в качестве параметров.
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 durationНе обязательно указывать имя метки в конструкторе класса при использовании методов SweepToggle. Эти методы выполнят общую операцию переключения на всех подключенных устройствах.
using LifxLibrary ;
LifxBulbs devices = new LifxBulbs ( "tokenKey" ) ;
//synchronous
devices . SweepToggle ( ) ;
//async
await devices . SweepToggleAsync ( ) ; Методы PutPower позволяют вам изменить состояние луковиц, устанавливая их on или off , и предоставляя необязательный параметр времени продолжительности в диапазоне от 0 до 100 секунд.
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" ) ; Методы PutBrightness принимают целочисленный параметр в диапазоне от 0 до 100 , чтобы установить интенсивность яркости.
using LifxLibrary ;
LifxBulbs bedroom = new LifxBulbs ( "tokenKey" , "Bedroom" ) ;
//synchronous
bedroom . PutBrightness ( 50 ) ; //set the brightness at 50%
//async
await bedroom . PutBrightnessAsync ( 50 ) ; Методы PutColor могут получать серию строковых значений в качестве параметра для определения цвета, яркости, насыщения и других атрибутов.
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% brightnessДля более подробного руководства по определению цветов, пожалуйста, посетите официальную документацию API LIFX по адресу https://api.developer.lifx.com/reference/colors.
Методы многоцелевых методов принимают набор дополнительных параметров для выполнения разнообразных действий на светодиодных луковицах, таких как изменение color , brightness , power , duration time и активации fast mode .
Режим быстрого режима быстро выполняет запрос, без начальных проверок состояния и не ждет никаких результатов.
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" ) ; Класс LightSearcher - это статический класс, который содержит статические асинхронные методы, которые помогают обнаружить светодиодные лампы и получить их свойства, такие как LED bulb name , power status , connection status , brightness level , saturation level и многое другое.
Метод ShowConnectedDevicesAsync возвращает список объекта строки с именами метки всех подключенных устройств.
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
var devices = await LightSearcher . ShowConnectedDevicesAsync ( ) ;
foreach ( var device in devices )
{
Console . WriteLine ( device ) ;
} Метод GetNamesAsync возвращает список строкового объекта с именами метки всех устройств, связанных с вашей учетной записью, независимо от статуса их соединения или состояния мощности.
using LifxLibrary ;
//set the tokenkey
LightSearcher . SetTokenKey ( "tokenkey" ) ;
var devices = await LightSearcher . GetNamesAsync ( ) ;
foreach ( var device in devices )
{
Console . WriteLine ( device ) ;
} Метод ShowStateAsync возвращает объект BulbState с power status , connection status , LED label name , brightness level , saturation level , UUID , ID и уровнем 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 Класс LightGroup содержит методы управления набором светодиодных ламп, которые принадлежат определенной группе.
Асинхронные и синхронные методы, доступные в классе LightGroup .
MultiUse methods Toggle methods Color methods Brightness methods
using LifxLibrary ;
LightGroup bulbs = new LightGroup ( "tokenKey" , "Kitchen" ) ; //tokenKey and group name
bulbs . SweepToggle ( ) ;
await bulbs . PutColorAsync ( "blue" ) ;