Forum: Mikrocontroller und Digitale Elektronik esp01 Problem TCP Server Soft AP Modus


von andy_help (Gast)


Lesenswert?

Hallo,
das esp01 Modul funktioniert bei mir einwandfrei, jedoch bekomme ich den 
TCP Server nicht zum laufen.

Die AT Befehle:

Das Module in den Soft AP Modus bringen:

AT+CWMODE=2
AT+CWSAP="ESP-Modul","supersecret",5,3
AT+RST

Nachdem Neustart des Modul, starte ich den TCP Server auf Port 5000:

AT+CIPSERVER=1,5000

Wenn ich mich nun mit dem Server verbinden möchte:

nc 192.168.0.111 5000

bekomme ich ein timeout.

Mit ping 192.168.4.1 habe ich aber eine Verbindung.
Natürlich hatte ich mich mit dem SOFT AP mit meinem Smartphone 
verbunden.

Ja, wo liegt nun das Problem?

von Timo N. (tnn85)


Lesenswert?

andy_help schrieb:
> nc 192.168.0.111 5000

Und was passiert dann bei

nc 192.168.4.1 5000

?

Oder hast du die default IP vom ESP8266 mit AT+CIPAP geändert?

von andy_help (Gast)


Lesenswert?

Hi,
war ein Fehler von mir.
Ich hab die IP Adresse vom esp Module natürlich nicht geändert.
Das esp Module hat die IP Adresse 192.168.4.1 und mein Smartphone 
192.168.4.2.
Beide IP Adressen sind mit ping erreichbar.
Wenn ich aber nc 192.168.4.1 5000 ausführe, erhalte ich ein timeout.

von Stefan F. (Gast)


Lesenswert?

Also nochmal zusammen gefasst:

Dein ESP Modul ist im SOFT-AP Modus und kann auf 192.168.4.1 angepingt 
werden. Du hast dort einen TCP Server auf Port 5000 gestartet.

Dein Smartphone ist in das WLAN Netz "ESP-Modul" eingeloggt und hat die 
IP Adressse 192.168.4.2 bekommen.

Mit "nc 192.168.4.1 5000" ausgeführt auf deinem PC bekommst du keine 
Verbindung.

Ist das bis hierhin alles 100% richtig?

Dein PC ist hoffentlich ebenfalls in das WLAN Netz "ESP-Modul" 
eingeloggt, welche IP Adresse hat er bekommen? Ist er gleichzeitig mit 
weiteren Netzwerken verbunden? Welches Betriebssystem nutzt du auf dem 
PC?

von andy_help (Gast)


Lesenswert?

Ja, dass ist zu 100% richtig.
Das esp01 Modul ist im soft AP Modus und hat die IP Adresse 192.168.4.1.
Mein Android Smartphone verbindet sich mit dem access point und bekommt 
die IP Adresse 192.168.4.2.
Beide IP Adressen sind erreichbar per ping, jedoch funktioniert der TCP 
Server nicht.

Aufgebaut ist es momentan so.
Atmega ist über uart mit dem esp module verbunden.
Der Atmega geht eine Schleife durch und sendet die at Befehle zum esp01 
Module.
Der Atmega empfängt die Daten vom esp01 Module und schickt sie über eine 
Software uart an meinen PC.
So sehe ich, dass die at Befehle richtig übermittelt wurden.
Hm..odet fehlt eventuell ein at Befehl?
Heute Abend werde ich mal den udp Server vom esp01 module testen.

von Stefan F. (Gast)


Lesenswert?

andy_help schrieb:
> fehlt eventuell ein at Befehl?

Was fehlt sind Antworten auf meine Fragen

Stefan ⛄ F. schrieb:
> Dein PC ist hoffentlich ebenfalls in das WLAN Netz "ESP-Modul"
> eingeloggt, welche IP Adresse hat er bekommen? Ist er gleichzeitig mit
> weiteren Netzwerken verbunden? Welches Betriebssystem nutzt du auf dem
> PC?

von andy_help (Gast)


Lesenswert?

Mein PC ist über uart mit dem Atmega und der Atmega  über  uart mit dem 
esp01 Module verbunden.
Der Atmega sendet die at Befehle zum Module. Die Rückmeldungen sendet 
der Atmega umgehend an den PC.
Beim Linux PC läuft der Hammer terminal, so dass ich die Rückmeldungen 
vom Module erhalte.
Mein Smartphone verbindet sich mit dem access point des esp module.
Das esp01 module hat die IP Adresse 192.168.4.1 und das Smartphone hat 
die IP Adresse 192.168.4.2.

Verbindet sich mein Smartphone mit dem esp01 Module, so ist die WLAN 
Verbindung aktiv und das Smartphone verbindet sich für das Internet mit 
meinem Telefonanbieter.

von Stefan F. (Gast)


Lesenswert?

Auf welchem Gerät hast du den Befehl "nc 192.168.4.1 5000" ausgeführt?

(Ich ahne was...)

von andy_help (Gast)


Lesenswert?

Beim Smartphone starte ich dann ein terminal und sende dann nc 
192.168.4.1 5000 und ich erhalte dann ein timeout.
In dem terminal pinge ich dann beide IP Adressen an und das funktioniert 
auch.

von Stefan F. (Gast)


Lesenswert?

Du führst den "nc" Befehl wirklich in einem Terminal auf dem Smartphone 
aus?

Wie hast du dass den installiert?

Ist es nicht eher so, dass du den "nc" Befehl auf deinem PC ausführst, 
der gar nicht mit dem WLAN Netz "ESP-Modul" verbunden ist?

von andy_help (Gast)


Lesenswert?

Ich hab beim Android Smartphone das terminal Programm termux 
installiert.
Beim termux program kann man dann das nc Programm installieren.
Ja ich führe den nc Befehl beim Smartphone und nicht beim PC aus.

von Stefan F. (Gast)


Lesenswert?

Vielleicht geht das einfach nicht richtig. Die Installation solcher 
Kommandozeilentools ist bei Android nicht vorgesehen. Es kann durchaus 
sein, dass das Betriebssystem nicht alle dazu nötigen Funktionen bereit 
stellt.

Mache das mal auf dem Linux PC. Verbinde den PC mit deinem WLAN Netz und 
Benutzer dort das "nc" Programm. Unter Linux ist das ein ganz normales 
Tool, das ohne solche Tricks installiert werden kann.

Alternativ könntest du auf Port 80 wechseln und mit dem Web-Browser auf 
dem Smartphone testen. Dann hast du natürlich ein HTTP Protokoll oben 
drauf. Aber da dieses Text-Basiert ist kannst du zumindest sehen, was 
der Browser an den ESP sendet.

von Timo N. (tnn85)


Lesenswert?

andy_help schrieb:
> Ja ich führe den nc Befehl beim Smartphone und nicht beim PC aus.

Das war ne schwere Geburt den Satz dir aus der Nase zu ziehen....

Und wenn du dich zum SoftAP des ESP mit deinem PC verbindest und nc 
ausführst, dann bekommst du kein Timeout?

von pumuggl (Gast)


Lesenswert?

Die netcats (aka nc) die ich so fuer Android gefunden habe,
taugten alle nichts. Zum Schluss hab ich mir mit dem NDK
selber eins kompiliert.

von Stefan F. (Gast)


Lesenswert?

Timo N. schrieb:
> Das war ne schwere Geburt den Satz dir aus der Nase zu ziehen....

Und es war der einzige Punkt, wo er von meiner Anleitung abgewichen ist. 
Daraus kann man etwas lernen.

von andy_help (Gast)


Lesenswert?

@Timo N. Wenn ich meinen PC mit dem esp verbinde klappt es.
Wenn ich aber das Smartphone mit dem esp verbinde, funktioniert es eben 
nicht.
Es klappt auch nicht, wenn ich den esp im server modus mit dem Port 80 
betreibe und dann den esp per webbrowser anspreche.
Mit dem pc klappt es.

Warum funktioniert dies nicht mit meinem android smartphone und wie 
bekomme ich ein brauchbares netcat Programm für android zum laufen?

von pumuggl (Gast)


Lesenswert?

> und wie bekomme ich ein brauchbares netcat Programm für android zum laufen?

Ja, es ist kaum vorstellbar, aber wirklich alles was ich damals
getestet habe, hat nicht, halb oder nur mit Einschraenkungen 
funktioniert.

Auch zahlreiche netcat-Quellen haben Bugs die das Binary unbrauchbar 
machen.

Damals war die Androidentwicklungsumgebung ADT und fuer direktere
Zugriffe via C das NDK. Keine Ahnung wie das heute heisst.

Ist dein Fon eigentlich gerootet?


Vielleicht sollte ich mein nc im Guggelstore verkaufen
wenn der Rest der Welt nichts brauchbares zustande bringt.

von andy_help (Gast)


Lesenswert?

Hi mein Smartphone ist nicht gerootet.
Ist ein Huawei p30 lite.

Das Smartphone verbindet sich mit dem soft ap vom esp module, aber es 
kann keine tcp bzw. udp verbindung mit dem module herstellen.

Da muss es doch eine Lösung für geben.

von pumuggl (Gast)


Lesenswert?

> Hi mein Smartphone ist nicht gerootet.

Dann kann auch die Android-Firewall noch die interessanten Pakete 
verwerfen.
Dagegen kannst du ohne "root" nicht viel tun.

Fuer deine Tests solltest du auch immer Portadressen ueber 1024 
verwenden.

Wenn man alle Funktionen von netcat nutzen will, muss netcat mit
setuid=0 laufen.

1
void netcat_printhelp(char *argv0)
2
{
3
  printf(_("GNU netcat %s, a rewrite of the famous networking tool.\n"), "ndkbuild");
4
  printf(_("Basic usages:\n"));
5
  printf(_("connect to somewhere:  %s [options] hostname port [port] ...\n"), argv0);
6
  printf(_("listen for inbound:    %s -l -p port [options] [hostname] [port] ...\n"), argv0);
7
  printf(_("tunnel to somewhere:   %s -L hostname:port -p port [options]\n"), argv0);
8
  printf("\n");
9
  printf(_("Mandatory arguments to long options are mandatory for short options too.\n"));
10
  printf(_("Options:\n"
11
"  -c, --close                close connection on EOF from stdin\n"
12
"  -e, --exec=PROGRAM         program to exec after connect\n"
13
"  -g, --gateway=LIST         source-routing hop point[s], up to 8\n"
14
"  -G, --pointer=NUM          source-routing pointer: 4, 8, 12, ...\n"
15
"  -h, --help                 display this help and exit\n"
16
"  -i, --interval=SECS        delay interval for lines sent, ports scanned\n"
17
"  -l, --listen               listen mode, for inbound connects\n"));
18
  printf(_(""
19
"  -L, --tunnel=ADDRESS:PORT  forward local port to remote address\n"
20
"  -n, --dont-resolve         numeric-only IP addresses, no DNS\n"
21
"  -o, --output=FILE          output hexdump traffic to FILE (implies -x)\n"
22
"  -p, --local-port=NUM       local port number\n"
23
"  -r, --randomize            randomize local and remote ports\n"
24
"  -s, --source=ADDRESS       local source address (ip or hostname)\n"));
25
#ifndef USE_OLD_COMPAT
26
  printf(_(""
27
"  -t, --tcp                  TCP mode (default)\n"
28
"  -T, --telnet               answer using TELNET negotiation\n"));
29
#else
30
  printf(_(""
31
"      --tcp                  TCP mode (default)\n"
32
"  -t, --telnet               answer using TELNET negotiation\n"
33
"  -T                         same as --telnet (compat)\n"));
34
#endif
35
  printf(_(""
36
"  -u, --udp                  UDP mode\n"
37
"  -v, --verbose              verbose (use twice to be more verbose)\n"
38
"  -V, --version              output version information and exit\n"
39
"  -x, --hexdump              hexdump incoming and outgoing traffic\n"
40
"  -w, --wait=SECS            timeout for connects and final net reads\n"
41
"  -z, --zero                 zero-I/O mode (used for scanning)\n"));
42
  printf("\n");
43
  printf(_("Remote port number can also be specified as range.  "
44
     "Example: '1-1024'\n"));
45
  printf("\n");
46
}

von andy_help (Gast)


Lesenswert?

Hi,
hab eben gesehen, dass das Problem mit dem Android Smartphone nur 
besteht, wenn ich die mobile Datennutzung aktiviert habe.

Jetzt ist es eine gute Frage, wie ich trotz aktiver mobilen Datennutzung 
Pakete an den tcp Server vom esp module senden kann.

von Drago S. (mratix)


Lesenswert?

andy_help schrieb:
> Jetzt ist es eine gute Frage, wie ich trotz aktiver mobilen Datennutzung
> Pakete an den tcp Server vom esp module senden kann.
Ich kann mich an Zeiten erinnern, wo Netzwerke noch Kabel hatten und der 
Computer ein komplettes Betriebssystem.

Wenn du meinst, dass deine Stock-ROM (von Google/Apple beschlagnahmt und 
kastriert) trotzdem ausreicht, dann würde ich bei netcat an den 
Optionen:
-l listen
-L tunnel
ansetzen. Insbesondere ein paar Gedanken zu listen investieren. Ob vllt. 
eine Instanz (das netcat Gegenstück) nötig ist, welches auf dem ESP 
nicht z.V. steht).

Ebenso sich an ping zu klammern ist naiv. Versuche es mal mit netstat 
-tun, traceroute, pathping, nmap, iptables -L u.ä. Diagnosetools. 
Immerhin kam ja eine schöne und wichtige Meldung: timeout.

: Bearbeitet durch User
von pumuggl (Gast)


Lesenswert?

Wenn er mit netcat zu einem auf einem Port lauschenden Server
connecten will, braucht er kein:

> -l listen
> -L tunnel

und erst recht keinen Tunnel.

Auf meinem Routerchen laeuft z.B. ein handgestrickter Server,
der das Datum und die Uhrzeit zurueckgibt:

> nc gw 49
time 06:52:11
date 22-02-2020

Damit kann ich bei "Dummsystemen" ohne NTP bequem die
Systemzeit setzen.

Scheinbar hast du netcat selber noch nicht benutzt.

> Jetzt ist es eine gute Frage, wie ich trotz aktiver mobilen Datennutzung
> Pakete an den tcp Server vom esp module senden kann.

Dazu muesste dein ESP Internetkonnektivitaet bereistellen koennen.
Ansonsten interessiert sich der Androide nicht besonders dafuer.
Mach es andersrum: Lass den ESP auf den Androiden connecten.
Der sollte dann vom Android per DHCP eine IP-Adresse bekommen.
Ohne root-Zugriff kannst du die Netzwerkinterface ja nicht
am Android vorbei konfigurieren.

von Ergo70 (Gast)


Lesenswert?

Wenn nc über das Mobilfunknetz rausgeht, wird eine 192er IP wohl kaum 
geroutet werden! Du mußt nc an das richtige, sprich WLAN, Interface 
binden (-s).

von Timo N. (tnn85)


Lesenswert?

Ergo70 schrieb:
> Wenn nc über das Mobilfunknetz rausgeht, wird eine 192er IP wohl kaum
> geroutet werden! Du mußt nc an das richtige, sprich WLAN, Interface
> binden (-s).

Und darauf deutet genau das beschriebene Fehlerbild hin. Nämlich das es 
nicht funktioniert, wenn er zusätzlich noch mit dem Mobilfunknetz 
verbunden ist.
Kenn mich zwar nicht mit Netcat aus, aber die Option -s wäre für  mich 
die Naheliegendste um das Problem zu lösen.

von Stefan F. (Gast)


Lesenswert?

andy_help schrieb:
> Warum funktioniert dies nicht mit meinem android smartphone

Weil Android kein vollwertiges Unix Betriebssystem ist, Netcat dieses 
aber erfordert. Du könntest genau so gut fragen, warum auf deinem 
Smartphone kein MS-Office läuft.

> wie bekomme ich ein brauchbares netcat Programm für android zum laufen?

Android ist keine Plattform für Entwicklung und Diagnose Tools. Da dreht 
sich alles nur darum, Java Apps ausführen zu können.

C/C++ ist bei Android nur dafür vorgesehen, zeitkritische Algorithmen 
auszulagern. Der Trend geht aber ganz eindeutig dahin, dass in C/C++ 
immer weniger geht. Zugriff auf Bluetooth geht z.B. auch nicht (ging 
früher mal).

von pumuggl (Gast)


Lesenswert?

Die -s Option braucht man eigentlich nur, wenn man ein multihomed
betriebenes Netzwerkgeraet 2 Interface hat, die in das selbe Subnetz
senden, so dass der Routingprozess nicht entscheiden kann, welches
Interface er benutzen soll. Ansonsten traegt jedes Interface sich
beim Router mit seiner Netzwerkadresse in die Routingtabelle ein.
Das reicht in der uebrigen Welt zuverlaessig dafuer, ein Geraet
das sich ebenfalls in diesem Subnetz befindet, zu erreichen.

Beispiel: Ein Geraet hat WLAN und Ethernet die im selben Subnetz
arbeiten. Will ich mit netcat jetzt per Ethernet senden, muss
ich die Sourceadresse des Ethernets angeben. Sonst entscheidet
die Metrik, die Reihenfolge der Interface oder der Zufall.

Das Android im uebrigen von der Intention nur ein Uebertrager von
S.P.A.M. mit einem gewissen Sekundaernutzen fuer den Besitzer ist,
haben hier ja andere auch schon festgestellt.

Ob die in meinem obigen Beitrag "netcat_printhelp" dargestellen
Optionen bei deinem netcat bereitstehen und auch funktionieren
musst du selber herausfinden. Die sind aus den Sourcen zu meinem
Compilat.
Auf meinem Fon startet z.B. ein sshd per Java/Android problemlos,
ist aber nicht zu erreichen, weil ihm das passende Owner-Socket
fehlt, um ihn in der Firewall freizugeben.

Abschliessend: Ohne root wuerde ich weitere Tests nicht durchfuehren.
D.H.: Roote dein Fon erstmal, dann kann man weitersehen.

von Drago S. (mratix)


Lesenswert?

Was spricht dagegen sich zuerst einmal die Routingtabelle auf dem 
Androiden anzusehen, bevor am Layer7 geschraubt oder spekuliert wird?

Die Route das 192.168.4.0/24 Subnet (vom SoftAP) dürfte an der Prorität 
kaum Einfluss haben. Sollte sich das default Gateway durch das 
Datenverbindungs-Interface prioritätsmäßig hochschieben kann ich mir 
kein Fehlrouting vorstellen.

Datenverbindung hin oder her, dafür habe ich den Punkt Tunnel 
eingebracht. Das scheint mir am logischsten, a) einem Fehlrouting 
entgegen zu wirken, b) die avisierte Mobilität sicherzustellen. Netcat 
gehört jetzt nicht zu meinen top10 Kommandos in der bash_history. Ich 
werde mich mal neugierigerweise durchkauen.

von Drago S. (mratix)


Lesenswert?

pumuggl schrieb:
> Die sind aus den Sourcen zu meinem
> Compilat.

Zeig her das Teil oder schweig still.
Protzen trägt nicht zur Problemlösung bei.
Danke.

pumuggl schrieb:
> Roote dein Fon erstmal, dann kann man weitersehen.
LOL, auch eine Möglichkeit Probleme vom Tisch zu fegen :)
Ich vertrete auch das rooting, jedoch nicht als generelle Handlung oder 
Pauschallösung für den Endanwender.

: Bearbeitet durch User
von pumuggl (Gast)


Lesenswert?

> Was spricht dagegen sich zuerst einmal die Routingtabelle auf dem
> Androiden anzusehen

Es gibt kein netstat -rn, das eine Routingtabelle ausgeben koennte.
Nur ein "cat /proc/net/route". Was mir natuerlich reicht.

Bei einer aktiven Datenverbindung, ist die selbstverstaendlich
als Route mit ihrer PPP-Adresse ins Netz 0.0.0.0 eingetragen.
Davon unbenommen ist ein aktives WLAN genauso selbstverstaendlich
ueber seine Netzadresse zu erreichen. Die steht natuerlich auch
in der Routingtable des Androiden.
Die PPP-Adressen der Datenverbindung auch.

Und zu tunneln gibt es da nichts. Dann muesste ein Gegenpart
ja eingetunnelten Traffic wieder austunneln.

Netzwerk scheint auch nicht unbedingt zu deinen
> top10
zu gehoeren.


> Zeig her das Teil

Nach den Sourcen von GNU-netcat darfst du gerne selber suchen.
Und wie bei Open-Source ueblich, darf sich das auch jeder selber 
kompilieren. Und etwaige Fehler beheben.

von pumuggl (Gast)


Lesenswert?

> nicht als generelle Handlung

Wer netcat mit allen angebotenen Optionen nutzen will,
muss root auf dem Geraet sein.
Fuer ca. die Haelfte reicht ein normaler Account mit UID>0.

Aber ein "nc -T -l -p23 -e'sh -l'" geht z.B. nur als root.
Das wirst du ja wohl kaum in Frage stellen wollen.

von Drago S. (mratix)


Lesenswert?

pumuggl schrieb:
> Netzwerk scheint auch nicht unbedingt zu deinen
>> top10
> zu gehoeren.
Nimm bitte deinen Hammer an die Leine, wenn du unter die Leute spazieren 
gehst.

Ich Klinke mich an dieser Stelle aus. Auf Hochflieger habe ich wirklich 
kein Bock.

von Stefan F. (Gast)


Lesenswert?

Mister A. schrieb:
> Was spricht dagegen sich zuerst einmal die Routingtabelle auf dem
> Androiden anzusehen, bevor am Layer7 geschraubt oder spekuliert wird?

Er hat schon mit dem Web Browser erfolgreich getestet.

von Drago S. (mratix)


Lesenswert?

Stefan ⛄ F. schrieb:
> Er hat schon mit dem Web Browser erfolgreich getestet.
Der Verlauf ist etwas irritierend. Möglich dass wir etwas weit ausgeholt 
und falsch abgebogen sind, uns auf netcat und deren Optionen und 
Parameter festgebissen haben.

Zunächst eröffnete der TO, er versuche über 192.168.0.111 an den 
(Web)Server über 5000/tcp heranzutreten. Er konnte sich erfolgreich 
"verbinden". Für mich klang das nach einem klassischen STA-Mode.
Dann kam heraus, er hätte den AP-Mode im Einsatz, welche auch die IP für 
das Smartphone geleased hätte. Einerseits spricht nichts dagegen, jedoch 
mit Ausrufezeichen ob der AP wirklich laufen soll oder ob es ein Hinweis 
auf einen nicht (fertig)konfigurierten ESP sei. In diesem Schritt kommt 
das Thema routing und Routingtabelle zum Einsatz. Wurde hier versucht 
ein forwarding vom Router (192.168.0.x) zum ESP einzurichten?
Dann wurde noch ein ATmega als Translator/Bridge erwähnt. Letztendlich 
noch der Hinweis auf die Mobile Datenverbindung via Smartphone.
Es ist gut möglich dass zwischendrinn einfach nur verschiedene Szenarien 
getestet wurden.

Letztendlich stellt es trotzdem kein Problem dar, auf dem Router 
(192.168.0.x) eine statische Route zum 182.168.4.0 via 192.168.0.111 
einzurichten und das ganze zu betreiben.

Ich bin gerne bereit weiter mitzudenken und einer Lösung für den TO 
beizusteuern. Jedoch blöd anpumpen, wie oben, lasse ich mich nicht. Wir 
machen das hier als Hobby, es soll Spaß machen.

von andy_help (Gast)


Lesenswert?

Hallo,
entschuldige, dass ich mich jetzt erst melde.
Momentan hatte ich versucht mein Smartphone huawei p30 lite zu unlocken, 
was aber nicht geklappt hatte, da mir hierzu der bootloader code  fehlt.
Erst wenn das Smartphone unlock wäre, hätte ich es rooten können.

Naja, es gibt hierzu viele Anleitungen im Netz mit dem Ergebnis 0.
Aber das unlocken u. rooten trägt ja hier nicht zum Thema bei.

Der Testaufbau:
Atmega
ESP01

Der Atmega ist mit rx u. tx mit dem esp01 Module verbunden.
Der Atmega schickt seine AT Befehle zum esp01 Module und das esp01 
Module startet ein SOFT AP.

PC:
Verbinde ich mich mit dem PC mit dem SOFT AP funktioniert alles optimal, 
was bedeutet, dass ich mich mit dem Server des ESP01 Module verbinden 
kann und er auch Daten erhält.

Smartphone:
Verbinde ich mich mit dem Smartphone mit dem SOFT AP, erhält das 
Smartphone eine IP Adresse vom SOFT AP und das war es.
Ich kann keine Daten zum Server des esp01 senden.
Weder mit netcat, noch mit dem Webbrowser.

Das aber nur, wenn zur Wlan Verbindung zum SOFT AP die mobile 
Datenverbindung aktiv ist.
Deaktiviere ich die mobile Datenverbindung, dann kann ich auch Daten zum 
Server des esp01 Module senden.

Es wäre echt cool, wenn hier jemand eine Lösung hätte, wie ich trotz 
aktiver mobilen Datenverbindung auch Daten schicken könnte.
Scheint es hier ein routing Problem der Daten zu geben?
Wenn ja, wie könnte ich das beheben?

von Drago S. (mratix)


Lesenswert?

Ich verstehe deinen Aufbau nicht. Ist das ganze eine Vorgabe oder hast 
du es, aus der Legokiste, zusammen geschustert?

Für "das Paket" gibt es keine fertige Lösung. Es sei denn du weist genau 
was du da aufbaust und wie man es kombiniert und umsetzt.

Warum muss die heutige Generation alles mögliche mit dem Smartphone und 
Mobil machen? Kennt man nichts anderes oder kann man es nicht 
einschätzen wozu der beleuchtete Klotz entwickelt wurde?

Jetzt rennst du los und rootest das Smartphone, ohne im klaren zu sein, 
was du da machst... Nur weil ein Befehl nicht möglich ist?

Wozu brauchst du einen SoftAP auf dem ESP?
Kennst du den Unterschied zwischen dem ESP SoftAp, hostap, Accesspoint, 
Router und Netzwerkgeräten?
Wozu brauchst du eine Datenverarbindung neben Wifi?
Hast du keinen PC/Laptop als Arbeitsplatz/Entwicklungsrechner?

Die einfachste Lösung: Du hast einen DSL-Router mit Accesspoint. Er 
kümmert sich um alles was das Netzwerk betrifft.
Lass den ESP dahin verbinden und gut ist.
Entwickle deine Projekte auf einem "Personal Computer" mit einem 
richtigen Betriebssystem.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

andy_help schrieb:
> Das aber nur, wenn zur Wlan Verbindung zum SOFT AP die mobile
> Datenverbindung aktiv ist.
> Deaktiviere ich die mobile Datenverbindung, dann kann ich auch Daten zum
> Server des esp01 Module senden.

Klingt nach einem Bug im Betriebssystem des Smartphones. Das muss out of 
the box gehen - ist bei meinen Geräten auch der Fall. Ich hatte eher ab 
und zu Probleme mit der Anmeldung am SoftAP.

> Wenn ja, wie könnte ich das beheben?

Anderes Smartphone nehmen. Fehler vom Smartphone mit seiner 
closed-firmware kannst nicht auf dem ESP lösen, der ebenfalls eine 
closed-firmware hat. Das sind beides Plug&Pray Systeme.

von Stefan F. (Gast)


Lesenswert?

Mister A. schrieb:
> kann man es nicht einschätzen wozu der beleuchtete Klotz entwickelt wurde?

Ich denke das ist der Punkt.

Meine Tochter wollte partout nicht einsehen, dass es eine ganz dumme 
Idee ist, auf dem Smartphone den ganzen Tag lang Streaming-Video zu 
schauen (und zugleich immer abwechselnd alle 90 Minuten den Akku wieder 
aufladen).

Am Ende des Tages meinte sie nur: Mein Smartphone ist ganz heiß, kannst 
du etwas dagegen tun?

von Drago S. (mratix)


Lesenswert?

Stefan ⛄ F. schrieb:
> Klingt nach einem Bug im Betriebssystem des Smartphones.
Muss nicht sein.
Zumindest in AOSP Vanilla, Cyanogen, Lineage u.a. gibt es in den 
Settings die Möglichkeit Datenverbindungen priorisiert bzw. hart zu 
behandeln. Zudem auch noch jede App für die Datenverbindung + 
Hintergrunddaten per default einen Freifahrtschein hat.
Das hat dann Auswirkungen über welches Interface bzw. Route es hinaus 
geht. Genauer gesagt, wird gerne eine Datenverbindung aufgebaut und 
schon ist Wifi und LAN ade.
Seit geraumer Zeit wird eh daran gearbeitet, lokale Netzwerke so 
umzumodeln, dass möglichst alle Anfragen ins Inet fließen.
So ein altmodisches lokales Netzwerk, mit DNS, Intranet und Co zu 
betreiben wird immer anstrengender.

Stefan ⛄ F. schrieb:
> Am Ende des Tages meinte sie nur: Mein Smartphone ist ganz heiß, kannst
> du etwas dagegen tun?
Ein neues, schnelleres, mit nochmal doppelt Kernen kaufen :)
... Und die Energieversorger jubeln noch kräftiger.

: Bearbeitet durch User
von Timo N. (tnn85)


Lesenswert?

Verstehe euch nicht. Warum hinterfragt ihr die Anforderungen des TOs?

Mister A. schrieb:
> Warum muss die heutige Generation alles mögliche mit dem Smartphone und
> Mobil machen?

Weil Sie eben diese Art des Umgangs als angenehmer empfindet. Der Markt 
verlangt das scheinbar. Ist auch nicht mein Lieblings-Endgerät, aber ich 
kann zumindest verstehen, warum es viele gibt, die damit lieber umgehen.
Du machst für mich den Eindruck als würdest du dich sehr gut auskennen, 
also hilf ihm doch einfach mit seinem Anliegen oder gebe ihm hinweise, 
wie er eine Lösung finden könnte.

> Wozu brauchst du einen SoftAP auf dem ESP?
Vielleicht will er den Aufbau irgendwo mobil und Akku einsetzen. Der ESP 
bietet mit seinem Deepsleep Mode schließlich diese Möglichkeit an. 
Vielleicht handelt es sich um irgendeine Art von Sensor, der ausgelesen 
werden muss. Aber das ist nur Spekulation. Du kennst seine Anwendung 
doch gar nicht. Warum meinst du, dass ein Router in der Nähe ist und er 
den Station Mode einsetzen kann?
> Wozu brauchst du eine Datenverarbindung neben Wifi?
Warum jedes mal die mobile Datenverbindung am Handy deaktivieren, wenn 
es technisch auch so gehen sollte?
> Hast du keinen PC/Laptop als Arbeitsplatz/Entwicklungsrechner?
Wieder das gleiche Problem: Wenn er den Aufbau mobil einsetzt, ergibt es 
Sinn sich mit dem Handy verbinden zu wollen. Du schleppst deinen PC ja 
auch nicht mit dir rum.

An den TO: Hier scheint jemand ein ähnliches Problem zu haben:

https://administrator.de/forum/android-routing-wifi-netzwerkschnittstelle-mobiler-datenverbindung-518949.html


Sorry an den TO, aber ich bin bei dem Thema kein Experte und kann dir 
nicht weiterhelfen. Aber vielleicht hilft dir das weiter nach einer 
Lösung zu suchen.

von Drago S. (mratix)


Lesenswert?

Timo N. schrieb:

Ja du hast Recht. Warten wir auf Antwort vom TO.
Mir schien es so, als könne er (anhand der Fragestellung) nicht so gut 
mit den vorhandenen Werkzeugen umgehen.

> Hier scheint jemand ein ähnliches Problem zu haben:
>
> 
https://administrator.de/forum/android-routing-wifi-netzwerkschnittstelle-mobiler-datenverbindung-518949.html
Wenn es eine FritzBox ist, ist er im Gästebereich/Gastnetz 192.168.179.0 
gelandet. Da ist vieles isoliert, was auch Sinn macht. Internetzugang 
sollte grundsätzlich möglich sein. Außer man hat in der Kindersicherung 
weitere Restriktionen (Blacklist) mit Regeln (Portblocking) erstellt, 
was ebenfalls Sinn macht, dieses Segment weitestgehend einzuschränken...

Wenn der TO tatsächlich das ganze mobil betreiben möchte, ergänze ich 
o.g. Vorschlag um folgende Punkte:
- DynDNS einrichten
- ggf. VPN Zugang einrichten
- DNS Domain rebind eintragen
- DNS Filter (Pihole) empfehlenswert (um wildes treiben des Smartphones 
etwas einzudämmen)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Timo N. schrieb:
> Vielleicht will er den Aufbau irgendwo mobil und Akku einsetzen. Der ESP
> bietet mit seinem Deepsleep Mode schließlich diese Möglichkeit an.

Deep-Sleep und SoftAP schließen sich gegenseitig aus - zumindest 
praktisch gesehen.

> Warum jedes mal die mobile Datenverbindung am Handy deaktivieren,
> wenn es technisch auch so gehen sollte?

Daran hätte ich auch keine Freude.

Vielleicht muss man den "Intelligenten Netzwechsel" deaktivieren, das 
gibt's bei Samsung. Habe ich aber sehr früh deaktiviert, weil es den 
Akku belastet.

von andy_help (Gast)


Lesenswert?

Hm, wenn meine mobile Datenverbindung und das Wlan aktiv ist, so ist die 
mobile Datenverbindung mit meinem Telefonanbieter u. das Wlan mit dem 
soft ap des esp01 Module verbunden.

Gibt es nicht irgend eine Möglichkeit, dass ich von der IP Adresse 
192.168.4.2 der Wlan Karte des Smartphones alles zur IP Adresse des 
esp01 192.168.4.1 umleite?

Anscheinend leitet er ja momentan alles von 192.168.4.2 Richtung 
Internet um, sonst könnte ich ja tcp bzw. udp pakete zum esp01 schicken.

Wiegesagt...deaktiviere ich die mobile Datenverbindung, dann 
funktioniert es.

von Timo N. (tnn85)


Lesenswert?

Stefan ⛄ F. schrieb:
> Deep-Sleep und SoftAP schließen sich gegenseitig aus - zumindest
> praktisch gesehen.

Jetzt wo du es sagst...Macht natürlich gar keinen Sinn.

andy_help schrieb:
> Gibt es nicht irgend eine Möglichkeit, dass ich von der IP Adresse
> 192.168.4.2 der Wlan Karte des Smartphones alles zur IP Adresse des
> esp01 192.168.4.1 umleite?

Wie gesagt: Nennt sich "Routing" und die Regeln dafür müssen befolgt 
werden. Ich kenne mich zu wenig damit aus, aber wenn du eine Möglichkeit 
findest, berichte doch bitte. So wie es sich anhört, hängt es auch vom 
Handymodell ab?

Hier noch was dazu:
https://github.com/esp8266/Arduino/issues/5314

von andy_help (Gast)


Lesenswert?

Hi, ich hab mir die App udp/TCP widget installiert. Dort kann man sich 
mehrere udp bzw TCP Regeln erstellen, die man bei einer IP Adresse und 
Port ausführen soll.
Das schöne daran ist, dass man sich widgets erstellen kann.
Wegen dem routing werde ich heute Abend noch einmal paar Sachen 
ausprobieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.