Open renat2985 opened 5 years ago
Проблема даже не в том человеке. Я сегодня полностью обесточивал дом и после подачи питания маршрутизатор прогрузился позже ЕСП. Естественно, все устройства были недоступны для управления по сети. Вы понимаете, что это провал, если никого дома нет, а при необходимости что-то переключить будет невозможно достучаться до этих sonoff. А такое вполне реально, если моргнет свет. Таймер - совсем не выход. Не знаю, как там будет лучше сделать, Может лучше выдавать его в виде точки доступа при включении с зажатой кнопкой.... П.С. А что это за слово такое TACH? (TACH 8 max (button, movement, gercon, othe)) В английском языке это слово обозначает "тахометр"! (О.О)
@AndrewMyName, можно настроить через какое время подключаться к роутеру. Если я правильно понял. Если у вас роутер загружается минуту или две, ставьте больше время.
@renat2985, по поводу таймера на перезагрузку, сегодня пробовал так сделать но при отключении роутера точка доступа устройства на появляется (ждал минут 30), а при включении роутера устройства в сети не видно, таймер на перезагрузку тоже почему-то не сработал.
Возможно действительно есть смысл сделать что бы режим точки доступа включался при замкнутом какой нибудь gpio. Или еще вариант: если в течении нескольких минут в режиме точки доступа никто не подключился - перезагружать устройство. (насколько я понял он сначала пробует подцепиться к роутеру если не получилось переходит в режим точки доступа)
Кнопка обычно вешается на GPIO 0, если зажать ее при старте, ESP войдет в режим программирования. Заводить какой-то другой PIN под кнопку тоже не совсем хороший выход.
От кратковременных перебоев вам поможет совет @Forldol.
@AndrewMyName можете попробовать нажать Ctrl+M и изменить 240 например на 3600, в таком случае ESP будет пытаться подключится в течение часа. Насколько я помню ранее были с этим какие-то проблемы. Возможно сейчас их нет. В таком случае мы добавить в это выпадающее меню новый пункт, подключатся к роутеру в течение 1 часа или двух.
TACH -> TOUCH = Кнопка, ошибка уже давно тянется из версии к версии.
@Forldol наверное изменили пароль в ESP на роутер и перезагрузили ESP? В таком случае при загрузке ESP не сможет узнать время и запустится с временем 00:00:00. Нужно именно выключить сам роутер. Подождать когда ESP встанет в точку доступа, и потом снова включить роутер. И ждать...
@renat2985, Нет, просто выключил роутер, но точка доступа не появлялась. Ждала часа пол. Может дольше ждать надо было? Потом включил роутер но ни точки доступа ни устройства в сети не было. дождался времени когда должен был сработать таймер - ничего не произошло.
@Forldol спасибо за эксперимент.
Совершенно очевидно, что не должна настроенная система падать только из-за того, что реле, видите ли, не видя интернета переходит в AP! Лучше пожертвовать одним gpio и сделать загрузку в АР после нажатия кнопки и подачи питания, это делается один раз, а свет может пропадать 10 раз в день.
Уж не говоря о том, что можно использовать для первичного подключения к сети вариант с ESP8266 SnartConfig.
@multysea если у вас так часто пропадает свет целесообразно купить UPS. И ESP не нужен Интернет. Ей нужен роутер. Да и вообще тут проблема в другом. Как оказалось если роутер отключить от питания, в то время как ESP продолжает работать. После того как роутер снова включить ESP не подключается к роутеру и не входит в AP. - это баг исправим.
Специально исследовал, на бета версии с моими модулями - после перезагрузки роутера подключается без проблем, на стабильной - нет. И насчёт интернета, мне все это нужно чтобы контролировать объект удаленно, т.е. я захожу в сеть снаружи, и если, после восстановления интернета или света устройства находятся в режиме АР - это исключает возможность взаимодействия с ними. ИБП есть, но изучаю критические варианты развития событий:).
Здесь нужно в корне переделать алгоритм работы, и скорее всего все поменяю. Станет проще и лучше.
@Forldol сделайте пожалуйста еще 1 эксперимент в бета версии, добавьте в таймер такую ссылку: http://192.168.4.1/restart?device=ok IP не меняем.
Попробовал на бета версии - после отключения wi-fi модуль в точку доступа не переходит и после появления wi-fi к роутеру не подключаеться. Запросы http://192.168.4.1/restart?device=ok и http://192.168.0.192/restart?device=ok не срабатывают.
@renat2985 Сделал, ничего не поменялось. Проблема в том, что после отключения роутера модуль не переходит в режим АР,а после включения роутера его нет в сети.
При первом включении проверяет был ли настроен интернет, если да то работает и всё время следит есть связь или нет. если пропал интернет, ждет когда снова появится, подключается, и в точку не переходит, проверено. Всё оч. просто
// void setup(){ //Запускаем WIFI WIFIinit(false); //} Далее правим или перезаписываем функцию
void WIFIinit(bool flag) { // --------------------Получаем ssid со страницы HTTP.on("/ssid", HTTP_GET, []() { jsonWrite(configSetup, "ssid", HTTP.arg("ssid")); jsonWrite(configSetup, "password", HTTP.arg("password")); saveConfig(); // Функция сохранения данных во Flash HTTP.send(200, "text/plain", "OK"); // отправляем ответ о выполнении }); // --------------------Получаем ssidap со страницы HTTP.on("/ssidap", HTTP_GET, []() { jsonWrite(configSetup, "ssidAP", HTTP.arg("ssidAP")); jsonWrite(configSetup, "passwordAP", HTTP.arg("passwordAP")); saveConfig(); // Функция сохранения данных во Flash HTTP.send(200, "text/plain", "OK"); // отправляем ответ о выполнении });
// Попытка подключения к точке доступа WiFi.mode(WIFI_STA); byte tries = 11; String _ssid = jsonRead(configSetup, "ssid"); String _password = jsonRead(configSetup, "password"); if (_ssid == "" && _password == "") { WiFi.begin(); } else { WiFi.begin(_ssid.c_str(), _password.c_str());
} // Делаем проверку подключения до тех пор пока счетчик tries // не станет равен нулю или не получим подключение while (--tries && WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(1000);
} if (WiFi.status() != WL_CONNECTED) { // Если не удалось подключиться запускаем в режиме AP Serial.println(""); Serial.println("WiFi up AP"); if(flag == 0) StartAPMode(); } else { // Иначе удалось подключиться отправляем сообщение // о подключении и выводим адрес IP Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); jsonWrite(configJson, "ip", WiFi.localIP().toString()); } }
Удачи, у меня всё работает, попробуйте :)
tulavolond , вы такой продвинутый, это прекрасно, но для широкой аудитории может быть стоило больше подробностей дать? Куда весь этот ваш код вводить, что и как потом компилировать.. И вообще, почему обычные sonoff реле нормально восстанавливают свое состояние после отключения роутера, после пропадания света, а в этом проекте такие мегатанцы с бубном, которые к тому же не решают вопрос, т.к. надежности и очевидности во всех этих таймерах на перезагрузку и таймаутах нет никакой. Поразительно, такой классный проект и с таким недоразумением. Еще раз повторюсь, не должна система зависеть от того, как долго грузится роутер!
Добрый день! никакой я не продвинутый, с удовольствием смотрю Ваши видео! Я всего лишь добавил флаг в функцию. в void setup() { WIFIinit(false); } а в эту функцию условие и всё. void WIFIinit(bool flag) {
if (WiFi.status() != WL_CONNECTED) { if(flag == 0) StartAPMode(); } И конечно же этот флаг желательно записывать во флэш память при подключении к wifi, тогда точно проблем не будет
пока не изменятся настройки в самом роутере.
Если отключат эл- во он не поможет, а поможет если вывалился интернет или повис роутер и.т.д.. То Будет работать и ждать когда появится.
На счет остального с Вами полностью согласен 👍
После того как роутер снова включить ESP не подключается к роутеру и не входит в AP. - это баг исправим.
Не забудьте, пожалуйста. Я также с этим столкнулся....
Сегодня еще 1 человек написал о том что на ночь отключает роутер и утром включает. Ну и ESP не подключается к нему сама, т.к. она переходит в Точку доступа.
Появилась интересная мысль. У нас ведь есть GET запрос на рестарт ESP: http://192.168.1.240/restart?device=ok Мы можем сделать таймер. Каждое утро в нужное вам время, после включения роутера ESP делает рестарт. И тем самым снова пытается подключится к роутеру.![2019 01 16-21 58 52](https://user-images.githubusercontent.com/1230815/51275239-080ac800-19da-11e9-8a89-e37e6f5f3426.png)
По идеи должно работать. Проверьте пожалуйста у кого есть время. Обязательное условие Ваша ESP должна делать рестарт когда она в режиме Точке доступа. Так же нужно проверить разные ссылки: Такую http://192.168.1.240/restart?device=ok (IP меняем на свой) И такую /restart?device=ok Спасибо.