Main

USB-приёмник nooLight

О системе nooLight

USB-приёмник является логическим продолжением развития линейки бюджетной домашней автоматики от компании НооТехника. Основное предназначение устройства -- реализовать возможность реакции компьютера на отправку команд с радио-пультов (а в перспективе и датчиков) семейства nooLight. Компания любезно предоставила мне опытный образец, который вот-вот должен пойти в серию, но тем не менее, возможны какие-то технические накладки. Заранее скажу, что по устройству никаких проблем обнаружить не удалось, хотя по ПО есть несколько не критичных замечаний. Но обо всём по порядку...

Внешне приёмник ничем не отличается от передатчика (кроме маркировки), поэтому приведу ту же картинку:

На уровне системы устройство определяется как HID-device, так что установка дополнительных драйверов не требуется, но необходимо установить фирменное ПО для организации реакции системы на команды. С программой идёт подробная инструкция, так что никаких проблем с настройкой не возникает. Ниже я опишу базовый алгоритм интеграции приёмника с нашей любимой MajorDoMo.

Главное окно программы:

В основном, вся работа происходит в этом окне. В левой части находится список ячеек, которые соответствуют привязанным пультам, а в правой расположены настройки конкретной ячейки. Для работы с пультом, необходимо его сначало привязать через кнопку Привязка. В теории, без привязки можно было бы и обойтись, слушая сигналы со всех пультов, но это вопрос безопасности -- не хотите же вы, чтобы сосед по площадке "слушал" сигналы от ваших пультов и датчиков. Процедура привязки описана в инструкции к программе, так что на ней подробно останавливаться не будем.

После привязки можно видеть, как программа "слышит" команды от пульта -- в окне отображаются все принятые команды, так что понажимав на кнопки можно легко определить к каким командам необходимо назначать свои действия. Так же можно посмотреть передаваемые данные, включив лог-файл в настройках программы.

Следующий важный шаг, собственно, установка реакции на команду. Можно выбрать галочку "Любая команда" и тогда будет задана одна реакция на любую команду с пульта, но можно в выпадающем списке выбрать конкретную команду и задать на неё своё действие. Для одной ячейки можно задать различные действия на различные команды.

Проверям -- нажимаем кнопку на пульте, запускается выбранный файл. При этом можно указать, чтобы при вызове файла в качестве параметров командной строки передавалась служебная информация, такая как название команды или сопутствующие данные. Последнее, видимо, сделано на будущее для работы с датчиками. Так же это может пригодиться, если выбран режим "одно действие на все команды" -- можно вызывать один обработчик и уже им реализовать логику поведения в зависимости от команды и данных.

В этом месте у меня появилось первое замечание -- почему-то не получилось организовать вызов bat-файла с моими параметрами командной строки, пришлось делать промежуточный bat-файл с вызовом далее того, что мне нужно. Но это, я думаю, будет исправлено в "релизной" версии. Второе замечание к программе в том, что если вынуть приёмник из USB-разъёма, то программа закрывается и затем необходимо её вручную запускать заново. В остальном, всё работает как часы.

Далее рассмотрим вариант использования программы совместно с MajorDoMo.

Возьмём объект системы, который поддерживает включение-выключение. В моём случае я взял тот же nooLight-модуль, управляемый передатчиком, но по аналогии можно задействовать любой объект или сценарий.

Наша задача -- вызывать метод noo2.switch по нажатию на кнопку пульта. MajorDoMo может управляться через командную строку, так что команда для вызова метода будет такой:

C:\_majordomo\htdocs\obj.bat noo2.switch

Создадим bat-файл с этой строчкой и сохраним его на диске (о необходимости в промежуточном файле я писал выше).

Берём пульт и привязываем его к ячейке. Пульт подходит любой из линейки nooLight, так что я взял тот, что у меня был под рукой.

Привязываем созданный выше bat-файл к команде SWITCH, сохраняем изменения в ячейке и всё! :)

Теперь у нас есть пульт, который не просто включает свет, но делает это через нашу общую систему, исключая ситуацию, когда, к примеру, свет был включен с пульта, но в системе светильник остался в статусе "выключено". Ну и повторюсь, теперь можно использовать эти симпатичные по дизайну пульты для совершенно различных действий -- открывать гаражные ворота, ставить любимую музыку, переводить дом в экономичный режим и многое другое.

P.S. Небольшое дополнение -- выше описан способ управления системой через командную строку, но он хоть и достаточно надёжный, но довольно медленный. Это связано с тем, что происходит запуск интерпретатора PHP со всеми модулями, что само по себе не очень быстро. Альтернативный способ это вызов метода через отправку http-запроса к уже работающему серверу. В описанном случае необходимо выполнить вот такой запрос:

http://192.168.0.17/objects/?object=noo2&op=m&m=switch

(вместо 192.168.0.17 должен быть адрес вашего сервера)

В Linux для этого было бы достаточно запуска из командной строки

wget http://192.168.0.17/objects/?object=noo2&op=m&m=switch

Но Windows, к сожалению, не имеет встроенной аналогичной функции. Есть выход -- можно скачать программу cURL для Windows (по этой ссылке -- достаточно версии без SSL), распаковать её и запускать аналогичным образом:

c:\_majordomo\apps\curl.exe "http://192.168.0.17/objects/?object=noo2&op=m&m=switch"

Теперь просто заменяем в нашем созданном bat-файле способ вызова метода и видим явное ускорение реакции на нажатие кнопки на пульте.