В настоящее время я работаю над интеграцией устройств IoT в облако. Многие люди знают умные штекеры Gosund. Просто для удовольствия, я поигрался с оригинальной прошивкой и задаюсь вопросом, как этот процесс соединения решается. Розетки Gosund основаны на ESP8266 и не имеют Bluetooth на аппаратной стороне, только W-LAN. Приложение Android запускает процесс поиска при сопряжении, находит сокет, отправляет настройки и настройка завершена. Но как именно это решается на стороне программного обеспечения?
Меня это интересует, потому что я хочу воспроизвести так же, как это решается для нашего приложения. Моя первая теория заключалась в том, что Gosunds, подобно Tasmota, открывают точку доступа с веб-сервером, а приложение отправляет настройки через вызовы REST.
В целях тестирования я реализовал это в небольшом прототипе, который также работает до сих пор. Но по моему коду видно, что телефон меняет вайфай. Открытые соединения закрыты и так далее ... С приложением Gosund это не так. Мой мобильный телефон остается в моей W-LAN все время, но ему удается отправить настройки через Wifi одновременно на штекер gosund .
Как это решить?
Альтернативная теория: приложение открывает точку доступа, и плагин gosund пытается подключиться. Но может ли Android сделать это? Оставайтесь в сети с помощью Wi-Fi и одновременно открывайте точку доступа?