.NET Core nooLite lighting control API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

ThinkingHome.NooLite

Travis AppVeyor 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, MicroclimateData 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 SwitchColorChanging(byte channel)

Изменить цвет светодиодной 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()