Hallo zusammen, ich betreibe einen ESP8266 mit Webserver (ESP8266WebServer.h), primär als Lichtdimmer. Ich kann Dateien vom Webserver herunterladen bzw. anzeigen (deren Namen ich kenne), und per html-Upload auch Dateien auf das SPIFFS hochladen. Soweit so klar. Gibt es nun eine Möglichkeit mir anzeigen zu lassen, welche Dateien ich denn hochgeladen habe bzw. alle Dateien auf dem ESP zu listen? Ich komme da irgendwie nicht weiter. Gruß, Dieter
:
Bearbeitet durch User
Wenn du Upload und Download, sowie eine Fernsteuerung programmiert hast, dann weißt du auch, wie man eine Seite programmiert, die Dateien auflistet. Ich vermute, dass du einfach etwas zusammen kopiert hast, ohne es zu verstehen. Falls das stimmt, dann lies die Doku zur deinem Arduino Plugin und natürlich auch die Doku zu Arduino selbst. Und natürlich musst Du Dich auch mit HTML beschäftigen, zum Beispiel auf selfhtml.org Falls du eher das Gefühl hast, zu wissen, was du da tust, dann stelle eine konkretere Frage und zeige einen minimalen Quelltext, der dein Problem demonstriert.
Über HTTP? Dazu musst du dann eine HTML Seite erzeugen die eine Auflistung der Dateien im Dateisystem enthält. Irgendwie so ähnlich: https://www.esp8266.com/viewtopic.php?t=8459 Andere Frage: Wieso möchte man aus einem Dimmer eine Dateiablage machen?
@Stefan: Ja, ich habe Dinge zusammenkopiert (und modifiziert) die ich nicht vollständig verstanden habe. Und ich habe mir nicht zu jedem Modul das ich verwendet habe, die vollständige Doku gelesen - auch weil ich diese auch wohl nicht 100% verstehen würde. Nun denn, wenn du diese Forderung für alle Arduinocoder - ich sage bewusst nicht Programmierer - aufstellst ist das deine Sache. Und, ja, meine html-Kenntnisse sind nicht besser. Viel über trial & error eben. Leider ist die Frage nach Quelltext aber nicht hilfreich - ich habe ja keinen, was ja das Problem ist. Und der Code des Arduinos ist hier wenig hilfreich meine ich. @Vka: Danke für den Hinweis. Ich werde mich diesbezüglich mal schlau machen. Nein, keine Dateiablage. Das Problem ist, der Dimmer ist im Betrieb, ich habe testweise html-code und Parameterfiles hochgeladen zur Dimmersteuerung. Tja, leider weiß ich nicht mehr was alles :(
Dieter R. schrieb: > Ich habe mir nicht zu jedem Modul > das ich verwendet habe, die vollständige Doku gelesen - auch weil ich > diese auch wohl nicht 100% verstehen würde. Nun denn, wenn du diese > Forderung für alle Arduinocoder - ich sage bewusst nicht Programmierer - > aufstellst ist das deine Sache. Wer was eigenes entwickeln will kommt nicht umhin die gesamte Doku zu lesen, die zum jeweiligen Thema bereitgestellt wird. Das kann für ein einzelnes projekt bedeuten, dass man monatelang einige tausend Seiten liest und Teile davon einzeln ausprobiert. Man kann natürlich auch einfach "nur" fertige Module zusammen stöpseln, was ja gerade vom Arduino Framework besonders unterstützt wird. Aber dann muss man sich halt auch mit den Modulen zufrieden geben, die schon fertig sind. > Leider ist die Frage nach Quelltext aber nicht hilfreich - > ich habe ja keinen, was ja das Problem ist. Das kann nicht sein, du hast geschrieben, dass du schon ein halbfertiges Programm hast, das erweitert werden soll. Wir würden Dir hier auch niemals ein komplettes Programm auf dem Silbertablett liefern - wie könnten wir sonst mit Softwareentwicklung unser täglich Brot verdienen? https://arduino-esp8266.readthedocs.io/en/2.4.2/filesystem.html#filesystem-information-structure Hier ist beschrieben, wie du das Inhaltsverzeichnis vom SPIFFS auslesen kannst. Nun musst du mit diesen Infos durch String-Verkettung eine HTML Seite erzeugen.
Wenn du einfach nur wissen willst, was alles im SPIFFS abgelegt ist, dann lies doch einfach das Image vom Flash zurück auf deinen PC und entpacke es dort mit mkspiffs. Dafür extra ein Listing zu programmieren ist doch Schwachsinn, wenn man es nur einmal braucht.
Stefanus F. schrieb: > Das kann nicht sein, du hast geschrieben, dass du schon ein halbfertiges > Programm hast, das erweitert werden soll. Wir würden Dir hier auch > niemals ein komplettes Programm auf dem Silbertablett liefern - wie > könnten wir sonst mit Softwareentwicklung unser täglich Brot verdienen? Aus der Antwort entnehme ich, dass ich in jedem Fall mein Arduino-Sketch entsprechend erweitern muss, richtig? Wenn das der Fall ist, hat sich das für mich so erledigt. Ich wollte ja auch nichts von jemand entwickelt haben, sondern einen Hinweis / Wink wie gelöst wurde oder zu lösen ist. robs8899@t-online.de schrieb: > Wenn du einfach nur wissen willst, was alles im SPIFFS abgelegt ist, > dann lies doch einfach das Image vom Flash zurück auf deinen PC und > entpacke es dort mit mkspiffs. > > Dafür extra ein Listing zu programmieren ist doch Schwachsinn, wenn man > es nur einmal braucht. Gute Idee. Ich arbeite mit der Arduino-IDE. Soweit mir bekannt, kann ich damit aber nur "Sketch Data" hochladen, nicht herunterladen. Habe ich da was übersehen?
Dieter R. schrieb: >> Wenn du einfach nur wissen willst, was alles im SPIFFS abgelegt ist, >> dann lies doch einfach das Image vom Flash zurück auf deinen PC und >> entpacke es dort mit mkspiffs. >> >> Dafür extra ein Listing zu programmieren ist doch Schwachsinn, wenn man >> es nur einmal braucht. > > Gute Idee. Ich arbeite mit der Arduino-IDE. Soweit mir bekannt, kann ich > damit aber nur "Sketch Data" hochladen, nicht herunterladen. Habe ich da > was übersehen? Sorry, von der Arduino-IDE habe ich mich verabschiedet, kann also nicht sagen ob und wo solche Funktionen dort zu finden sind. Es ist mir einfach zu mühsam, damit was ernsthaftes zu programmieren. Ich nehme den ESP8266 Arduino Core direkt aus GitHub mit selbst gebauten Make Files und der Eclipse-IDE. Deshalb die unkonventionelle Methode: 1. Flash-Adresse und Größe des SPIFFS-Blocks ermitteln: Anhängig davon, was du an Flash- und SPIFFS-Größe hast, wird der jeweilige Linker-Skript (eagle.flash.xxx.ld) der ESP-Arduino-Tools verwendet. Dort stehen die Adressen und Größen des SPIFFS-Blocks drin. 2. espressif/esptool auf GitHub suchen, Doku lesen, Python und das Tool installieren. 3. Mit read_flash als Kommando den richtigen Flash-Bereich auslesen. 4. igrr/mkspiffs auf GitHub suchen, Doku lesen und unter Releases den für dein OS richtigen Build herunterladen und installieren. 5. Mit --unpack als Kommando und den richtigen Werten für -b -f -s (s. Doku & Angaben im Linker-Skript oben) sollten die Dateien entpackt werden. Viel Glück beim ausprobieren!
Hallo Dieter, aus der Doku zu SPIFFS in der ESP8266 Arduino Implementierung ist folgendes Codefragment: Dir dir = SPIFFS.openDir("/data"); while (dir.next()) { Serial.print(dir.fileName()); File f = dir.openFile("r"); Serial.println(f.size()); } Wenn Du ein Sketch erstellst mit diesen Zeilen im Init solltest Du in der Lage sein die Files zu listen, ggf musst Du "/data" auf "/" abaendern, dass weiss ich jetzt nicht so genau. Der Output kommt dann auf dem seriellen Monitor, vielleicht hilft Dr das weiter, Gruss, Carsten
Auf meiner Webseite findest du den Datei Manager für den Esp......... https://fipsok.de/sketch/tab.html#spiffs Gruß Fips
Fips schrieb: > Auf meiner Webseite findest du den Datei Manager für den Esp......... Bestens. Über den bin ich gerade beim suchen auch zufällig gestolpert. Die Funktion ist genau das, was ich gesucht hatte. Ich hatte nur die Hoffnung, den Sketch dafür nicht erweitern zu müssen. Ich werde das mal an meinem Testsystem ausprobieren. Am laufenden Dimmer, um den es eigentlich geht, will ich das Programm erst mal nicht ändern. Danke auch allen anderen für die Hilfe. Wieder was gelernt.
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.