Библиотека 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);
}
Перечисленные ниже методы управляют нагрузкой в стандартном режиме 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