• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
А можно про асинхронный клиент по подробнее?
 
Сверху Снизу