Jump to content

Управляем устройствами NooLite с роутера Zyxel Keenetic


Recommended Posts

Статья с Хабра. Опубликовал пользователь @CodeName33

 

"...В этой статье я расскажу о том, как управлять устройствами nooLite через USB переходник РС1ххх прямо из проутера Zyxel Keenetic — без участия компьютера.

Преамбула


Темы про NooLite уже не раз тут мелькали, но, на всякий случай напомню, что это компоненты для построения «умного дома», общающиеся между собой посредством радиоканала. А ещё к их системе можно заказать USB адаптер, позволяющий отправлять команды с компьютера (на самом деле есть и тот, который может эти команды получать, но мы сейчас его рассматривать не будем). Когда-то давно я специально поднимал у себя на машине Web-сервер, на который можно было зайти с компьютера или телефона в домашней сети и управлять освещением, а также добавлять запланированные задачи. Например — я, как истинный сова, с трудом просыпаюсь рано утром, и даже с удовольствием не делал бы этого, но надо. И пробуждаться в темноте от звука будильника, было крайне тяжело, даже если поставить на него самую милую мелодию, из всех милых мелодий на земле. И я решил провести эксперимент, написав скрипт для плавного включения света, когда яркость увеличивается с 0 до 100% за 20 минут, тем самым имитируя восход солнца, и эксперимент удался — просыпаться стало значительно легче, когда свет не резко бьёт по глазам, а едва заметно нарастает, и организм реагирует на подобное пробуждение намного лучше будильника… Но что-то я ушёл от темы. Все это работало себе спокойно, и впрочем меня даже не напрягало то, что требуется постоянно включенный компьютер, у меня стоят тихие вентиляторы и его практически не слышно, но не так давно узнав, что на Zyxel Keenetic с прошивкой второй версии снова можно ставить пакеты OpenWRT у меня в голове начала созревать идея. И когда эта идея совсем меня допекла, никак не желая оставить в покое мой мозг, я решился — а, черт с ним! Впереди выходные, и я сделаю это!

Повестка дня


Итак, что же я собственно сделал? Сделал я следующее:

— Веб-интерфейс управления светом и нагрузками прямо в роутере Zyxel Keenetic.
— Команды отправляются непосредственно с роутера, через USB передатчик NooLite (РС1ххх) воткнутый в USB порт роутера.
— В веб-интерфейсе можно настраивать запланированные задачи для cron для управления светом.
— Консольная утилита, позволяющая отправлять команды непосредственно из командной строки роутера (под SSH) и если мой веб-интерфейс пришёлся не по вкусу, можно написать свой или встроить её вызов откуда угодно.

Shut up and take my money
Итак, что нам потребуется для настройки. Для начала подготовим роутер, делается это просто и достаточно подробно расписано тут. Дальше нам потребуется доустановить несколько пакетов, посему выполняем следующее:
 
opkg update
opkg install php5-cgi lighttpd-mod-fastcgi cron 

Эта команда устанавливает Веб-сервер, PHP, и cron для планирования задач. Я бы ещё Midnight Commander поставил, ибо удобнее:
opkg install mc

Дальше редактируем настройки Web-сервера: /opt/etc/lighttpd/lighttpd.conf указав верный порт:
server.port = 82

80-й порт уже занять Web-интерфейсом роутера, поэтому выбираем другой.
Затем редактируем файл:/opt/etc/lighttpd/conf.d/30-fastcgi.conf, сделав так:

fastcgi.server = ( ".php" =>
( "php-local" =>
(
"socket" => "/opt/tmp/php-fastcgi-1.socket",
"bin-path" => "/opt/bin/php-fcgi",
"max-procs" => 1,
"broken-scriptfilename" => "enable",
)
),
# .....
# .....
)



Вот и все, а теперь запускаем сервер:
 
lighttpd -f /opt/etc/lighttpd/lighttpd.conf 


На этом подготовка закончена, и можно приступать к самому главному. Качаем этот архив. В нем находится программа, пару либов, и php файлы. Из папки binaries закидываем бинарники на флешку роутера, bin в bin, lib в lib, share в share. По идее он не должен предлагать что-то заменять, но если предложит — отказываемся, ибо тут надо разбираться. Если вы мне не доверяется, то в архиве в папке source лежит исходник утилиты для отправки команд NooLite, можете собрать его сами. Как это сделать — тема отдельная, здесь расписывать не буду, информации по этому поводу в сети много. Итак, если все файлы закинуты по своим местам, можно проверить работоспособность всего этого чуда. Идём в браузер и вводим IP адрес роутера и порт, который был вами указан в настройке веб-сервера.
http://192.168.1.1:82/

Тут мы должны увидеть страницу с управление освещением. Но не вашим, а моим. Для того, чтобы сделать свои настройки, вам понадобиться отредактировать файл: /opt/share/www/config.php
 
Я специально продокументировал его комментариями, думаю проблем с его редактированием не возникнет. После того как, вы настроите все под свою конфигурацию — можно начинать пользоваться. Веб-интерфейс сделан больше под мобильные устройства, но на десктопе тоже можно вполне пользоваться. Отдельное внимание обращаю на то, что создавать, включать, выключать и удалять задания для cron, можно прямо из браузера, при изменениях cron будет перезапущен и вам не надо ни о чем думать. Если же вы хотите пользоваться консольной утилитой, то просто наберите в SSH команду:
noolite

Вам выведется список параметров, тут тоже ничего сложного.
 
Я проверял это на Zyxel Keenetic Giga II, у него 2 USB порта, но насколько я знаю, на роутерах с одним USB портом, можно использовать хаб. Я решил это проверить и у меня через хаб заработало..."

 

  • Thanks 3
Link to comment
Share on other sites

  • 11 months later...

Хотелось бы прикрутить к Apple Home.  Есть такое Homebridge   Это программный продукт, написанный на node.js, позволяющий предоставлять яблочной технике информацию об устройствах, для которых есть плагин и заданы параметры взаимодействия. Я уже 3-й день боюсь но никак не могу рже запустить Homebridge. Может кто нибудь такое делал? 

Link to comment
Share on other sites

  • 1 year later...
В 21.07.2017 в 07:35, DroWez сказал:

Может кто нибудь такое делал? 

Смог поднять Homebridge, собрав пакеты node-homebridge и node-hap-nodejs из openwrt-node-packages, только нужно предварительно их отредактировать и заменить везде /usr/ на /opt/usr/.

Единственное мой Viva не смог пройти pair стадию, так как выходит за рамки timeout (слишком слабый + Homebridge плохо оптимизирован), поэтому поднял Homebridge на компьютере, сделал pair и потом перенес все данные с компьютера на роутер.

Edited by sc0rp1d
Link to comment
Share on other sites

  • 8 months later...
On 1/12/2019 at 12:12 PM, sc0rp1d said:

Смог поднять Homebridge, собрав пакеты node-homebridge и node-hap-nodejs из openwrt-node-packages, только нужно предварительно их отредактировать и заменить везде /usr/ на /opt/usr/.

Единственное мой Viva не смог пройти pair стадию, так как выходит за рамки timeout (слишком слабый + Homebridge плохо оптимизирован), поэтому поднял Homebridge на компьютере, сделал pair и потом перенес все данные с компьютера на роутер.

Поделитесь инструкцией?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...