Skip to content

thinking-home/noolite

Repository files navigation

ThinkingHome.NooLite NuGet Pre Release

Библиотека ThinkingHome.NooLite предоставляет API для управления устройствами nooLite (включая nooLite-F) на платформе .NET Core. Поддерживается работа с адаптером MTRF-64-USB. Поддерживаются операционные системы Windows, MacOS, Linux.

Установка

Package Manager

Install-Package ThinkingHome.NooLite -Version 4.0.0-rc-1

.NET CLI

dotnet add package ThinkingHome.NooLite --version 4.0.0-rc-1

Пример использования

using ThinkingHome.NooLite;

...

static void Main(string[] args)
{
    // параметр конструктора - имя COM порта адаптера
    // при использовании в Windows имя будет похоже на "COM4"
    using (var adapter = new MTRFXXAdapter("/dev/tty.usbserial-AL00HDFI"))
    {
        // добавляем действия при подключени к адаптеру и при отключении  
        adapter.Connect += AdapterOnConnect;
        adapter.Disconnect += AdapterOnDisconnect;

        // добавляем обработчики входящих команд
        adapter.ReceiveData += AdapterOnReceiveData;
        adapter.ReceiveMicroclimateData += AdapterOnReceiveMicroclimateData;
        
        // обработка ошибок
        adapter.Error += AdapterOnError;
    
        // открываем соединение
        adapter.Open();
    
        // досрочный выход из сервисного режима
        adapter.ExitServiceMode();
    
        // включение света в 13 канале (nooLite-F)
        adapter.OnF(13);
    }
}

private static void AdapterOnConnect(object obj)
{
    Console.WriteLine("connect");
}

private static void AdapterOnDisconnect(object obj)
{
    Console.WriteLine("disconnect");
}

private static void AdapterOnReceiveData(object obj, ReceivedData result)
{
    Console.WriteLine(result);
}

private static void AdapterOnReceiveMicroclimateData(object obj, ReceivedMicroclimateData result)
{
    Console.WriteLine($"temperature: {result.Temperature}, humidity: {result.Humidity}");
}

private static void AdapterOnError(object obj, Exception ex)
{
    Console.WriteLine(ex.Message);
}

API

Управление нагрузкой

Перечисленные ниже методы управляют нагрузкой в стандартном режиме nooLite (без шифрования и обратной связи). Для каждого метода доступен аналогичный метод с суффиксом F, который отправляет ту же команду в режиме nooLite-F.

Включить:

void On(byte channel)

Выключить:

void Off(byte channel)

Переключить в противоположное состояние:

void Switch(byte channel)

Включить на время (interval - промежуток времени в пятисекундных интервалах):

void TemporarySwitchOn(byte channel, UInt16 interval)

Установить уровень яркости:

void SetBrightness(byte channel, byte brightness)

Запомнить сценарий освещения:

void SavePreset(byte channel)

Применить сценарий освещения:

void LoadPreset(byte channel)

Установить цвет светодиодной RGB ленты:

void SetLedColor(byte channel, byte valueR, byte valueG, byte valueB)

Изменить цвет светодиодной RGB ленты на следующий:

void ChangeLedColor(byte channel)

Изменить режим светодиодной RGB ленты:

void ChangeLedColorMode(byte channel)

Изменить скорость смены цветов светодиодной RGB ленты:

void ChangeLedColorSpeed(byte channel)

Привязка и отвязка

Привязать силовой блок:

void Bind(byte channel)

Отвязать силовой блок:

void Unbind(byte channel)

Перейти в режим привязки для привязки передающего устройства (датчика или пульта):

void BindStart(byte channel)

Выйти из режима привязки:

void BindStop()

Очистить привязанные передающие устройства в заданном канале:

void ClearChannel(byte channel)

Очистить привязанные передающие устройства во всех каналах:

void ClearAllChannels()

Выйти из сервисного режима:

void ExitServiceMode()

About

.NET Core nooLite lighting control API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages