Mikrotik

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Mikrotik

Сообщение Bagir »

Обновил сценарий, виджет и описание viewtopic.php?f=8&t=2006&p=120957#p120957
Определение провайдера и Интернета за ним теперь с помощью Detect Internet.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Mikrotik

Сообщение Bagir »

Вот такой вопрос: Мой цикл getWiFiclients запускается каждые 10 секунд, и лазает в микротик. По этому в логах микротика полно записей user пришел, user ушел. Ну вот просто не нравится мне это. Как победить? Может сделать отдельный цикл, и весь код getWiFiclients переместить в него. Открыть соединение, и не закрывать его до завершения цикла.
Есть мысли по этому поводу?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Mikrotik

Сообщение Chainik »

Bagir писал(а): Ср июн 17, 2020 5:47 pm ...Открыть соединение, и не закрывать его до завершения цикла.
Есть мысли по этому поводу?
Если есть возможность открыть соединение и не закрывать его, наверное, это один из вариантов уменьшения количества записей.
Я бы еще "страховочный" вызов метода из onNewMinute оптимизировал. Вместо

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

setTimeOut('getWiFiclientsTimer',"runScript('getWiFiclients');",10);
записал бы просто

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

runScriptSafe('getWiFiclients');
Меньше записей в базу по поводу таймеров, нет рекурсии, нет задержки в исполнении самого "onNewMinute". Я не программист, если что, так что больно не бейте ;)
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Mikrotik

Сообщение xor »

Chainik писал(а): Ср июн 17, 2020 5:58 pm
Bagir писал(а): Ср июн 17, 2020 5:47 pm ...Открыть соединение, и не закрывать его до завершения цикла.
Есть мысли по этому поводу?
Если есть возможность открыть соединение и не закрывать его, наверное, это один из вариантов уменьшения количества записей.
Я бы еще "страховочный" вызов метода из onNewMinute оптимизировал. Вместо

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

setTimeOut('getWiFiclientsTimer',"runScript('getWiFiclients');",10);
записал бы просто

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

runScriptSafe('getWiFiclients');
Меньше записей в базу по поводу таймеров, нет рекурсии, нет задержки в исполнении самого "onNewMinute". Я не программист, если что, так что больно не бейте ;)
говорят, сейчас не работают сэйф у людей. а запуск через таймер гарантирует запуск скрипта отдельным потоком
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Mikrotik

Сообщение Chainik »

xor писал(а): Ср июн 17, 2020 6:47 pm ...
говорят, сейчас не работают сэйф у людей. а запуск через таймер гарантирует запуск скрипта отдельным потоком
Прям "задели меня за живое" слухи о неработоспобности Safe. Полез проверять. Действительно не работает. А почему??? Даже в базе знаний написано: "runScriptSafe($id,$data); -- выполняет скрипт безопасно в фоне".
Надо что-то подправить в консерватории...
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Mikrotik

Сообщение xor »

Chainik писал(а):
xor писал(а): Ср июн 17, 2020 6:47 pm ...
говорят, сейчас не работают сэйф у людей. а запуск через таймер гарантирует запуск скрипта отдельным потоком
Прям "задели меня за живое" слухи о неработоспобности Safe. Полез проверять. Действительно не работает. А почему??? Даже в базе знаний написано: "runScriptSafe($id,$data); -- выполняет скрипт безопасно в фоне".
Надо что-то подправить в консерватории...
Я из-за этого и не обновляюсь с февраля ( пишут, что и онньюминуте из-за этого же барахлит

Отправлено с моего Redmi 4X через Tapatalk

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Mikrotik

Сообщение Bagir »

Chainik писал(а): Ср июн 17, 2020 5:58 pmЕсли есть возможность открыть соединение и не закрывать его, наверное, это один из вариантов уменьшения количества записей.
Кроме как цикл, я не вижу способа открыть и не закрывать соединение. По сути мы имеем дело с отдельным процессом. Но возможно есть альтернативы.
Chainik писал(а): Ср июн 17, 2020 5:58 pmЯ бы еще "страховочный" вызов метода из onNewMinute оптимизировал
Я выбрал вариант с таймером по двум причинам. 1. Если время таймера и время запуска onNewMinute будут где то рядом, то произойдет двойной вызов скрипта. А если в onNewMinute прописан таймер, то он просто заменит существующий таймер, и это будет как то "глаже". 2. Таймеры запускают код в отдельном процессе.
Chainik писал(а): Ср июн 17, 2020 5:58 pmМеньше записей в базу по поводу таймеров, нет рекурсии
Мне просто нужны частые проверки WiFi устройств. раз в 10 секунд. Поэтому от рекурсии не уйти. Вот и смотрю в сторону отдельного цикла. Когда подхожу к входной двери с телефоном, меня почти сразу пускают домой :)
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Mikrotik

Сообщение Bagir »

Обдумываю дальше вариант с отдельным циклом. При каждой итерации мы можем контролировать, есть ли соединение с микротиком. Если по каким то причинам, оно грохнулось, то мы его пересоздадим. тут всё без проблем.
Но вот был у меня случай, когда на микротике помер блок питания, и Алиса каждые 10 секунд стучалась в закрытую дверь. При этом вся система, можно сказать, словила конкретного клина. Раз уж переделывать, то переделывать хорошо.
Какие мысли есть?
Я вот думаю, пробовать устанавливать соединение не каждые 10 секунд, а раз в минуту. Да и процесс, работающий в отдельном цикле, не должен сильно навредить МД.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Mikrotik

Сообщение xor »

Bagir писал(а): Ср июн 17, 2020 8:57 pm ...
Но вот был у меня случай, когда на микротике помер блок питания, и Алиса каждые 10 секунд стучалась в закрытую дверь. При этом вся система, можно сказать, словила конкретного клина. Раз уж переделывать, то переделывать хорошо.
Какие мысли есть?
...
а он заведен у вас как устройство онлайн? такие устройства пингуются системой и можно поймать его отвал, в т.ч., и по питанию
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

Re: Mikrotik

Сообщение Amarok »

Bagir писал(а): Вс июн 14, 2020 12:49 pm Постараюсь к вечеру выложить свой вариант опроса микротика с виджетом и классом.
...
Оформлена html страница с клиентами и точками.
Фоточки будут?
Моя Алиска живёт на Proxmox в Debian 12
Ответить