Skip to content

thinking-home/noolite

Repository files navigation

ThinkingHome.NooLite

Build & Tests NuGet Pre Release

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

Установка

dotnet add package ThinkingHome.NooLite --version 4.1.0

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

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()

Интерфейс командной строки

Кроме пакета ThinkingHome.NooLite, предоставляющего API для управления нагрузкой с помощью адаптера nooLite, доступна утилита ThinkingHome.NooLite.Console, которая предоставляет те же самые возможности для управления с помощью интерфейса командной строки.

Установка

$ dotnet tool update --global ThinkingHome.NooLite.Console

Использование

Вывести список портов на компьютере

$ noolite ports

Список доступных команд

$ noolite --help

Описание и список параметров конкретной команды

# noolite [command] --help

$ noolite set-brightness --help

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

Включить нагрузку в канале 13 адаптера, подключенного к порту /dev/tty.usbserial-AL00HDFI в режиме noolite-F

$ noolite on /dev/tty.usbserial-AL00HDFI 13 -f

About

.NET Core nooLite lighting control API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages