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

Как проверить доступна ли точка доступа?

enjoynering

Well-known member
следить за за событием STA_DISCONNECT не надо. для этого есть WiFiEventHandler который все делает за вас. я кстати с помощью него переключаюсь меджу AP и Client. очень удобно.
 
Спасибо, почитал, потестил. Хорошо отлавливать момент отключения роутера. Но вот роутер отключился, я там скажем через 30 секунд включил AP режим и он работает в AP режиме.
А вот как теперь отловить, что роутер стал доступен - вот чего я не понял.
 

enjoynering

Well-known member
А вот как теперь отловить, что роутер стал доступен - вот чего я не понял.
а не надо, чип все делает за вас. я уже писал (на первой странице) - для этого у esp8266 есть функция автоматического подключения к последней точке доступа. момент подключения (к точке доступа) вам опять же подскажет WiFiEventHandler
 
а не надо, чип все делает за вас. я уже писал (на первой странице) - для этого у esp8266 есть функция автоматического подключения к последней точке доступа. момент подключения (к точке доступа) вам опять же подскажет WiFiEventHandler
Спасибо! Завтра поэкспериментирую.
 
Чего-то не работает auto reconnect.
Я долго думал куда вписать и вписал в функцию, которая AP mode включает. Ну как раз если при включении питания нет точки, включается AP mode и когда питание отключилось он тоже включается и вот при включении я делаю:
Код:
 if (WiFi.getAutoConnect()   != true) {WiFi.setAutoConnect(true);}   //set auto connection to last recorded wireless network on power-on
  if (WiFi.getAutoReconnect() != true) {WiFi.setAutoReconnect(true);} //set auto reconnection to wireless network if disconnected
При отключении питания событие срабатывает и девайс автоматом в AP mode переходит через 20 секунд, а вот обратно при включении питания нифига что-то. Может еще что-то где-то прописать надо?
 

enjoynering

Well-known member
Оригинально. У вас autoconnect для подключения client к точке доступа, а пихаете вы его в AP.

Ну ё маё. У вас же гугл и яндекс есть. Вам все дали, осталось только набрать в строке поиска - WiFi.getAutoConnect() и почитать. Это ж не в библиотеку 2 часа на автобусе!!!

Функции autoconnect не нужно вызывать 100500 раз. Достаточно один раз в setup, после удачного соединения с точкой доступа. И все, настройки сохраняться на флеш, туда же куда сохраняется пароль и ssid. Всё это есть в официальном help, его только надо открыть и прочитать.

Советую ещё прочитать об WiFi.persistent(false), чтоб не затереть флеш до дыр вашими паролями и автоподключениями.
 

tretyakov_sa

Moderator
Команда форума
Я же рекомендовал свою библиотеку. Она все сделает. Единственное, чего нет в моем алгоритме, это перехода в режим AP, когда роутер отключился в процессе работы. В моем понимании этот переход не требуется, и устройство восстановит связь когда появится роутер.
 
Оригинально. У вас autoconnect для подключения client к точке доступа, а пихаете вы его в AP.

Ну ё маё. У вас же гугл и яндекс есть. Вам все дали, осталось только набрать в строке поиска - WiFi.getAutoConnect() и почитать. Это ж не в библиотеку 2 часа на автобусе!!!

Функции autoconnect не нужно вызывать 100500 раз. Достаточно один раз в setup, после удачного соединения с точкой доступа. И все, настройки сохраняться на флеш, туда же куда сохраняется пароль и ssid. Всё это есть в официальном help, его только надо открыть и прочитать.

Советую ещё прочитать об WiFi.persistent(false), чтоб не затереть флеш до дыр вашими паролями и автоподключениями.
Да я 2 дня гугль копал. Сначала я так и подумал в setup вставить. но в гугле все вставляют куда угодно, кроме Setup. Ну и у меня не 100500 раз вызывается, а только при переключении в AP режим, а это надеюсь будет происходить не чаще 1-2 раз в месяц.
Попробую в Setup в инициацию WiFi вставить. Хотя по идее и как у меня сделано должно было сработать. Ведь команды тоже только один раз отработали, когда я отключил точку доступа и включился AP режим.
 
Я же рекомендовал свою библиотеку. Она все сделает. Единственное, чего нет в моем алгоритме, это перехода в режим AP, когда роутер отключился в процессе работы. В моем понимании этот переход не требуется, и устройство восстановит связь когда появится роутер.
Вам огромное спасибо. Я смотрел вашу библиотеку. Но автоматический переход в AP режим мне одинаково важен, как и обратное подключение к роутеру. А по теории, оно все в стандартной библиотеке есть.
 

pvvx

Активный участник сообщества
Но правильного, всегда подходящего, алгоритма нет. Переключение в режим AP неудобно для пользователей. Необходимо отключать смарт от WiFi и тыркаться в меню, если нет специальной автономной программы на смарте, конфигурирующей устройство. По этой причине во все новые устройства вставляют конфигуратор устройства WiFi через BLE.
Так что вперед осваивать ESP32 c BLE.
 
Переключение в режим AP неудобно для пользователей.
Чем неудобно? Тем что надо подключаться к ней как точке доступа? Но это лучше, чем она будет совсем недоступна ИМХО. Я всегда знаю, есть свет на даче или нет. В зависимости от этого буду подключаться либо по общему WiFi, либо через AP режим моего устройства.
Таким образом получается, раз задуманы такие режимы как autoconnect и autoreconnect, значит они должны работать. Просто я что-то делаю неправильно. осталось понять что.
Про ESP32 c BLE пока не знал. Почитаю на досуге.

Может кроме autoconnect и autoreconnect, точнее после включения этих режимов надо отследить какие-то события и по ним переключиться из режима AP?
 
Так что вперед осваивать ESP32 c BLE.
BLE это блютуз чтоли? Ну блютуз может конечно и ниского энергопотребления. Но надо прям рядом с устройством стоять. Потом я не знаю как на сайт, настроеный на ESP попасть с компа или смартфона через блютуз.
 

pvvx

Активный участник сообщества
BLE это блютуз чтоли? Ну блютуз может конечно и ниского энергопотребления. Но надо прям рядом с устройством стоять.
Это было до 2016 года, до ввода Bluetooth 5.0.
Потом я не знаю как на сайт, настроеный на ESP попасть с компа или смартфона через блютуз.
Через скачанную с инет или вашего местного полноценного Web сервера страницы.
А как попасть "на сайт" на ESP, если он отключился от AP?
И зачем на ESP "сайт"? У вас там стоит SSD на пару Терабайт в каждом датчике?
Web для каждой "Умной розетки" (?), когда её задача включить или выключить по событию от местного сервера "Умного Дома" и передать ему значения потребления и напряжения.
Ныне и на них конфигурируется по BLE куда им подключаться, к какой AP и с какими паролями. Пользователю при этом не требуется переключать WiFi и терять связь с интернет или местной сетью.
 

pvvx

Активный участник сообщества
Тем более у вас всегда остается резервный канал, т.к. BLE и WiFi на ESP32 могут работать одновременно и ESP может сообщить, что потеряна связь с AP в ваш "умный дом", а он может скриптом переназначить соединение. Т.е. полная автоматизация с резервными вариантами, чего нет у вас.
Но главный вопрос с WiFi - нафига вашему устройству канал в сотни мегабит?
 
И зачем на ESP "сайт"? У вас там стоит SSD на пару Терабайт в каждом датчике?
Ну не на пару терабайт. На 4 гига. Туда сохраняются данные метеорологические. На сайте можно посмотреть таблицу данных или графики колебания показателей. Нет понятно что вся эта байда не имеет научной ценности. Но мне интересно наблюдать изменения.
 
Это было до 2016 года, до ввода Bluetooth 5.0.
Ну не знаю. И с 5.0 если из домика на даче вышел блютуз теряется. Наушники мои отключаются.
Ну в общем может это и полезно, но мне честно говоря WiFi вполне хватает. Особенно если разберусь с автореконнектом.
Ну а не разберусь, сделаю подключение по появлению связи с точкой вот такой конструкцией:
Код:
WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
 

pvvx

Активный участник сообщества
1676454046253.png
И так всем WiFi устройcтвам IoT. Большего им никогда не требуется.
Иначе их убьет любой DDOS.
Ну не знаю. И с 5.0 если из домика на даче вышел блютуз теряется. Наушники мои отключаются.
Похоже вы живете в древнем мире. Наушники - это не BLE. В новом стандарте, уже есть и BLE Audio, но думаю до вас это ещё не дошло, т.к. не сильно распространилось и поддержка в пользовательских устройствах только начата.
А накопленные данные лучше отображать в нормальном виде на специализированном ПО, к примеру в Linux, и это умеют все "умные дома" и ограничением там является размер SSD и кол-во перезаписей...
 

pvvx

Активный участник сообщества
Ну не на пару терабайт. На 4 гига. Туда сохраняются данные метеорологические. На сайте можно посмотреть таблицу данных или графики колебания показателей. Нет понятно что вся эта байда не имеет научной ценности. Но мне интересно наблюдать изменения.
И сколько АКБ у вас стоит, чтобы запитывать всё это хозяйство в случае отключения внешней электро-энергии?
Сегодня на час утром отключали электричество, но питается от ИБП только платка с "Home Assistant", все WiFi роутеры отключились и никаких выпадений от десятков датчиков:
1676455364396.png
Умным розеткам включать нечего - генератор не заведен к ним, а только к нужным.
 

pvvx

Активный участник сообщества
BLE это блютуз чтоли? Ну блютуз может конечно и ниского энергопотребления. Но надо прям рядом с устройством стоять.
150..200 метров хватит? Или у вас участок больше?
Специально для вас, прямо сейчас, перенес в сарай-склад облицованный профнастилом (телефон там не работает) обычный Xiaomi LYWSD03MMC со своей прошивкой и ушел в конец участка:
1676456586494.png
Благополучно принимается и соединяется. И это при TX RF установленном на 0 дБ.
Так что у BLE давно та-же дальность, что и у WiFi. С 2016 года.
 
Сверху Снизу