WebInterface dostepny podczas normalnej pracy

neo_marki
Posts: 6
Joined: Wed Nov 01, 2023 9:13 pm

Post

Cześć,
Jak zrobić żeby WebInterface stworzony w IDE był dostępny podczas normalnej pracy a nie tylko w trybie konfiguracyjnym? Chodzi mi o identyczną funkcjonalność jak w GUI.
User avatar
klew
Posts: 10193
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Code: Select all

    Supla::WebServer::Instance()->start();
Tylko najbezpieczniej to wywołać dopiero, gdy są skonfigurowane interfejsy sieciowe.
Dodatkowo na ESP8266 może być mało RAM-u. WebServer w SuplaDevice nie był optymalizowany pod kątem wymaganej pamięci, przez co przy szyfrowanym połączeniu z serwerem, oraz przy uruchomionym WebServer, na ESP8266 urządzenie może nie pracować prawidłowo.
Nie mam w planach optymalizacji, ani testowania tego pod tym kątem, także ogólnie taką konfigurację należy traktować jako niewspieraną.

Na ESP32 będzie to działać prawidłowo, bo tam pamięci jest na pewno wystarczająco.
neo_marki
Posts: 6
Joined: Wed Nov 01, 2023 9:13 pm

Post

Dziękuję za pomoc wszystko pięknie działa!
User avatar
veeroos
Posts: 602
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów

Post

Cześć. A jak mam taki komunikat

Code: Select all

Starting local web server

assert failed: tcpip_send_msg_wait_sem /IDF/components/lwip/lwip/src/api/tcpip.c:449 (Invalid mbox)
No i oczywiście bootloop, to co namieszałem? dodałem tylko

Code: Select all

Supla::WebServer::Instance()->start();
przed

Code: Select all

SuplaDevice.begin();
ESP32, przykład z biblioteki: WebInterface
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4

https://github.com/v33r005
User avatar
klew
Posts: 10193
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

veeroos wrote: Tue Jul 23, 2024 7:41 am Cześć. A jak mam taki komunikat

Code: Select all

Starting local web server

assert failed: tcpip_send_msg_wait_sem /IDF/components/lwip/lwip/src/api/tcpip.c:449 (Invalid mbox)
Startować web serwer można tylko, gdy jest już jakiś interfejs sieciowy gotowy. Przed begin (a nawet po nim) nie jest ;). Trzeba w loopie dać if'a czekającego na sieć i wtedy wystartować.
User avatar
veeroos
Posts: 602
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów

Post

klew wrote: Tue Jul 23, 2024 7:58 am
Startować web serwer można tylko, gdy jest już jakiś interfejs sieciowy gotowy. Przed begin (a nawet po nim) nie jest ;). Trzeba w loopie dać if'a czekającego na sieć i wtedy wystartować.
a w sumie nie doczytałem ze zrozumieniem, już testuję ;-)
Edit. Pięknie działa, dzięki wielkie ;-)
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4

https://github.com/v33r005
radzik_r
Posts: 439
Joined: Sun Aug 11, 2019 5:32 pm

Post

Code: Select all

void loop() {
  SuplaDevice.iterate();


  static bool LOCAL_WEB_SERVER = false;
  if (!LOCAL_WEB_SERVER) {
    if (Supla::Network::IsReady()) {
      LOCAL_WEB_SERVER = true;
      SuplaDevice.handleAction(0, Supla::START_LOCAL_WEB_SERVER);
    }
  }
 };
taki warunek wystartuje webserver po nawiązaniu połączenia z siecią

Return to “Ogólna dyskusja”