• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP + Arduino IDE + PubSubClient зависание при недоступности MQTT брокера

Sekandr

New member
ESP8266: скетч на Arduino IDE, даже из родной библиотеки PubSubClient, при подключении к MQTT-брокеру, при недоступности брокера происходит задержка выполнения скетча.
Для сравнения использовал скетч WiFi-IOT. В нем при пропадании брокера скетч отрабатывает без задержек.
С помощью терминала узнал на каком месте затык: client.connect("ESP8266");

Как в PubSubClient проверить доступность брокера без задержек в программе(при его отсутствии)?

Повторюсь - даже скетчем из библиотеки.
 

Sekandr

New member
Рассматривал этот вариант. В нем решение было перейти на прерывания с кнопками. С веб-сервером такое не проканывает. Долго отрабатывает запросы.
А в примере скетча mqtt_reconnect_nonblocking происходит таймаут проверки доступности через 5 сек. и точно такой же затык на проверке.
 

Сергей_Ф

Moderator
Команда форума
@Sekandr причем тут кнопки? Надо перейти на асинхронный клиент.
На нем могут быть таймаауты, если вы сами их сделаете в своем скетче. Обрабатывайте правильно и все заработает.
п.с. в Ардуино никаких "родных" библиотек не существует, за исключением wiring.
 
Последнее редактирование:

Sekandr

New member
@Sekandr причем тут кнопки? Надо перейти на асинхронный клиент.
На нем могут быть таймаауты, если вы сами их сделаете в своем скетче. Обрабатывайте правильно и все заработает.
п.с. в Ардуино никаких "родных" библиотек не существует, за исключением wiring.
А можно про асинхронный клиент по подробнее?
 
Сверху Снизу