Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Весело проводим время с индикатором точки доступа., UniFi Network
 
Привет, ребята,  
у меня дома стоят несколько UAP, и мне нравится, когда ночью светодиоды выключены. Раньше это отлично работало с версией 3 контроллера и соответствующими прошивками UAP (следовал этому туториалу: http://community.ubnt.com/t5/EdgeMAX-Stories/Home-Network/cnc-p/895884#M254). После обновления до версии 4.6 всё перестало работать, и я начал экспериментировать.

UAP имеет множество режимов мигания, обозначенных цифрами. Вот некоторые из них:  
0 – выкл.  
1 – тёмно-зелёный  
2 – оранжевый  
3 – светло-зелёный  
10 – мигание (тёмно-зелёный / выкл.)  
12 – мигание (тёмно-зелёный / оранжевый)  
13 – мигание (тёмно-зелёный / светло-зелёный)  
20 – мигание (оранжевый / выкл.)  
23 – мигание (светло-зелёный / оранжевый)  
30 – мигание (светло-зелёный / выкл.)  

Я уверен, что их гораздо больше. Части туториала я скопировал у @somgen. Огромное ему спасибо.

Первое, что нужно сделать – создать ssh-ключ, чтобы входить на устройства без запроса пароля. Ключ надо скопировать на каждый UAP, которым вы хотите управлять:  
ssh-keygen -t rsa  
cat ~/.ssh/id_rsa.pub | ssh <username>@<ip address> 'mkdir .ssh; cat >> .ssh/authorized_keys'  

Это скрипт, который нужно запускать. Можно указать список IP или имён хостов для управления или выбрать отдельную точку доступа. Не забудьте дать скрипту права на выполнение (+x) и задать USERNAME. Для параметра -s доступны значения "on", "off" или номер специального режима.

```bash
#!/bin/bash
# Unifi Hardware Username
USERNAME=username
iplist=()

usage() {
 echo "Usage: $0 [-i <ip address>] [-s <on|off|Number of Pattern>]" 1>&2
 exit 1
}

# Получаем список IP из файла iplist.cfg
getArray() {
 ip=0
 while read line; do
   iplist[ip]=$line
   ip=$((ip + 1))
 done < $1
}

while getopts ":i:s:b:" o; do
 case "${o}" in
   i)
     i=${OPTARG}
     ;;
   s)
     s=${OPTARG}
     ;;
   *)
     usage
     ;;
 esac
done
shift $((OPTIND-1))

if [ -z "${s}" ]; then
 usage
fi

led_SetPattern() {
 ssh $USERNAME@${i} "echo $pattern > /proc/gpio/led_pattern; exit";
}

# Получаем IP для дальнейшего управления
if [ ! -z "$i" ]; then
 iplist+=("$i")
else
 getArray "iplist.cfg"
fi

# Регулярное выражение для проверки, что $s – число
re='^[0-9]+$'

for i in "${iplist[@]}"; do
 if [ "$s" == "off" ]; then
   pattern=0
 elif [ "$s" == "on" ]; then
   pattern=1
 elif [[ $s =~ $re ]]; then
   pattern=$s
 else
   usage
 fi

 led_SetPattern $i $pattern
done
```

Создайте файл iplist.cfg и впишите туда IP-адреса ваших точек доступа, по одному на строку. Скрипт можно запускать по расписанию через cron.

//////  
Если хотите просто поиграться, можно подключиться по ssh напрямую к точке доступа и поменять режим:  
BZ.v3.2.7# echo 13 > /proc/gpio/led_pattern  (замените 13 на нужный номер паттерна)

Я тестировал только на стандартных UAP (версия 3.2.7.2816). Надеюсь, вы получите столько же удовольствия, играя с железом, сколько и я 😀
 
То, что я предлагал, предполагало бы добавить новый код в устройства, а также код в контроллер. То, что предлагаешь ты, скорее всего, будет дополнительной функцией контроллера — менять «световую схему» по расписанию.
 
Я использую последнюю версию прошивки (3.7.21.5389), и она просто работает. По ночам я выключаю светодиоды через domoticz, а утром они снова включаются. Единственная заморочка — когда у точек доступа обновляется прошивка, приходится заново загружать ключи.
 
Отлично подходит для ситуационной осведомлённости в больнице. Code Blue, Code Red, Code Grey...
 
Похоже, что это решение не работает с самым новым контроллером и точками доступа. Узоры работы светодиодов, заданные скриптом, проявляются на несколько секунд после выполнения, а потом возвращаются к исходным. Новый контроллер позволяет постоянно включать или выключать светодиоды на точках доступа. Но я бы хотел, чтобы светодиоды на точках доступа отключались только на ночь.
 
Это действительно выглядит весело. Но мне бы хотелось, чтобы индикаторы на устройстве тоже что-то значили. Вы заметили, что существует большое «меню» из цветов и шаблонов подсветки. Мне бы хотелось видеть возможность настроить «схему подсветки», которая определяет один из доступных вариантов цвета и шаблона для каждого отдельного состояния, в котором может находиться точка доступа. Сейчас уже есть *одна* такая схема. (Она всегда показывает синий свет для «нормальной работы».) Так можно было бы задать схему, в которой «выключено» — это значение для нормальной работы, а для остальных состояний оставались бы другие варианты. ideally ideally ideally ideally В идеале можно было бы создавать несколько схем (с названиями), потом выбирать одну из них по умолчанию для каждой беспроводной сети, а по желанию — назначать разные для отдельных точек доступа. Думаю, это могло бы касаться и других устройств, не являющихся AP. Похоже, что у старых точек доступа меню цветовых и шаблонных вариантов отличается, и это немного усложнит задачу, но обойти это можно. Такой подход позволил бы снизить нагрузку на настройку. Контроллер мог бы поставляться с набором предустановленных схем (как обои на компьютере), а другие схемы можно было бы делиться здесь.
 
Спасибо за ваше сообщение. Я только что установил свой новый Unifi UAP-AC-LR и поставил контроллер на Raspberry Pi 2 с Raspian Jessie. Так как Unifi установлен в проходе между спальнями, я бы хотел вечером отключать светодиод и включать его снова утром. Я новичок в Linux, поэтому кто-нибудь может подсказать, к какому имени пользователя и IP-адресу относится скрипт выше? Это данные Raspberry или самого UAP? И как мне скопировать ключ на UAP? Спасибо, Валерио.
 
Как раз то, что я искал!
Страницы: 1
Читают тему (гостей: 1)