Страница 3 из 7

Re: [Модуль] Keenetic (keenetic)

Добавлено: Чт апр 08, 2021 9:01 pm
SmoKE_xDDD
AndreyAA писал(а):
Чт апр 08, 2021 6:35 pm
Добрый день.
А есть возможность перезагрузки интернет центра в определенное время?
Я же в коннекте писал https://connect.smartliving.ru/profile/ ... og409.html

Re: [Модуль] Keenetic (keenetic)

Добавлено: Вт апр 20, 2021 6:25 am
V.A.S.t
AndreyAA писал(а):
Чт апр 08, 2021 6:35 pm
Добрый день.
А есть возможность перезагрузки интернет центра в определенное время?
Указанный выше способ на новых прошивках работать не будет.

Чтоб перезагрузить роутер по времени нужно создать сценарий со следующим кодом (при установлeнном модуле Keenetic):

Код: Выделить всё

include_once(DIR_MODULES . "keenetic/keenetic.class.php");
$keenetic_module = new keenetic();
$keenetic_module->reboot('IP');
Сегодня выложу обновление, чтоб модуль воспринимал IP-адрес, а не только ID.

Re: [Модуль] Keenetic (keenetic)

Добавлено: Вт апр 20, 2021 8:54 am
SmoKE_xDDD
V.A.S.t писал(а):
Вт апр 20, 2021 6:25 am
AndreyAA писал(а):
Чт апр 08, 2021 6:35 pm
Добрый день.
А есть возможность перезагрузки интернет центра в определенное время?
Указанный выше способ на новых прошивках работать не будет.

Чтоб перезагрузить роутер по времени нужно создать сценарий со следующим кодом (при установлeнном модуле Keenetic):

Код: Выделить всё

include_once(DIR_MODULES . "keenetic/keenetic.class.php");
$keenetic_module = new keenetic();
$keenetic_module->reboot('IP');
Сегодня выложу обновление, чтоб модуль воспринимал IP-адрес, а не только ID.
Это на сколько новых? У меня viva с ласт версией - работает

Re: [Модуль] Keenetic (keenetic)

Добавлено: Вт апр 20, 2021 9:51 am
V.A.S.t
SmoKE_xDDD писал(а):
Вт апр 20, 2021 8:54 am
Это на сколько новых? У меня viva с ласт версией - работает
Viva какая? KN-1910? Прошивка 3.6.3?
И модуль "Устройства Keenetic Онлайн" работает? Я, конечно, не разбирался в чем причина, но думал, что от ci они отказались вообще.

Re: [Модуль] Keenetic (keenetic)

Добавлено: Вс май 16, 2021 9:53 am
Bolik.Stav
А можно реализовать запуск "гостевого WiFi" с MD?
К примеру запуск сети на 3 часа. Пароль и точка могут быть сохранённые или генерироваться при запуске.

Re: [Модуль] Keenetic (keenetic)

Добавлено: Вс май 16, 2021 12:22 pm
V.A.S.t
Bolik.Stav писал(а):
Вс май 16, 2021 9:53 am
А можно реализовать запуск "гостевого WiFi" с MD?
К примеру запуск сети на 3 часа. Пароль и точка могут быть сохранённые или генерироваться при запуске.
Включение гостевого WiFi можно реализовать в MDM, если знать, какой интерфейс ему соответствует. У меня это WifiMaster0/AccessPoint1.
Чтобы включить этот интерфейс при помощи модуля, можно выполнить следующий код:

Код: Выделить всё

include_once(DIR_MODULES . "keenetic/keenetic.class.php");
$keenetic_module = new keenetic();
$keenetic_module->command('IP роутера', '{"interface": {"WifiMaster0/AccessPoint1": {"up": {"no": false}}}}', 1);
Соответственно, команда для выключения будет '{"interface":{"WifiMaster0/AccessPoint1":{"up": {"no":true}}}}'
Ну а время можно реализовать разными средствами MDM. Например, запустить таймер:

Код: Выделить всё

setTimeOut('KeeneticGuest','include_once(DIR_MODULES . "keenetic/keenetic.class.php"); $keenetic_module = new keenetic(); $keenetic_module->command("IP роутера", \'{"interface": {"WifiMaster0/AccessPoint1": {"up": {"no": true}}}}\', 1);', Количество секунд);
Сейчас выложу обновление с функцией command. После того, как обновитесь, код выше заработает (если совпадет интерфейс гостевой сети).

Re: [Модуль] Keenetic (keenetic)

Добавлено: Чт июн 17, 2021 12:15 pm
SmoKE_xDDD
Еще раз спасибо за модуль! Есть 2 просьбы для доработки:
1) Вывести массив (Как $status) для получения инфы. У меня MESH сеть и нужно обрабатывать эту инфу (Во 1 получить этаж, во вторых - примерную комнату по мощности сигнала)
screenshot.png
screenshot.png (7.79 КБ) 2798 просмотров
2) Подскажи команду для установки ограничения скорости конкретному клиенту/либо блокировка ему инета. (Кейс - родительский контроль)

Заранее спасибо! Модуль класс!

P.S. Плачу 1000 на счет в коннекте =) ;)

Re: [Модуль] Keenetic (keenetic)

Добавлено: Чт июн 17, 2021 1:55 pm
V.A.S.t
SmoKE_xDDD писал(а):
Чт июн 17, 2021 12:15 pm
Есть 2 просьбы для доработки:
Спасибо за оценку :)
По просьбам:
1) Уже реализовано в виде "отслеживания" - ставишь устройство на "отслеживание" и раз в цикл модуля забираешь инфу из объекта. Подробнее посмотри в справке к модулю.
Также, дополнительно, передается полный массив всех возможных данных об устройстве. Тоже описано в справке :)
2) Команды для ограничения скорости:
В обе стороны:
{"ip":{"traffic-shape":{"mac": "xx:xx:xx:xx:xx:xx", "host": {"rate": скорость в кбит/с}}}}
Асинхронно:
{"ip":{"traffic-shape":{"mac": "xx:xx:xx:xx:xx:xx", "host": {"rate": скорость в кбит/с, "upstream-rate": скорость в кбит/с}}}}
Отключить ограничение скорости:
{"ip":{"traffic-shape":{"mac": "xx:xx:xx:xx:xx:xx", "host": {"no": true}}}}
Отключить доступ в интернет(поменять профиль доступа):
{"ip": {"hotspot": {"host": {"mac": "xx:xx:xx:xx:xx:xx","deny": true,"policy": false,"schedule": false}}}}
Включить доступ в интернет(поменять профиль доступа обратно):
{"ip": { "hotspot": {"host": {"mac":"xx:xx:xx:xx:xx:xx","permit": true,"policy": false,"schedule": false}}}}
Не забывай в функции выставлять флаг сохранения, иначе после перезагрузки настройки слетят.
А вообще в самом кинетике удобно по расписанию ограничивать или отключать доступ в интернет :)

Re: [Модуль] Keenetic (keenetic)

Добавлено: Сб июн 19, 2021 5:20 pm
SmoKE_xDDD
Еще вопрос, как получить количество клиентов по каждому интерфейсу/роутеру...?

Re: [Модуль] Keenetic (keenetic)

Добавлено: Вс июн 20, 2021 5:51 am
V.A.S.t
SmoKE_xDDD писал(а):
Сб июн 19, 2021 5:20 pm
Еще вопрос, как получить количество клиентов по каждому интерфейсу/роутеру...?
Тут надо писать обработку:

Код: Выделить всё

include_once(DIR_MODULES . "keenetic/keenetic.class.php");
$keenetic_module = new keenetic();
$request = $keenetic_module->command('192.168.1.1', '{"show": {"ip": {"hotspot": {}}, "interface": {}, "mws": {"member": {}}}}'); //запрашиваем инфу
$devices = $request['show']['ip']['hotspot']['host']; //массив с девайсами
$ifaces = $request['show']['interface']; //массив с интерфейсами
$mws = $request['show']['mws']['member']; //массив с роутерами (контроллер системы в массиве отсутствует)
foreach($mws as $router){ // соотносим CID роутера с его названием в отделном массиве
 $routercid[$router['cid']] = $router['model'];
}
foreach($devices as $device){ // перебираем список устройств
 if(isset($device['ap'])) $routers['Контроллер'][$device['mac']] = $device; //если точка доступа на контроллере - добавляем в подмассив контроллера
 else if(isset($device['mws'])){ //если на другом роутере Wi-Fi системы
  $routers[$routercid[$device['mws']['cid']]][$device['mac']] = $device; //добавляем в подмассив с названием роутера
 }
}
foreach($routers as $key=>$router){ // перебираем все роутеры
echo '<pre>';
print $key . ": " . count($routers[$key]) . " устройств."; //и выводим на экран количество элементов в подмассиве
echo '</pre>';
}
Этот скрипт выводит на экран количество подключенных к каждому роутеру в Wi-Fi системе устройств. Причем подключенных ТОЛЬКО по Wi-Fi.
По интерфейсам сложнее - в кинетике их очень много, поэтому обработку не писал, но массив $ifaces со всеми интерфейсами в коде есть и при желании также можно обработать в цикле foreach($devices as $device).