Привет! Ищу способ включать или отключать определённую беспроводную сеть (либо через контроллер, либо на каждом Access Point по отдельности, мне без разницы), используя API или каким-то другим внешним методом. Есть ли возможность сделать это, желательно с помощью bash-скрипта (у меня уже есть другие задачи на bash, но могу использовать и php-скрипт или что-то ещё). Спасибо!
jcconnell
Guest
28.07.2018 22:11:00
Я внёс некоторые изменения в вышеупомянутый пост. Скрипт обновлён, чтобы его было проще настраивать, и добавлены инструкции, которые должны помочь другим пользователям. Надеюсь, кому-то это пригодится!
jcconnell
Guest
26.07.2018 15:08:00
Да! Спасибо, что заметили это. Я исправил скрипт.
LetsTryThis
Guest
26.07.2018 15:04:00
Спасибо, наверное, вторая функция «enable_guest» на самом деле должна называться «disable_guest», да?
jcconnell
Guest
25.07.2018 22:48:00
Последнее обновление: 28.07.18 Я написал bash-скрипт для включения, отключения или проверки статуса WiFi сети UniFi. Я буду обновлять этот gist по мере внесения изменений:
Требования: - jq - curl
Настройки пользователя: - unifi_username: имя пользователя для контроллера - unifi_password: пароль пользователя. Оставьте в одинарных кавычках. - unifi_controller: URL-адрес, по которому вы заходите на контроллер - wifi_id: ID WiFi-сети, которой вы хотите управлять. Как получить ID описано ниже - cookie: путь к cookie для curl. Убедитесь, что пользователь, запускающий скрипт, имеет права на этот каталог/файл
Инструкция: - Скрипт запускается с одним из параметров (enable | disable | status): ./unifi_wifi.sh parameter
Как получить wifi_id: - Зайдите в контроллер и авторизуйтесь - Перейдите в Settings > Wifi Networks - Нажмите Edit рядом с нужным SSID - Скопируйте ID из конца URL - В следующем примере ID — (000d00c0e0b0e00d00000000):
Использование: - Создайте новый файл на вашей машине. Я назвал его unifi_wifi.sh - Скопируйте в него содержимое ниже - Сохраните файл - Выполните chmod +x unifi_wifi.sh (вставьте имя вашего файла) - Запускайте ./unifi_wifi.sh
unifi_logout() { # выход из системы ${curl_cmd} $unifi_controller/logout }
enable_wifi() { # включение гостевой WiFi сети # Подавляем вывод ${curl_cmd} "$unifi_controller"'\/api/s/default/rest/wlanconf/'"$wifi_id" -X PUT --data-binary '{"_id":"'"$site_id"'","enabled":true}' --compressed > /dev/null }
disable_wifi() { # отключение гостевой WiFi сети # Подавляем вывод ${curl_cmd} "$unifi_controller"'\/api/s/default/rest/wlanconf/'"$wifi_id" -X PUT --data-binary '{"_id":"'"$site_id"'","enabled":false}' --compressed > /dev/null }
check_status() { # проверка статуса WiFi сети # Подавляем вывод response=$(${curl_cmd} "$unifi_controller"'\/api/s/default/rest/wlanconf/'"$wifi_id" --compressed) status=$(echo $response | jq '.data[0].enabled') if [ "$status" == "true" ]; then exit 0 elif [ "$status" == "false" ]; then exit 1 else echo exit -1 fi }
unifi_login
if [ "$1" == "enable" ]; then echo "Включаю WiFi." enable_wifi elif [ "$1" == "disable" ]; then echo "Отключаю WiFi." disable_wifi elif [ "$1" == "status" ]; then check_status else echo "Нужно указать параметр командной строки [enable|disable|status]." fi
unifi_logout
LetsTryThis
Guest
25.07.2018 15:24:00
Да, используя API, можно сделать такой скрипт, который здесь работает. Я тут выложил свою версию скрипта для выключения SSID. Чтобы включить его, понятно, надо установить "enabled" в "true", а не в "false". Можно еще улучшить скрипт, чтобы он принимал параметры из командной строки для статуса, SSID и так далее.
jcconnell
Guest
25.07.2018 14:17:00
Я хочу написать скрипт, который можно запускать из командной строки для включения и отключения гостевой Wi-Fi сети. Цель — запускать этот скрипт через Home Assistant. Кто-нибудь уже двигался в этом направлении?
helonaut
Guest
12.11.2017 08:43:00
Если цель этого — отключать гостевую сеть (SSID с каптив-порталом) на праздники, я уже отправлял запрос на такую встроенную функцию. Это должен быть список исключений для еженедельного расписания, которое уже есть. Извините, если это не то, что вам нужно.