Подключение исполнительных устройств, датчиков, контроллеров.
Модератор: immortal
-
kostya77
- Сообщения: 136
- Зарегистрирован: Вт ноя 12, 2013 8:29 pm
-
Благодарил (а):
2 раза
-
Поблагодарили:
8 раз
Сообщение
kostya77 » Пт мар 13, 2015 10:47 pm
kostya77 писал(а):Bagir писал(а):routeros_api.class.php в папку \lib\
Создаем новый сценарий:
Код: Выделить всё
$ip = gg('Mikrotik.IP');
$login = gg('Mikrotik.login');
$password = gg('Mikrotik.password');
$API = new routeros_api();
if ($API->connect($ip, $login, $password)) {
//клиенты WIFI
$ARRAY = $API->comm('/interface/wireless/registration-table/print');
// print_r($ARRAY);
foreach($ARRAY as $arr) {
echo $arr['mac-address'].' ';
}
$API->disconnect();
echo ('ok');
} else { echo 'error'; }
Если успею, ночью выложу уже работающий класс с методами пришел ушел. Будем думать как его развивать. Новые устройства думаю можно сразу кодом добавлять объектами.
Я правельно понял вас
routeros_api.class.php нужно переименовать в new routeros_api.php и положить в папку \lib\ ?
я почему спрашую подробно ((
не мгу подключится ,и не пойму где бок
Усе получилось
Причина )) не внимательность )) пробелы при копирование в пароле ))
-
Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
-
Благодарил (а):
212 раз
-
Поблагодарили:
375 раз
Сообщение
Bagir » Пт мар 13, 2015 10:48 pm
new в данном случае совсем не имя файла. Переименовывать не нужно. Файл routeros_api.class.php должен быть в папке lib. Больше ничего там делать не надо. Просто скопировать туда этот файл.
Дальше создаем новый сценарий. И в нем пишем этот код. ip, логин и пароль можно сразу подставить без распихивания их по свойствам. Я оставлю их в сценарии. Роутер то все равно один.
-
Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
-
Благодарил (а):
212 раз
-
Поблагодарили:
375 раз
Сообщение
Bagir » Пт мар 13, 2015 10:48 pm
Ну это бывает. У меня с первого раза все редко заводится ))
-
Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
-
Благодарил (а):
212 раз
-
Поблагодарили:
375 раз
Сообщение
Bagir » Пт мар 13, 2015 10:50 pm
Класс почти состряпал. Уже работают методы нашел и потерял. Хочу еще сделать уведомление, и добавление новых устройств сразу в объекты. Эти функции еще не изучал. Сейчас посмотрим. Через пару часиков выложу класс.
-
kostya77
- Сообщения: 136
- Зарегистрирован: Вт ноя 12, 2013 8:29 pm
-
Благодарил (а):
2 раза
-
Поблагодарили:
8 раз
Сообщение
kostya77 » Сб мар 14, 2015 12:05 am
Как можно будет выполнить команду /system/reboot для микротика ?
-
Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
-
Благодарил (а):
212 раз
-
Поблагодарили:
375 раз
Сообщение
Bagir » Сб мар 14, 2015 12:06 am
Эти api даже пока не изучал. Ковыряюсь с классом WiFi
-
Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
-
Благодарил (а):
212 раз
-
Поблагодарили:
375 раз
Сообщение
Bagir » Сб мар 14, 2015 2:57 am
Все получилось! Теперь я вижу, когда ко мне приходят друзья. Точка доступа засекает их сразу на подходе к дому ))
Затея еще в стадии разработки. Надо многое продумать. Когда полностью доделаю, выложу в ветке оборудования. А пока структуру класса и скрипт смотрите в конекте!
Класс WiFiDevice
Сценарий getWiFiclients
Сценарий getWiFiclients запускается из onNewMinute. Надо бы подумать, как не завершать сессию с роутером. А то в его логах куча записей о подключении клиента.
У меня несколько микротиков делают бесшовный роуминг. Один главный, остальные ведомые. Клиентов WiFi приходится собирать из двух таблиц главного микротика путем объединения массивов.
Сценарий перебирает объекты класса WiFiDevice и ищет их MAC адрес в массиве роутера. Если находит, то запускает метод Found. Если не находит - метод Lost.
Есть встроенное уведомление по средствам SAY() в зависимости от указанного свойства notify.
Если MAC адрес находится впервые, то создается объект в классе WiFiDevice. Затем Вам будет нужно настроить его свойства name и notify.
- За это сообщение автора Bagir поблагодарили (всего 2):
- Amarok (Сб мар 14, 2015 9:49 am) • Anton_V (Пн май 07, 2018 10:10 pm)
-
zverev.sv
- Сообщения: 46
- Зарегистрирован: Вт окт 23, 2012 3:43 am
- Откуда: Южно-Сахалинск
-
Благодарил (а):
9 раз
-
Поблагодарили:
0
Сообщение
zverev.sv » Вт май 19, 2015 6:22 pm
Bagir будьте так добры выложите пожалуйста для скачивания Ваш класс и Методы для скачивания.
Заранее большое спасибо.
-
zverev.sv
- Сообщения: 46
- Зарегистрирован: Вт окт 23, 2012 3:43 am
- Откуда: Южно-Сахалинск
-
Благодарил (а):
9 раз
-
Поблагодарили:
0
Сообщение
zverev.sv » Ср май 20, 2015 3:26 am
Спасибо, тоже заработало!
-
Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
-
Благодарил (а):
212 раз
-
Поблагодарили:
375 раз
Сообщение
Bagir » Чт май 21, 2015 10:34 am
У меня всегда открыт коннект ))
Микротик отлично делится данными, причем ничуть не напрягаясь. Есть только нехороший момент с логами Микротика. Там куча записей об авторизации пользователя, который периодически лазает за данными. Возможно было бы лучше не рвать соединение с микротиком. Как нибудь надо будет попробовать сделать так.
Более того, если в сети несколько Микротиков (один главный, остальные ведомые), То с главного Микротика можно забирать списки всех WiFi клиентов Ведомых Микротиков. Это весьма актуально для частных домов, где один роутер не может надежно покрыть всю площадь дома и сада.