ESP... port 80

buon giorno a tutti,
Con lo sketch allegato comando correttamente i 4 relays con la home WIFI tramite browser sia da PC che da cellulare. I browsers mi indicano correttamente lo stato dei relays dopo aver inviato il comando.
Se modifico lo sketch cambiando il numero della porta “ESP8266WebServer server(80);” mettendo 81 oppure 810 o altri numeri , sul browser appare correttamente la schermata MA , dopo aver impartito il comando, il browser mi cancella la schermata dicendo che non riesce a connettersi. Ripeto che mettendo la porta =80 va tutto bene. Non uso internet per il controllo… no port mapping.
Non riesco a capire la ragione.
Qualche suggerimento per favore ?
Grazie
Saluti

4_relays_bistabili.txt (6.73 KB)

prova a leggere questo...

ok, provato a cambiare diversi numeri ma con porta diversa da 80 si ripresenta il problema. C'è forse qualche bug nel mio sketch ? Grazie Saluti

Non sono molto pratico, ma dal link di patrick vedo che la porta 80 è riservata al protocollo HTTP. Dovresti provarne un'altra dedicata a quel protocollo. Ma perché vuoi cambiare porta?

Non è il tuo sketch, è il mondo che funziona così. Non è che puoi usare le porte come piace a te. Molti numeri di porta sono "dedicati" Il protocollo http usa la porta 80 oppure a volte 8080

Thanks, devo cambiare la porta perchè ho già un altro dispositivo sulla 80 ed il mio router non consente di avere una altra porta 80. Ho cambiato in 8080 ma non cambia nulla. Quando accedo con 192.168.1.13:81 mi viene correttamente presentata la schermata. Se invio un comando allora il browser dice che no puo' accedere e presenta un ip =192.168.1.13 e non 192.168.1.13:81. E' chiaro che su questo ip non risponde nessuno ! Non capisco come mai viene cambiato l' IP ( perde la porta :81). Se il mio sketch fosse errato non funzionerebbe nemmeno sulla porta :80 ( almeno così penso io ). Veramente strano. Grazie nuovamente

... mi sono dimenticato di precisare che ho usato browsers diversi sia su PC che su cellulare. Saluti

tutti i dispositivi che accedono ad internet di norma accedono alla porta 80 non vorrei invece che4 il tuo ruter blocchi l'accesso all'arduino perchè non è abilitato... come fanno talvolta anche gli firewall

Immagino sia per colpa di questa riga:

String ip = WiFi.localIP().toString();
  server.sendHeader("Location", String("http://") + ip, true);
  server.send ( 302, "text/plain", "");

Il mio router telecom mi da in port mapping "HTTP secondary" e porta 8080

Inoltre mi da virtual server, dove porta interna ed esterna possono essere diverse. Ovvero sempre 80 puoi avere (visione da esterno) anche se il dispositivo lavora sulla 81 (ad esempio)

grazie a tutti per le risposte. Rif msg:8.: riconosco di non essere pratico di networking. Chiederei gentilmente se possibile avere indicazioni circa le tre righe di codice indicate . Non capisco se devo cancellarle oppure se devo modificarle ma in questo ultimo caso non saprei come. Ringrazio nuovamente per la disponibilità. saluti

Immagino che dovresti aggoungerci la porta, se non è 80. Fai un tentativo.

il mio IP completo di porta è: 192.168.1.5:81

vediamo se ci capisco qualcosa...

String ip = WiFi.localIP().toString(); >>> contiene l' IP senza porta : nel mio caso 192.168.1.5

server.sendHeader("Location", String("http://") + ip, true); >>> costruisce l'header : http://192.168.1.5

server.send ( 302, "text/plain", ""); >>> che cosa fa ? dove metto :81 che sarebbe la mia porta ?

Per favore potresti aiutarmi ? Dove posso trovare un reference / spiegazione / sintassi... etc ?

Grazie mille saluti

se questo: server.sendHeader("Location", String("http://") + ip, true); >>> costruisce l'header : http://192.168.1.5 deve diventare uguale a questo: il mio IP completo di porta è: 192.168.1.5:81 il :81 lo devi aggiungere in coda all'ip :) server.sendHeader("Location", String("http://") + ip + ":81", true); immagino...

Grazie Mille Patrick_M: ora funziona tutto alla perfezione. A volte basta un piccolo aiuto per superare dei problemi che sembrano irrisolvibili anche se banali. Te ne sono grato. Saluti Ambro

A volte ci vuole anche un po' di inventiva e voglia di sperimentare (mica esplode niente...), invece di aspettare la pappa pronta. Anche perché in questo modo non hai imparato niente e al prossimo problema banale ti arenerai di nuovo.

/* Mi piacerebbe imparare qualcosa .... al fine di non "smanettare " senza capire. Dove posso trovare un reference per ESP...mDNS... server.sendHeader... server send.... in generale come si effettua una connessione... come si aggiorna una pagina ... dove posso trovare esempi e spiegazioni ? */ Come ho detto il sistema funziona in modo eccezionale con la mia home WIFI. Ho un account DDNS che uso per la home automation off the shelf e vorrei usarlo per controllare il mio ESP tramite internet. Ho fatto le seguenti operazioni sul router:

Assegnato IP statico allo ESP (192.168.1.2 ) ho abilitato il port mapping : TCP/UDP, porta lan 81, porta pubblica 81, ho richiamato lo ESP legandolo con lo IP di cui sopra. Come risultato ottengo sempre un corretto funzionamento in WIFI sia da PC che da cellulare... MA accedendo da internet con il cellulare con "asso.ddns.net:81", mi viene correttamente presentata la pagina, il comando impartito viene recepito correttamente ma la pagina sul cellulare NON viene aggiornata e dopo un po mi dice che non riesce a collegarsi allo IP 192.168.1.2:81. Questo potrebbe anche essere giusto in quanto dovrebbe ricollegarsi a asso.ddns.net:81. Quasi sicuramente si ripresenta il problema che grazie a Voi è stato curato per la rete home WIFI. La mia domanda è: devo mettere asso.ddns.net:81 nello sketch ( riga server.sendHeader...) oppure devo cambiare qualcosa sul router ? Se metto "asso.ddns.net:81" nello sketch (?) mi funziona ancora tutto in home WIFI ? Ringrazio veramente per l'aiuto. saluti

come diceva più sopra sukko.... prova, male che vada non funziona

io per le mie ricerche mi affido di solito a San Google :) mi trova una marea di risultati di tutto quello che cerco

una camionata sono porcheria ma tocca leggerle tutte per scoprirlo, il risultato però è che dopo un po ci fai l'occhio e individui i siti che non ti raccontano palle ;)

ok.

risolto mettendo “asso.ddns.net:81” nello sketch.
Funziona bene sia il wifi locale che via internet.

grazie
Ciao a tutti.
Ambro