Hallo an alle ich bin gerade eher zufällig auf diesen Beitrag gestoßen: Beitrag "Daten von ESP32 an Fritzbox senden - FTP oder SMB?" und sehe hier ein vergleichbares Projekt zu meinem aktuellen Projekt und einen Teil meiner Probleme beschrieben. Da besagter Beitrag zu alt ist, folge ich der Empfehlung, einen neuen Beitrag zu erstellen. Ich bin dabei, mit einem ESP32 Modul (Arduino IDE) einen Datenlogger zu entwickeln, der seine Messwerte periodisch an einen FTP Server übermittelt. Das Ganze funktioniert seit einigen Wochen ganz ordentlich, jedoch nicht ganz so, wie ich es mir vorgestellt hatte: leider ist es mir bisher nicht gelungen, die Daten per FTP auf meiner Fritzbox 7590 abzulegen. Ich musste auf einen anderen FTP-Server umsteigen und benutze derzeit meinen Webspace bei einem deutschen Provider. Natürlich wäre mir sehr viel lieber, wenn ich meine Datenpakete im Hausnetz halten könnte, aber dafür müsste ich ein weiteres Gerät permanent am Laufen halten, was ich aus diversen Gründen nicht möchte. Die Fritzbox ist ohnehin da und permanent aktiv. Nur leider funktioniert sie nicht, wie sie soll und nach wie vor habe ich keine Lösung. Es ist übrigens keinerlei Problem, so wie weiter oben schon vorgeschlagen, per FTP weitere Daten an eine vorhandene Datei anzuhängen (APPE). In meinem Projekt wird alle 12 Stunden eine neue Datei angelegt. Nun habe ich die Frage, ob es schon jemandem gelungen ist, per FTP Daten aus einem ESP32 Modul in eine Datei auf dem NAS einer Fritzbox zu schreiben und falls ja, wie man die Fritzbox dazu bringt, das zu ermöglichen? Vielen Dank Dieter
Was passiert denn, wenn Du Dich mit einem normalen Computer mit dem NAS auf der Fritzbox verbinden möchtest? Funktioniert das oder führt da auch zu Problemen?
Mit meinem Laptop kann ich mich problemlos mit dem NAS der Fritzbox verbinden (mit Filezilla-FTP). Ebenso kann das ESP32 Modul mit den FTP Servern auf meinem Webspace oder auf anderen PCs in unserem Hausnetz zugreifen. Einzig die Kombination ESP-Modul <--> Fritzbox-NAS via FTP geht nicht. Das Ganze läuft übrigens unverschlüsselt ab. Heute habe ich außerdem den FTP-Zugriff auf eine andere Fritzbox (7390) getestet: identisches Problem! Außerdem habe ich einen Test mit einer anderen ESP32-FTP-Library gemacht: auch hier das identische Problem. Für mich sieht es so aus, als ob es eine Inkompatibilität zwischen den ESP-Modulen und den Fritzboxen gibt, die andere FTP Clients bzw. Server ignorieren.
:
Bearbeitet durch User
Du koenntest es einmal mit ein Modeumschaltung "ACTIVE/PASSIVE" probieren. Wie das in deiner Library geht, musst du selbst herausfinden. Ob die FBox das unterstuetzt, kannst du mit einem PC FTP-Client leicht herausfinden. Der Befehl ist "remotehelp". Da sollte dann z.B. ein "PASV" in der Liste auftauchen.
Ansonsten geh halt Mal auf die Capture Seite deiner Fritzbox und schneide den Traffic in beiden Fällen mit. Dann sollte man schnell den Unterschied rausfinden.
Damit habe ich mich schon einige Zeit beschäftigt. Leider schneidet die Fritzbox nur den Verkehr nach außen (WAN) mit, die FTP Zugriffe auf das NAS sind nicht im Datenstrom enthalten. Nun suche ich noch nach einer Lösung, wie ich den Datenverkehr zwischen desm ESP32 und der Fritzbox mitschneiden könnte. Das scheint nur direkt auf einer Leitung zwischen dem ESP und der Fritzbox zu gehen. Alle Switches dazwischen scheinen die ESP Pakete abzublocken. Ich habe zwischen dem ESP32 und der Master-Fritzbox noch eine ältere Fritzbox (7390), doch da die im AP-Modus betrieben wird, zeichnet sie keinen IP Traffic auf. Auch Versuche, den internen Datenverkehr durch einen Laptop zu leiten, waren bisher nicht erfolgreich. Nun möchte ich noch einen Versuch mit einem Laptop und der SW 'MyPublicWiFi' und einem Wireshark machen. Allerdings wird das noch etwas dauern. Habt Ihr noch eine andere idee? @Motopick: Dann versuche ich auch zwischen Active/Passive umzuschalten. Bisher wird alles im FTP Passive Mode gemacht. Da muss ich erst rausbekommen, wie das bei der verwendeten ESP-FTP-Lib <FTPClient_Generic.h> geht. Danke, Dieter
Dieter K. schrieb: > Nun suche ich noch nach einer > Lösung, wie ich den Datenverkehr zwischen desm ESP32 und der Fritzbox > mitschneiden könnte. Macht wireshark nicht genau das? https://www.wireshark.org/docs/wsug_html_chunked/ChapterCapture.html Ich habe damit noch nie gearbeitert, sondern immer nur was darüber gelesen.
Dieter K. schrieb: > Leider schneidet die > Fritzbox nur den Verkehr nach außen (WAN) mit Also ich kann da auswählen was ich haben möchte (siehe Bild). Dieter K. schrieb: > Nun suche ich noch nach einer > Lösung, wie ich den Datenverkehr zwischen desm ESP32 und der Fritzbox > mitschneiden könnte Sollte es bei deiner FritzBox nicht gehen mach halt einen AP dazwischen. Dann kommt es über LAN in die FB.
Bevor man da mit Wireshark und extra-Hardware dazwischen drangeht: Einfach mal von Hand testen. FTP ist ein altes, textbasiertes Protokoll. Das kann man wunderbar mit dem telnet-client testen. Also: Zwei Konsolen-Fenster aufmachen. Im ersten: telnet fritz.box 21 USER Username PASS Password HELP PASV APPE example.csv --> Meldet per "Entering Passive Mode" wohin du verbinden sollst. Die angegebene IP wird die der Fritz-Box sein, Portnummer ist interessant, sind die letzten beiden Zahlen (vorletzte mal 256+letzte) Damit in der zweiten Konsole noch eine Telnet-Session aufmachen. Alles was du da tippst, wird an example.csv angehängt. Wenn das so "von Hand" funktioniert: Fritzbox ist nicht schuld, es ist deine FTP-Implementation auf dem ESP. Dort weitersuchen.
Den Vorschlag von @mani habe ich mal verwendet, um den Netzwerkverkehr zwischen z.B. ESP32 über einen auf dem PC laufenden Access Point umzuleiten. Dann sollte man den Netzwerkverkehr zwischen dem PC und der Fritzbox mit Wireshark mitschneiden können. Windows 10: Hotspot einrichten https://www.giga.de/downloads/virtual-router/tipps/laptop-als-hotspot-einrichten-so-gehts/ Enter: netsh wlan show drivers If a usable WLAN Adapter is connected you see the properties. Create a WLAN Accesspoint on your PC: netsh wlan set hostednetwork mode=allow ssid=VirtualWiFi key=xxxxxxxxxx keyUsage=persistent Start the Accesspoint: netsh wlan start hostednetwork Dann: Aktuell genutzten Netzwerkadapter auf Teilen der Internetverbindung einstellen Falls Schwierigkeiten aufkommen, könnte ich noch eine hausgemachte Anleitung mit möglichen pitfalls zur Verfügung stellen. Ich selbst bin dazu übergegangen, meine Sensordaten auf Azure Storage Tables zu speichern, das funktioniert gut und ist preiswert.
Dieter K. schrieb: > Damit habe ich mich schon einige Zeit beschäftigt. Leider schneidet die > Fritzbox nur den Verkehr nach außen (WAN) mit, die FTP Zugriffe auf das > NAS sind nicht im Datenstrom enthalten. Unsinn. Du kannst die FB an jedem beliebigen Interface zur Protokollierung lauschen lassen. Natürlich auch am LAN- oder WLAN-Interface. Du musst ihr einfach nur sagen, welches Interface sie protokollieren soll. Nunja, die von den Entwicklern gewählten Interface-Namen sind leider nicht unbedingt selbsterklärend. Das hätte man für ein Consumer-Produkt sicher besser lösen können. Aber auch dann gilt: notfalls bekommt man das mit simplem Probieren sehr schnell heraus. Wenn man das tatsächlich will... > Alle Switches dazwischen scheinen die > ESP Pakete abzublocken. Wenn das wirklich so ist, sind sie wohl falsch konfiguriert. Oder die Pakete sind schlicht kaputt und werden deshalb zu recht von den Switches gedropped. Glaube ich aber beides nicht, weil: nach deiner eigenen Aussage hast du ja gar keine Möglichkeit gefunden, den Traffic am LAN-Interface zu loggen. > @Motopick: Dann versuche ich auch zwischen Active/Passive umzuschalten. > Bisher wird alles im FTP Passive Mode gemacht. Und das reicht auch völlig, denn der FTP-Server der FB unterstützt nur den Passiv-Mode.
Die Switche machen genau das, wofür sie gebaut wurden - sie schicken Packe ausschließlich dort hin, wo sie auch hin sollen. Sprich auf den anderen Ports sind sie nicht sichtbar. Man kann entweder einen alten Hub dazwischenbauen, dieser "switcht" halt nicht, sondern er schickt stumpf alle irgendwo empfangenen Pakete auf allen anderen Ports wieder raus. Oder man hat einen guten managed Switch, bei diesen gibt es oft Möglichkeiten, den Datentransfer eines Ports auf einen anderen weiterzuleiten. Dann kann man mittels Wireshark mitlauschen. Alternativ, falls es eine WLAN-Verbindung ist braucht man eine WLAN-Karte, die Monitor-Mode unterstützt, sprich alle empfangenen Pakete weiterreicht.
Ben B. schrieb: Sorry für die späte Antwort, ich war gestern in Sachen Familie beschäftigt. > Die Switche machen genau das, wofür sie gebaut wurden - sie schicken > Packe ausschließlich dort hin, wo sie auch hin sollen. Sprich auf den > anderen Ports sind sie nicht sichtbar. > > Man kann entweder einen alten Hub dazwischenbauen ... Danke für die Bestätigung. Davon war ich ausgegangen. Leider habe ich keinen alten LAN Hub mit RJ45, nur noch für Coax Kabel :-) Einen 'managed Switch' möchte ich mir deshalb (noch) nicht anschaffen.
Rahul D. schrieb: > Macht wireshark nicht genau das? > https://www.wireshark.org/docs/wsug_html_chunked/ChapterCapture.html Doch, dafür ist Wireshark da und macht er auch. Allerdings muss der gesuchte Datenverkehr auch im vorhandenen Datenstrom drin sein und genau da hapert es leider. Ich hoffe jedoch, mit den weiteren Ideen der Kollegen weiter zu kommen.
N. M. schrieb: > Also ich kann da auswählen was ich haben möchte (siehe Bild). > > Dieter K. schrieb: >> Nun suche ich noch nach einer >> Lösung, wie ich den Datenverkehr zwischen desm ESP32 und der Fritzbox >> mitschneiden könnte > > Sollte es bei deiner FritzBox nicht gehen mach halt einen AP dazwischen. > Dann kommt es über LAN in die FB. Danke Mani, mir war diese Auswahlliste (Dein Screenshot) schon aufgefallen, aber ich wusste nicht, was ich damit anfangen sollte. Nun habe ich große Hoffnung, dass eine der Auswahlmöglichkeiten die Aufzeichnung dann doch ermöglicht. Ich konnte das aber heute noch nicht testen. Das mit dem AP ist ja schon mit der zwischengeschalteten 7390 realisiert, aber ich komme mit meinem Laptop nicht an den Datenstrom zwischen den beiden Fritzboxen ran (LAN Kabel, siehe auch 'Hub' in einem früheren Beitrag). Vielleicht klappt es aber doch noch, wenn ich ein geeignetes Interface in der Master-Fritzbox (7590) finde. Sollte das nicht klappen, hoffe ich, die als AP konfigurierte FB 7390 doch noch als Router konfigurieren und dann die eingebaute Capture Funktion nutzen zu können.
Εrnst B. schrieb: > Bevor man da mit Wireshark und extra-Hardware dazwischen drangeht: > > Einfach mal von Hand testen. FTP ist ein altes, textbasiertes Protokoll. > Das kann man wunderbar mit dem telnet-client testen. Danke Ernst, das hört sich sehr interessant an und ich werde es baldmöglichst testen.
Roland S. schrieb: > Den Vorschlag von @mani habe ich mal verwendet, um den Netzwerkverkehr > zwischen z.B. ESP32 über einen auf dem PC laufenden Access Point > umzuleiten. Dann sollte man den Netzwerkverkehr zwischen dem PC und der > Fritzbox mit Wireshark mitschneiden können. > > Windows 10: Hotspot einrichten > https://www.giga.de/downloads/virtual-router/tipps/laptop-als-hotspot-einrichten-so-gehts/ Danke Roland, mit einem virtuellen Hotspot habe ich auch schon experimentiert und nach anfänglichen Problemen (bei meinem Laptop läuft das nicht, vermutlich ist der eingebaute WLAN Adapter nicht geeignet), aber auf einem anderen Laptop lief es, jedoch funktionierte damit mein ESP Modul nicht und ich habe das vorerst wieder zurückgestellt, ohne das Problem weiter zu untersuchen. Sollte ich mit den anderen Lösungen nicht zum Ziel kommen, werde ich das aber nochmals angehen.
Dieter K. schrieb: > aber auf einem anderen > Laptop lief es, jedoch funktionierte damit mein ESP Modul nicht und ich > habe das vorerst wieder zurückgestellt, ohne das Problem weiter zu > untersuchen. Soweit ich mich erinnere, war es wichtig, das Protokoll für den virtuellen Hotspot in den Adaptereinstellungen auf IPV4 festzulegen (IPV6 deaktivieren und neu booten). Ich habe dir mal einen Link auf meine damaligen Notizen als PM geschickt.
Εrnst B. schrieb: > Bevor man da mit Wireshark und extra-Hardware dazwischen drangeht: > > Einfach mal von Hand testen. FTP ist ein altes, textbasiertes Protokoll. > Das kann man wunderbar mit dem telnet-client testen. > > Also: Zwei Konsolen-Fenster aufmachen. > Im ersten: Hallo Ernst, nachdem ich nun einige Zeit in dieses Problem investiert habe und zum Schluss gekommen bin, das es höchstwahrscheinlich ein Problem in der Fritzbox gibt, da ich mit dem ESP keinerlei Fileoperationen ausführen kann (auf anderen FTP-Servern sehr wohl) habe ich Deinen Vorschlag aufgegriffen und mich per Telnet (PUTTY) an der Fritzbox angemldet und bin da doch sehr schnell über Rechteprobleme gestolpert. Mit meinem User war ich nicht in der Lage irgendeine Datei anzulegen oder zu löschen. Dann habe ich weitere Versuche mit Filezilla gemacht und habe da teilweise ähnliche Beobachtungen gemacht. Entweder ich bin zu blöd, um dieses (doch recht einfache) Protokoll zu verstehen, oder irgendetwas stimmt da nicht. Natürlich habe ich bei meinem FTP-User auf der Fritzbox diverse Einstellungen ausprobiert. Ich werde das nun erst mal mit AVM diskutieren und hoffe, dabei der Lösung näher zu kommen. Einen Fehler in meinem Sketch konnte ich bisher noch nicht entdecken, was mich auch wundern würde, da dieser Sketch mit einigen anderen FTP Servern problemlos zusammenarbeitet. Ich kann übrigens inzwischen auch mit der Fritzbox den Datenverkehr mitschneiden. Da war der Hinweis von Mani und anderen doch sehr hilfreich und hat mich auf die Spur des Problems gebracht. Vielen Dank dafür!
Es gibt erneute erfreuliche Neuigkeiten: nachdem ich inzwischen annehme, dass das Problem in der Rechteverwaltung der Fritzbox bei einem FTP Zugriff liegt, habe ich Versuche mit einem FTP Server auf einem anderen PC in unserem Hausnetzwerk gemacht und nachdem die Versuche vielversprechend waren, nun auf meinem Android Smartphone einen FTP Server eingerichtet. Zu meiner Freude läuft dieser nun schon geraume Zeit ohne irgendwelche Probleme (mit dem Originalsketch). Allerdings musste ich dazu in einer Lib Datei den FTP-Port ändern, da der Port 21 auf den Android Apps offenbar nicht verwendbar ist. Nun habe ich das Problem an den AVM Support adressiert und bin gespannt, was die dazu sagen. Viele Grüße und eine schöne Woche Dieter
Dieter K. schrieb: > Nun habe ich das Problem an den AVM Support adressiert und bin gespannt, > was die dazu sagen. Wäre es ein generelles Problem der Fritzbox, wäre es schon Hundertfach aufgetreten. Warum probierst du nicht erst einmal die einfachste Fehlersuche ohne Spezialsoftware und Geräte? Mach in Windows ein DOS-Fenster auf und dann probiere mit dem Windows ftp den Dialog mit der Fritzbox. Fehlermeldungen kommen dann in Klartext. Sollte dann alles funktionieren, nimm den seriellen Monitor des ESP32 und sieh dir dort die Befehle und Rückmeldungen an.
Ich habe ja keine Ahnung, aber wenn ich versuche in der Fritzbox 7490 -> Internet -> Freigaben -> Fritz!Box-Dienste anklickere, bekomme ich folgenden Text:
1 | [] Internetzugriff auf Ihre Speichermedien über FTP/FTPS aktiviert |
2 | |
3 | Diese Option ermöglicht den Zugriff auf die Speichermedien an der FRITZ!Box aus dem Internet. Zugang haben alle FRITZ!Box-Benutzer, denen im Menü "System > FRITZ!Box-Benutzer" die Rechte "Zugang auch aus dem Internet erlaubt" und "Zugang zu NAS-Inhalten" eingeräumt wurden. |
von Zugriff auf den Heimnetz wird da nichts geschrieben. Und latuernich: telnet ist Dein Freund, und gerade FTP ist wunderbar zu debuggen.
Mitschnitt eines Beispiels: C:\Users\Georg>ftp ftp> open 192.168.2.1 Verbindung mit 192.168.2.1 wurde hergestellt. 220 FTP server ready. 530 Please login with USER and PASS. Benutzer (192.168.2.1:(none)): Georg 331 Password required for Georg. Kennwort: 230 User Georg logged in. ftp> dir 200 PORT command sucessful. 150 Opening ASCII mode data connection for '/bin/ls -lgA'. drwxrwxr-x 2 ftp ftp 312 Mar 2 2023 Bilder drwxrwxr-x 2 ftp ftp 384 Jun 30 2023 Dokumente drwxr-xr-x 4 ftp ftp 376 Jan 1 1970 FRITZ drwxrwxr-x 2 ftp ftp 232 Dec 16 2011 Musik drwxrwxr-x 2 ftp ftp 312 Dec 16 2011 Videos 226 Transfer complete. FTP: 229 Bytes empfangen in 0.01Sekunden 45.80KB/s ftp> cd Bilder 250 CWD command successful. ftp> dir 200 PORT command sucessful. 150 Opening ASCII mode data connection for '/bin/ls -lgA'. -rw-rw-r-- 1 ftp ftp 30192 Dec 1 2011 FRITZ-Picture.jpg -rw-rw-rw- 1 ftp ftp 393252 Apr 2 2019 Show1.jpg 226 Transfer complete. FTP: 112 Bytes empfangen in 0.00Sekunden 37.33KB/s ftp> get show1.jpg 200 PORT command sucessful. 550 show1.jpg: No such file or directory. ftp> get Show1.jpg 200 PORT command sucessful. 150 Opening ASCII mode data connection for 'Show1.jpg' (393252 bytes). 226 Transfer complete. FTP: 394685 Bytes empfangen in 0.25Sekunden 1591.47KB/s ftp> Beachte, dass Filenamen Case sensitiv sind!
:
Bearbeitet durch User
Thomas W. schrieb: > von Zugriff auf den Heimnetz wird da nichts geschrieben. Dafür braucht der Benutzer nur das Recht zum Zugriff auf Medieninhalte, nicht aber das Recht, auch aus dem Internet darauf zugreifen zu können.
Georg G. schrieb: > Wäre es ein generelles Problem der Fritzbox, wäre es schon Hundertfach > aufgetreten. Wer nutzt schon eine FRITZ!box als ftp-Server mit einem ESP32 als Client? Vom PC aus hat’s ja funktioniert. Oliver
Georg G. schrieb: > Dieter K. schrieb: >> Nun habe ich das Problem an den AVM Support adressiert und bin gespannt, >> was die dazu sagen. > > Wäre es ein generelles Problem der Fritzbox, wäre es schon Hundertfach > aufgetreten. > Warum probierst du nicht erst einmal die einfachste Fehlersuche ohne > Spezialsoftware und Geräte? > Mach in Windows ein DOS-Fenster auf und dann probiere mit dem Windows > ftp den Dialog mit der Fritzbox. Fehlermeldungen kommen dann in > Klartext. Sollte dann alles funktionieren, nimm den seriellen Monitor > des ESP32 und sieh dir dort die Befehle und Rückmeldungen an. Sorry, dass ich so spät antworte. Leider hatte ich in den letzten Tagen sehr wenig Zeit für weitere Untersuchungen. Den Telnetzugang hatte ich natürlich auch ausprobiert und auch der hat bei genauerem Hinsehen im Arbeitsverzeichnis des FTP nicht funktioniert, genauso wenig wie der FTP Zugang mit Filezilla. Die Fehlermeldungen haben immer auf ein Rechteproblem hingedeutet, aber ich konnte es nicht lösen. Inzwischen ist es gelöst, aber bei Weitem nicht verstanden. Ich darf die generelle Freigabe aller NAS-Verzeichnisse nicht verwenden. Da gehen einzelne Verzeichnisse, andere nicht, z.B. geht das gewählte Arbeitsverzeichnis nicht. Erst als diese Freigabe gelöscht habe und nur gezielt nur das Arbeitsverzeichnis freigegeben habe, hat es funktioniert. AVM hat inzwischen auch nur lakonisch festgestellt, dass ihrer Meinung nach alles bei meiner Fritzbox in bester Ordnung sei. Auf meine Fragen zu den Zugangsrechten sind sie überhaupt nicht eingegangen. Nun bin ich zwar einen Schritt weiter, aber nach wie vor ist die FTP Funktion der Fritzbox für meine Anwendung unbrauchbar: es wird zwar eine Verbindung aufgebaut, eine Datei angelegt und kann beschrieben werden. Jedoch treten innerhalb der ersten maximal 10 Schreibvorgänge Fehler auf, die dazu führen, dass die Verbindung abbricht und der eingebaute Watchdog einen Restart des ESP auslöst. Die Ursache dieser Fehler konnte ich bisher nicht ergründen. Nach wie vor kann der ESP mit exakt dem gleichen Sketch problemlos auf dem FTP-Server auf meinem Webspace loggen oder auch innerhalb meines Hausnetzes auf dem FTP-Server auf einem meiner alten Android Smartphones.
Thomas W. schrieb: > Ich habe ja keine Ahnung, aber wenn ich versuche in der Fritzbox 7490 -> > Internet -> Freigaben -> Fritz!Box-Dienste anklickere, bekomme ich > folgenden Text: > >
1 | > [] Internetzugriff auf Ihre Speichermedien über FTP/FTPS aktiviert |
2 | > |
3 | > Diese Option ermöglicht den Zugriff auf die Speichermedien an der |
4 | > FRITZ!Box aus dem Internet. Zugang haben alle FRITZ!Box-Benutzer, denen |
5 | > im Menü "System > FRITZ!Box-Benutzer" die Rechte "Zugang auch aus dem |
6 | > Internet erlaubt" und "Zugang zu NAS-Inhalten" eingeräumt wurden. |
7 | > |
> > von Zugriff auf den Heimnetz wird da nichts geschrieben. Ich glaube nicht, dass man das so eng sehen muss und gehe davon aus, dass der Fritzbox egal ist, ob man FTP von außerhalb oder vom Hausnetz aus nutzen möchte. In den meisten Fällen geht es auch problemlos, aber eben nicht mit meinen ESP Modulen. Wie schon vorher geschrieben, habe ich auch mit Telnet geabeitet, aber nennenswert weitergeholfen hat es mir leider nicht.
Oliver S. schrieb: > Georg G. schrieb: >> Wäre es ein generelles Problem der Fritzbox, wäre es schon Hundertfach >> aufgetreten. > > Wer nutzt schon eine FRITZ!box als ftp-Server mit einem ESP32 als > Client? > Vom PC aus hat’s ja funktioniert. > > Oliver Ich denke, das ist das Hauptproblem. Ich habe mich nun mal dafür entschieden, meine Messdaten per FTP zu loggen und sehe ja, dass es mit anderen Servern funktioniert und würde schon gerne verstehen, weshalb es mit der Fritzbox einfach nicht funktionieren will. Wie schon erwähnt, läuft das alles ja schon seit etwa einem Jahr mit dem externen FTP Server. Nur die Idee, die Daten lokal auf meiner Fritzbox zu speichern, war bisher noch nicht umsetzbar.
Dieter K. schrieb: > Ich darf die generelle > Freigabe aller NAS-Verzeichnisse nicht verwenden. Warum nicht? Jeder andere kann das. > AVM hat inzwischen auch nur lakonisch festgestellt, dass ihrer Meinung > nach alles bei meiner Fritzbox in bester Ordnung sei. Womit sie wohl Recht haben, da du der einzige Honk bist, der da ein Problem hat. > Auf meine Fragen > zu den Zugangsrechten sind sie überhaupt nicht eingegangen. Da gibt's auch überhaupt kein Problem. Entweder der User hat das Recht zum Zugriff auf eine bestimmtes Medium oder er hat es nicht. Dementsprechend ist das Ergebnis. Und das funktioniert so. Bei Millionen von Leuten. Nur bei dir nicht. Sollte dir das nicht zu denken geben? > Nun bin ich zwar einen Schritt weiter, aber nach wie vor ist die FTP > Funktion der Fritzbox für meine Anwendung unbrauchbar: es wird zwar eine > Verbindung aufgebaut, eine Datei angelegt und kann beschrieben werden. > Jedoch treten innerhalb der ersten maximal 10 Schreibvorgänge Fehler > auf, die dazu führen, dass die Verbindung abbricht und der eingebaute > Watchdog einen Restart des ESP auslöst. Das ist natürlich ein Problem deines offensichtlich fehlerhaften ESP-Programms. Ganz egal, wie falsch sich die FB verhalten mag (tut sie nicht), ein Watchdog-Reset ist definitiv ein Hinweis auf eine schwere Fehlfunktion im Client. Denn wie auch immer der Host reagiert, darf natürlich beim Client niemals ein Reset herauskommen. Sprich: der Client ist KAPUTT. Du kannst offensichtlich nicht wirklich programmieren. Nur zusammengeklauten Code sinnlos-mechanisch zusammenkleben. Und die FB soll dann Schuld sein...
Um das Problem zu untersuchen (falls tatsächlich Interesse daran bestehen sollte), könnte man mit Wireshark den Netzwerktraffic aufzeichnn und sich ansehen, was passiert. Dann könnte man die Kommunikation mit einem anderen FTP-Server aufzeichnen und vergleichen. Klar, dazu muss man natürlich auch das FTP-Protokoll an sich verstehen, aber das ist in RFC 959 dokumentiert. Für einen ersten Überblick aber genügt auch https://de.wikipedia.org/wiki/File_Transfer_Protocol
Harald K. schrieb: > Um das Problem zu untersuchen (falls tatsächlich Interesse daran > bestehen sollte), könnte man mit Wireshark den Netzwerktraffic > aufzeichnn und sich ansehen, was passiert. Hatte ich auch schon vorgeschlagen: Rahul D. schrieb: > Dieter K. schrieb: >> Nun suche ich noch nach einer >> Lösung, wie ich den Datenverkehr zwischen desm ESP32 und der Fritzbox >> mitschneiden könnte. > > Macht wireshark nicht genau das? > https://www.wireshark.org/docs/wsug_html_chunked/ChapterCapture.html > > Ich habe damit noch nie gearbeitert, sondern immer nur was darüber > gelesen. Wurde aber als undurchführbar wegen des Routings per Netztwerk-Switch abgetan.
Ob S. schrieb: > Dieter K. schrieb: > >> > Womit sie wohl Recht haben, da du der einzige Honk bist, der da ein > Problem hat. > > > > Du kannst offensichtlich nicht wirklich programmieren. Nur > zusammengeklauten Code sinnlos-mechanisch zusammenkleben. Und die FB > soll dann Schuld sein... Auch wenn Du möglicherweise Recht hast mit den technischen Ursachen, so hast Du aber kein Recht jemanden „Honk“ zu nennen, bzw. In dieser Tonart hier zu schreiben. Christian
Rahul D. schrieb: > Wurde aber als undurchführbar wegen des Routings per Netztwerk-Switch > abgetan. https://www.heise.de/ratgeber/Paketmitschnitte-der-Fritzbox-automatisch-an-Wireshark-weitergeben-4155867.html fritz.box/support.lua funktioniert auch mit fritz.os 7.57
Harald K. schrieb: > Rahul D. schrieb: >> Wurde aber als undurchführbar wegen des Routings per Netztwerk-Switch >> abgetan. > > https://www.heise.de/ratgeber/Paketmitschnitte-der-Fritzbox-automatisch-an-Wireshark-weitergeben-4155867.html > > fritz.box/support.lua funktioniert auch mit fritz.os 7.57 Ich habe weder das eine noch das andere getestet (mein "Server" läuft auf einem Raspi mit USB-SSD), weil meine bisherige FitzBox nur USB 1.1 (oder sowas) unterstützt. Vielleicht teste ich den ftp-Zugang mal. Dass WireShark nicht in einem Netzwerk mit Switchen läuft, kommt nicht vom mir.
Rahul D. schrieb: > Dass WireShark nicht in einem Netzwerk mit Switchen läuft, kommt nicht > vom mir. Wenn man den Verkehr zwischen zwei Geräten an einem Switch mit einem dritten Gerät abhören möchte, braucht man einen "manageable switch". Ein günstiges Beispiel dafür ist der Netgear GS308E (https://preisvergleich.heise.de/netgear-soho-gs300-desktop-gigabit-smart-switch-gs308e-400-a3217129.html). Den kann man so konfigurieren, daß er den Datenverkehr zwischen seinen Ports an einem weiteren Port in Kopie ausleitet. Und da hängt man dann den PC mit Wireshark dran. Da hier ein ESP32 verwendet wird, ist sehr wahrscheinlich, daß da eine direkte WLAN-Verbindung zwischen ESP32 und Fritzbox genutzt wird, da hilft so ein Switch dann natürlich auch nicht. Wenn man aber einen WLAN-fähigen PC hat, der mit einem Netzwerkkabel mit der Fritzbox verbunden ist, kann man den PC zu einem WLAN-Accesspoint machen, den ESP32 damit verbinden und somit den Netzwerkverkehr zwischen ESP32 und Fritzbox durch den PC durchleiten - und damit wird er für Wireshark sichtbar. Ein Mitschrieb durch die Fritzbox sollte aber auch schon helfen, man muss halt nur 'rausfinden, welchen der diversen Ports in der Fritzbox man aufzeichnen muss. Fazit: Lösbar, wenn man denn nur will.
Dieter K. schrieb: > Außerdem habe ich einen Test mit einer > anderen ESP32-FTP-Library gemacht: auch hier das identische Problem. Für > mich sieht es so aus, als ob es eine Inkompatibilität zwischen den > ESP-Modulen und den Fritzboxen gibt, die andere FTP Clients bzw. Server > ignorieren. Welche ftp-clients für den ESP32 hast du denn verwendet? Ich finde die Idee mit der Fritzbox interessant und will das auch mal ausprobieren. Das Mitschneiden des Netzwerktraffics zwischen ESP32 und der Fritzbox über einen WLAN-AP mit Wireshark auf meinem PC habe schon wieder aufgebaut und es funktioniert (jedenfalls mit http).
Hallo Roland ich verwende seit langem die FTP_Generic Library, nachdem ich zuerst Probleme mit der standard FTP Library aus der Arduino IDE 'ESP32_FTPClient.h' hatte. Inzwischen habe ich aber auch diese Lib nochmals getestet und auch sie lief dann problemlos. War anfangs wohl ein anderes Problem. Ich hatte vor ein paar Wochen auch versucht, meinen PC als WLAN-AP zu konfigurieren, aber leider war das nicht zum Laufen zu bringen. Mein Laptop zickt da manchmal etwas rum. Mit einem anderen PC lief zwar der Hotspot, da dieser aber ein eigenes WLAN mit einem eigenen IP Adressraum aufgebaut hat, gab es dann andere Probleme, die ich nicht weiter untersucht habe. Auf Grund eines Hinweises in diesem Forum habe ich mich dann auf die diversen 'Interfaces' in der Fritzbox konzentriert und alle abgeklappert und in den 8 Internet-Schnittstellen keine brauchbaren Mitschnitte gefunden aber in den 31 Netzwerk-Schnittstellen war dann eine einzige Schnittstelle (lan), die den gesuchten Datenverkehr mit meinen ESP32 Modulen beinhaltete. Ab da war der Rest kein Problem mehr. Inzwischen läuft das Logging auch mit der Fritzbox einwandfrei. Mehr dazu in meinem nächsten Beitrag. Dieter
Ich habe gestern mit dem gleichen ftp-Client experimentiert: -https://github.com/khoih-prog/FTPClient_Generic Mit dem WLAN Access Point (über USB WLAN Stick) auf meinem PC läuft nach den entsprechenden Einstellungen auch alles problemlos. ESP32 und Fritzbox können auch kommunizieren, zumindest, wenn die Verbindung umgeleitet über den Ethernet Port auf meinem PC-läuft (siehe Wireshark Mitschnitt)
Roland S. schrieb: > ESP32 und Fritzbox können auch kommunizieren Naja, Dein Mitschnitt zeigt nur die Anmeldung, nicht aber, was passiert, wenn Nutzdaten übertragen werden sollen (put bzw. get, oder auch dir).
Hallo Harald et al es gibt gute Neuigkeiten, aber zuerst noch ein paar Antworten > Wenn man den Verkehr zwischen zwei Geräten an einem Switch mit einem > dritten Gerät abhören möchte, braucht man einen "manageable switch". Ein > günstiges Beispiel dafür ist der Netgear GS308E Danke für den Link. Leider habe ich keinen 'manageable Switch' zur Verfügung und wollte auch keinen kaufen. > Wenn man aber einen WLAN-fähigen PC hat, der mit einem Netzwerkkabel mit > der Fritzbox verbunden ist, kann man den PC zu einem WLAN-Accesspoint > machen, den ESP32 damit verbinden und somit den Netzwerkverkehr zwischen > ESP32 und Fritzbox durch den PC durchleiten - und damit wird er für > Wireshark sichtbar. Diese Lösung hätte ich bevorzugt. Aber das hat sich dann als unnötig herausgestellt, da es mir inzwischen glücklicherweise gelungen ist, doch ein Netzwerk-Interface in der Fritzbox zu finden, in dem der gesuchte Datenstrom der ESP-Module aufgezeichnet war. Siehe dazu meine vorige Antwort an Roland > Da hier ein ESP32 verwendet wird, ist sehr wahrscheinlich, daß da eine > direkte WLAN-Verbindung zwischen ESP32 und Fritzbox genutzt wird, da > hilft so ein Switch dann natürlich auch nicht. In meinem Netzwerk hat eine weitere Fritzbox 7390 diese Aufgabe übernommen und dient auch als AP für andere Geräte (z.B. die ESP32-Module) und Laptops, die bei Bedarf mit WOL in Betrieb genommen werden. Diese zweite FB ist per LAN Kabel mit der Master-FB verbunden. Also hätte der 'manageable Switch' durchaus geholfen. Ich hatte auch gehofft, dass die zweite FB den Netzwerk-Datenverkehr aufzeichnen könnte, doch leider ist diese Funktion nur bei einem aktivierten Router verfügbar. > Ein Mitschrieb durch die Fritzbox sollte aber auch schon helfen, man > muss halt nur 'rausfinden, welchen der diversen Ports in der Fritzbox > man aufzeichnen muss. Genau das ist inzwischen realisiert. Im FB-Netzwerk Interface 'lan' ist der gesuchte Datenstrom der ESP Module enthalten und nachdem ich diesen analysiert habe, ist mir eine seltsame Fehlermeldung nach jedem FTP-Schreibvorgang aufgefallen, die es bei anderen FTP-Servern nicht gab: "226- WARNING! 1 bare linefeeds received in ASCII mode File may not have transferred correctly" In der Tat waren die Datenblöcke nur mit LF terminiert und nachdem ich die Terminierung auf CRLF geändert habe, lief plötzlich alles fehlerfrei und das nun schon seit über 20 Stunden. Offenbar sind die anderen FTP-Server da toleranter und sind mit einem LF zufrieden und da ich den Sketch mit dem Remote FTP-Server entwickelt hatte, war mir das vorher nicht aufgefallen. Dieser Toleranzunterschied ist der relevante Unterschied zwischen dem FB-FTP-Server und den anderen FTP-Servern, der zu dem beschriebenen Fehlerbild geführt hat. Unverständlich ist mir jedoch, dass die FB die Datenblöcke manchmal akzeptiert hat und manchmal eben nicht und die FTP Verbindung gekappt hat. > Fazit: Lösbar, wenn man denn nur will. Stimmt und schließlich dem Fehler endlich auf die Spur kommt! Vielen Dank an alle freundlichen und hilfsbereiten Kollegen, die mich hier in diesem Forum unterstützt haben und auch akzeptiert haben, dass ich als relativer Newbie hier vielleicht 'dumme' Fragen gestellt habe und mich auf den richtigen Weg geführt haben. Ich denke, dafür gibt es solche Foren. Für die 'allwissenden' und weniger freundlichen Zeitgenossen bräuchte man sie sicher nicht, außer als Plattform für ihre blöden Sprüche.
Dieter K. schrieb: > "226- WARNING! 1 bare linefeeds received in ASCII mode File may not > have transferred correctly" Du kannst Dateien auch als Binärdateien übertragen, dann sind die Zeilenumbrüche egal und es gibt keine derartigen Fehlermeldungen - einfach, weil es den FTP-Server nichts angeht, wie die Daten aufgebaut sind. https://www.jscape.com/blog/ftp-binary-and-ascii-transfer-types-and-the-case-of-corrupt-files
Harald K. schrieb >Naja, Dein Mitschnitt zeigt nur die Anmeldung, nicht aber, was passiert, >wenn Nutzdaten übertragen werden sollen (put bzw. get, oder auch dir). Hallo Dieter, Gratuliere, dass es jetzt klappt. Bei mir hat jetzt auch die Dateispeicherung funktioniert. Dabei ist mir aufgefallen, dass es in dem ftp-client eine #define Kontante 'USING_VSFTP_SERVER" gibt. Es scheint, dass die Konstante wohl für die Fritzbox auf false gesetzt werden muss. Jedenfalls war sonst (bei einem Versuch) das übertragene Bild beschädigt. Die Dateiübertragung funktioniert auch ohne Umleitung mittels Access Point auf dem PC. Ich habe den getesteten Code mal in eine App (PlatformIO), die sonst eigentlich Sensordaten zu Azure Table Storage überträgt, reingeschustert (also nicht wundern, dass da vieles für ftp und Fritzbox unnötig ist). Falls es jemanden interessiert: https://github.com/RoSchmi/Esp32_Fritzbox_Ftp_Storage/tree/demo080824
Harald K. schrieb: > Du kannst Dateien auch als Binärdateien übertragen, dann sind die > Zeilenumbrüche egal und es gibt keine derartigen Fehlermeldungen - > einfach, weil es den FTP-Server nichts angeht, wie die Daten aufgebaut > sind. Das ist eine gute Idee - vielen Dank. Ich probiere das baldmöglichst aus. Dieter PS: Nach wie vor loggt der ESP fehlerlos, nunmehr fast 2 Tage. Damit ist für mich der Test ausreichend, meinen Daten-Logger baldmöglichst auf die Fritzbox speichern zu lassen. Allerdings hatte ich ich auch schon Fälle, wo die bisherige Lösung (remote FTP-Server) bis zu 14 Tage fehlerfrei lief und dann doch wieder der Watchdog einspringen musste ;-) Damit kann ich aber gut leben.
Roland S. schrieb: > Gratuliere, dass es jetzt klappt. Bei mir hat jetzt auch die > Dateispeicherung funktioniert. Dabei ist mir aufgefallen, dass es in dem > ftp-client eine > #define Kontante 'USING_VSFTP_SERVER" gibt. > Es scheint, dass die Konstante wohl für die Fritzbox auf false gesetzt > werden muss. Hallo Roland, das freut mich, dass es bei Dir so schnell geklappt hat. Glückwunsch! Bisher habe ich mich noch nicht mit Dateitransfers beschäftigt, da ich das in meiner Anwendung (noch) nicht brauche. Daher kann ich dazu nichts sagen. Wenn ich es aber richtig verstehe, dann schaltest Du mit dieser Konstanten 'USING_VSFTP_SERVER' den SFTP Modus ein. Ich habe keine Ahnung, ob unsere ESP-32 FTP-Lib überhaupt SFTP unterstützt, was an sich ohnehin wünschenswert wäre. Auch das zu untersuchen, kommt auf die to-do Liste. Warum das aber einen fehlerfreien binären Datentransfer ermöglicht, ist mir schleierhaft. An sich müsste auch das standard-FTP binäre Dateien fehlerfrei übertragen können. Vielleicht muss man irgendwo definieren, ob man die Datei im Text-Modus oder binär übertragen will? Dieter
Dieter K. schrieb: > analysiert habe, ist mir eine seltsame Fehlermeldung nach jedem > FTP-Schreibvorgang aufgefallen, die es bei anderen FTP-Servern nicht > gab: > "226- WARNING! 1 bare linefeeds received in ASCII mode File may not > have transferred correctly" Das ist nur eine Warnung. Die ist natürlich einerseits durchaus ernst zu nehmen (hast du ja auch getan und den Fehler korrigiert), sollte aber trotzdem keinesfalls dazu führen, dass der Client per Watchdog neu gestartet wird. Da ist also sehr wahrscheinlich noch was anderes im Argen. Und zwar nach wie vor: im Client, nicht bei der FB. Die macht, was der Standard sagt, was sie tun sollte.
Ob S. schrieb: > Das ist nur eine Warnung. Die ist natürlich einerseits durchaus ernst zu > nehmen (hast du ja auch getan und den Fehler korrigiert), sollte aber > trotzdem keinesfalls dazu führen, dass der Client per Watchdog neu > gestartet wird. <ob das auf eine Fehlfunktion hindeutet, hängt natürlich davon ab, ob in deiner Datei 'bare linefeeds' enthalten sind oder nicht. Sind sie tatsächlich vorhanden, hat die Warnung nichts zu sagen. Bist du denn sicher, dass der 'Watchdog' den ESP32 resettet hat? Der SEP32 kann ja auch aus anderen Gründen resetten. Ist er in deinem Sketch von dir aktiv eingeschaltet worden? Schalte den Watchdog doch ggf. einfach einmal aus. In meinem Programm (siehe link) wird in setup() zu beginn abgefragt, aus welchem Grund der reset erfolgte. Außerdem kann man das Programm über #define entweder mit oder ohne Watchdog laufen lassen. Ich hoffe ich erzähle hier nicht lauter Sachen, die du selbst schon weißt.
Roland S. schrieb: > <ob das auf eine Fehlfunktion hindeutet, hängt natürlich davon ab, ob in > deiner Datei 'bare linefeeds' enthalten sind oder nicht. Natürlich. Dass es so war, hat der TO ja inzwischen heraus gefunden. siehe: https://www.mikrocontroller.net/user/show/dieter_k739 > Bist du denn sicher, dass der 'Watchdog' den ESP32 resettet hat? Das musst du nicht mich fragen, sondern den TO. Und der scheint sich diesbezüglich doch recht sicher zu sein.
Ob S. schrieb: > Das musst du nicht mich fragen, sondern den TO. Und der scheint sich > diesbezüglich doch recht sicher zu sein. Entschuldigung, war ein Versehen. Wollte eigentlich an Dieter K. schreiben
Es ist ein bischen bloed, dass Du nicht die Quellen verlinkst, ich nehme mal an, Du nimmst: https://www.arduino.cc/reference/en/libraries/ftpclient_generic/ Das fuehrt dann zu: https://github.com/khoih-prog/FTPClient_Generic Das
1 | #define USING_VSFTP_SERVER true |
macht eine Sonderlocke fuer die Rueckmeldung beim PASV-Commando. In den Beispielen (examples) so etwas kommentiert:
1 | // To use `true` with the following PASV mode asnswer from server, such as `VSFTP` |
2 | // 227 Entering Passive Mode (192,168,2,112,157,218) |
3 | // Using `false` with old style PASV answer, such as `FTP_Server_Teensy41` library |
4 | // 227 Entering Passive Mode (4043483328, port 55600) |
Es geht also die Rueckmeldung beim PASV-Kommando (ich muss gestehen, ich mache diesen Quatsch jetzt ca. 30 Jahre, die "old style PASV answer" habe ich nie gesehen). vsftp ist ein (very secure ftp-server) (siehe: https://en.wikipedia.org/wiki/Vsftpd) ist ein Standard-FTP-Server, ja, man kann ihn natuerlich mit Verschluesselung betreiben, completely different kettle of fish :-) mit sftp hat das vsftp nichts zutun.
Bezüglich der #define Konstanten 'USING_VSFTP_SERVER" hast du völlig recht. Da hab ich wohl auf die Schnelle was falsch verstanden. Meine Erwähnung von USING_VSFTP_SERVER ist unsinnig, nehme ich zurück.
Roland S. schrieb: > Bist du denn sicher, dass der 'Watchdog' den ESP32 resettet hat? Der > SEP32 kann ja auch aus anderen Gründen resetten. Ist er in deinem Sketch > von dir aktiv eingeschaltet worden? Schalte den Watchdog doch ggf. > einfach einmal aus. In meinem Programm (siehe link) wird in setup() zu > beginn abgefragt, aus welchem Grund der reset erfolgte. Außerdem kann > man das Programm über #define entweder mit oder ohne Watchdog laufen > lassen. Ich hoffe ich erzähle hier nicht lauter Sachen, die du selbst > schon weißt. Ja, ich bin sicher, dass der Watchdog (WD) den Reset ausgelöst hat, denn entweder der Reset wird in der Funktion ausgelöst, die der WD im Fehlerfall startet. Dabei wird im Monitor auch eine Fehlermeldung ausgegeben Das passiert, wenn unerwartet die FTP Verbindung gekappt wird (ftp.isConnected() = False) und ich die einfache Lösung gewählt habe, durch einen Reset einen sauberen Neustart zu erzwingen. Der zweite Fehlerfall ist, dass der Fehler offenbar in der FTP-Lib in der APPE Methode auftritt und der ESP dann nicht mehr aus der APPE Methode zurückkommt, also hängt. Dafür habe ich keine andere Lösung gefunden, als einen Reset zu triggern, da kein User Code mehr läuft. Warum das passiert, weiß ich leider nicht. Deine Informationen bezüglich WD Abfrage und Handling sind mir neu. Danke dafür! Bisher läuft der WD im Hintergrund einfach mit und schreitet ein, wenn der Heartbeat (3 Sek) über der Zeit ist und dieses Verfahren funktioniert einwandfrei. Seitdem ich es implementiert habe, läuft der Logger zuverlässig seit einigen Monaten mit gelegentlichen kurzen Unterbrechungen (1-3 Sekunden), wenn der WD einen Neustart getriggert hat. Es kommt jedoch häufig vor, dass er mehrere Restarts triggern muss, bis endlich wieder eine funktionierende FTP-Verbindung steht (sehe ich im Monitor, falls in Betrieb. Ich vermute, dass dies auf dem Weg zum Server oder im Server selbst passiert.
Thomas W. schrieb: > mit sftp hat das vsftp nichts zutun. Danke für die Info, da hat Google mich leider etwas in die Irre geführt. Wir gesagt, war mir diese Konstante nicht bekannt. Bezüglich der von mir benutzten FTP-Lib habe ich keine Quelle verlinkt, da diese ja in der Arduino Reference enthalten ist. In Zukunft werde ich mich jedoch bemühen, das besser zu machen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.