Я же в коннекте писал https://connect.smartliving.ru/profile/ ... og409.html
[Модуль] Keenetic (keenetic)
Модератор: immortal
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 109 раз
- Поблагодарили: 897 раз
Re: [Модуль] Keenetic (keenetic)
- За это сообщение автора SmoKE_xDDD поблагодарил:
- AndreyAA (Чт апр 08, 2021 9:40 pm)
- Рейтинг: 1.16%
-
- Сообщения: 256
- Зарегистрирован: Сб май 11, 2019 6:35 pm
- Откуда: Иркутск
- Благодарил (а): 15 раз
- Поблагодарили: 58 раз
Re: [Модуль] Keenetic (keenetic)
Указанный выше способ на новых прошивках работать не будет.
Чтоб перезагрузить роутер по времени нужно создать сценарий со следующим кодом (при установлeнном модуле Keenetic):
Код: Выделить всё
include_once(DIR_MODULES . "keenetic/keenetic.class.php");
$keenetic_module = new keenetic();
$keenetic_module->reboot('IP');
- За это сообщение автора V.A.S.t поблагодарил:
- SmoKE_xDDD (Вт апр 20, 2021 8:54 am)
- Рейтинг: 1.16%
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 109 раз
- Поблагодарили: 897 раз
Re: [Модуль] Keenetic (keenetic)
Это на сколько новых? У меня viva с ласт версией - работаетV.A.S.t писал(а): ↑Вт апр 20, 2021 6:25 amУказанный выше способ на новых прошивках работать не будет.
Чтоб перезагрузить роутер по времени нужно создать сценарий со следующим кодом (при установлeнном модуле Keenetic):Сегодня выложу обновление, чтоб модуль воспринимал IP-адрес, а не только ID.Код: Выделить всё
include_once(DIR_MODULES . "keenetic/keenetic.class.php"); $keenetic_module = new keenetic(); $keenetic_module->reboot('IP');
-
- Сообщения: 256
- Зарегистрирован: Сб май 11, 2019 6:35 pm
- Откуда: Иркутск
- Благодарил (а): 15 раз
- Поблагодарили: 58 раз
Re: [Модуль] Keenetic (keenetic)
Viva какая? KN-1910? Прошивка 3.6.3?SmoKE_xDDD писал(а): ↑Вт апр 20, 2021 8:54 amЭто на сколько новых? У меня viva с ласт версией - работает
И модуль "Устройства Keenetic Онлайн" работает? Я, конечно, не разбирался в чем причина, но думал, что от ci они отказались вообще.
-
- Сообщения: 74
- Зарегистрирован: Вс янв 20, 2013 11:06 pm
- Благодарил (а): 40 раз
- Поблагодарили: 13 раз
Re: [Модуль] Keenetic (keenetic)
А можно реализовать запуск "гостевого WiFi" с MD?
К примеру запуск сети на 3 часа. Пароль и точка могут быть сохранённые или генерироваться при запуске.
К примеру запуск сети на 3 часа. Пароль и точка могут быть сохранённые или генерироваться при запуске.
-
- Сообщения: 256
- Зарегистрирован: Сб май 11, 2019 6:35 pm
- Откуда: Иркутск
- Благодарил (а): 15 раз
- Поблагодарили: 58 раз
Re: [Модуль] Keenetic (keenetic)
Включение гостевого WiFi можно реализовать в MDM, если знать, какой интерфейс ему соответствует. У меня это WifiMaster0/AccessPoint1.Bolik.Stav писал(а): ↑Вс май 16, 2021 9:53 amА можно реализовать запуск "гостевого WiFi" с MD?
К примеру запуск сети на 3 часа. Пароль и точка могут быть сохранённые или генерироваться при запуске.
Чтобы включить этот интерфейс при помощи модуля, можно выполнить следующий код:
Код: Выделить всё
include_once(DIR_MODULES . "keenetic/keenetic.class.php");
$keenetic_module = new keenetic();
$keenetic_module->command('IP роутера', '{"interface": {"WifiMaster0/AccessPoint1": {"up": {"no": false}}}}', 1);
Ну а время можно реализовать разными средствами 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);', Количество секунд);
- За это сообщение автора V.A.S.t поблагодарили (всего 2):
- SmoKE_xDDD (Вс май 16, 2021 1:34 pm) • Bolik.Stav (Вс май 16, 2021 10:02 pm)
- Рейтинг: 2.33%
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 109 раз
- Поблагодарили: 897 раз
Re: [Модуль] Keenetic (keenetic)
Еще раз спасибо за модуль! Есть 2 просьбы для доработки:
1) Вывести массив (Как $status) для получения инфы. У меня MESH сеть и нужно обрабатывать эту инфу (Во 1 получить этаж, во вторых - примерную комнату по мощности сигнала) 2) Подскажи команду для установки ограничения скорости конкретному клиенту/либо блокировка ему инета. (Кейс - родительский контроль)
Заранее спасибо! Модуль класс!
P.S. Плачу 1000 на счет в коннекте =)
1) Вывести массив (Как $status) для получения инфы. У меня MESH сеть и нужно обрабатывать эту инфу (Во 1 получить этаж, во вторых - примерную комнату по мощности сигнала) 2) Подскажи команду для установки ограничения скорости конкретному клиенту/либо блокировка ему инета. (Кейс - родительский контроль)
Заранее спасибо! Модуль класс!
P.S. Плачу 1000 на счет в коннекте =)

-
- Сообщения: 256
- Зарегистрирован: Сб май 11, 2019 6:35 pm
- Откуда: Иркутск
- Благодарил (а): 15 раз
- Поблагодарили: 58 раз
Re: [Модуль] Keenetic (keenetic)
Спасибо за оценку

По просьбам:
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}}}}
Не забывай в функции выставлять флаг сохранения, иначе после перезагрузки настройки слетят.
А вообще в самом кинетике удобно по расписанию ограничивать или отключать доступ в интернет

- За это сообщение автора V.A.S.t поблагодарил:
- SmoKE_xDDD (Чт июн 17, 2021 2:57 pm)
- Рейтинг: 1.16%
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 109 раз
- Поблагодарили: 897 раз
Re: [Модуль] Keenetic (keenetic)
Еще вопрос, как получить количество клиентов по каждому интерфейсу/роутеру...?
-
- Сообщения: 256
- Зарегистрирован: Сб май 11, 2019 6:35 pm
- Откуда: Иркутск
- Благодарил (а): 15 раз
- Поблагодарили: 58 раз
Re: [Модуль] Keenetic (keenetic)
Тут надо писать обработку: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>';
}
По интерфейсам сложнее - в кинетике их очень много, поэтому обработку не писал, но массив $ifaces со всеми интерфейсами в коде есть и при желании также можно обработать в цикле foreach($devices as $device).
- За это сообщение автора V.A.S.t поблагодарил:
- SmoKE_xDDD (Вс июн 20, 2021 1:39 pm)
- Рейтинг: 1.16%