Mikrotik

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

Модератор: immortal

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

Re: Mikrotik

Сообщение Bagir » Ср июн 17, 2020 12:41 pm

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

Re: Mikrotik

Сообщение Bagir » Ср июн 17, 2020 5:47 pm

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

Re: Mikrotik

Сообщение Chainik » Ср июн 17, 2020 5:58 pm

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

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

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

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

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

Re: Mikrotik

Сообщение xor » Ср июн 17, 2020 6:47 pm

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

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

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

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

runScriptSafe('getWiFiclients');
Меньше записей в базу по поводу таймеров, нет рекурсии, нет задержки в исполнении самого "onNewMinute". Я не программист, если что, так что больно не бейте ;)
говорят, сейчас не работают сэйф у людей. а запуск через таймер гарантирует запуск скрипта отдельным потоком
За это сообщение автора xor поблагодарил:
Chainik (Ср июн 17, 2020 7:20 pm)
Рейтинг: 1.16%
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Mikrotik

Сообщение Chainik » Ср июн 17, 2020 7:53 pm

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

Re: Mikrotik

Сообщение xor » Ср июн 17, 2020 8:36 pm

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

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

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

Re: Mikrotik

Сообщение Bagir » Ср июн 17, 2020 8:44 pm

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
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Mikrotik

Сообщение Bagir » Ср июн 17, 2020 8:57 pm

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

Re: Mikrotik

Сообщение xor » Ср июн 17, 2020 9:31 pm

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

Re: Mikrotik

Сообщение Amarok » Чт июн 18, 2020 7:11 am

Bagir писал(а):
Вс июн 14, 2020 12:49 pm
Постараюсь к вечеру выложить свой вариант опроса микротика с виджетом и классом.
...
Оформлена html страница с клиентами и точками.
Фоточки будут?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Ответить