Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Зависания при недоступности NTP сервера #8

Open
immago opened this issue Sep 2, 2019 · 4 comments
Open

Comments

@immago
Copy link

immago commented Sep 2, 2019

Проблема: Если NTP сервер недоступен происходит зависание примерно каждые 3 секунды на 1 секунду. В моем случае это происходило из-за нестандартного gateway роутера.

Причина: т.к. в таком состоянии доступа в интернет нет, получить время невозможно. В timeTick() строчка timeClient.update() пытается получить время и блокирует поток на 1 секундный таймаут.

Решение для нестандартного gateway :

byte IP_GTW[] = {192, 168, 1, 10};  // gateway
...
WiFi.config(IPAddress(IP_STA[0], IP_STA[1], IP_STA[2], IP_STA[3]),
                IPAddress(IP_GTW[0], IP_GTW[1], IP_GTW[2], IP_GTW[3]),
                IPAddress(255, 255, 255, 0));

Демонстрация проблемы: https://youtu.be/V2hN8KUBEi0

Эта проблема может воспроизводится если ntp сервер будет недоступен по другим причинам (нет интернета например).
Предлагаю в timeTick делать синхронизацию не циклично, по готовности, а раз в час (например). Так же это уменьшит избыточное количество запросов.

PS. Спасибо за проект. Внес бы корректировку сам, но не мой профиль, сложновато, да и "костыль" меня пока устраивает.

@dymmer
Copy link

dymmer commented Nov 7, 2019

та же проблема. подскажите пожалста как узнать какой шлюз ставить? и в версии 1.4 я уже не вижу таких настроек. Где что проставить? Пишет что интернет есть, IP получает для NTP, но все равно время не считает и тормозит как и у вас.

@immago
Copy link
Author

immago commented Nov 7, 2019

@dymmer Если я правильно понял в новых версиях убрали ручное выставление ip и проблема должна исчезнуть.

Но на всякий случай шлюз можно узнать командой ipconfig /all с командной строке.
Еще можете попробовать альтернативные прошивки со страницы проекта. На прошивке от gunner47 такой проблемы точно нет.

@dymmer
Copy link

dymmer commented Nov 7, 2019

спасибо за ответ. у меня с версией 1.5.1 приложение не работает. видел что там убрали, но приложуха ругается и вылетает. мне пока не понятно почему у меня в принципе NTP не получает...на работе работает, дома не хочет. gunner-а попробую еще, вроде ставил его уже, спасибо

upd: в прошивке от gunner47 не работает так же

upd2: заработало. спасибо

@andreu7530
Copy link

поменял сервер на "ru.pool.ntp.org" все заработало

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants