Hallo, ich möchte die von meinem Stromzähler (Easymeter Q1DB) über die D0-Schnittstelle ausgesandten Daten aufzeichnen. Meine Idee wäre, einen handelsüblichen Infrarotkopf (z.B. Hichi) mit TTL-Ausgang zu nehmen und die Daten per ESP32-WiFi an meine Fritzbox zu senden. Die klassischen, im Netz zu findenden Anleitungen verwenden einen Raspi Pi als Datenempfänger, auf den ich gerne verzichten würde. Erstens ist der nicht ganz billig, zweitens verbraucht er beim Dauerbetrieb einiges an Energie und passt nicht auf die Hutschiene im Zählerschrank. Ich würde also die daten ohne Umweg über den Raspi direkt auf die Fritzbox schicken. Dort würden sie auf dem angeschlossenen NAS-Stick gespeichert. Als Protokoll kämen FTP und SMB in Frage, die Fritz kann beides. Welches wäre hier die beste Lösung? Programmieren würde ich am liebsten in C/C++, mit Lua oder Python kenne ich mich nicht so recht aus. FTP-client Libraries für ESP32 scheint es einige für das Arduino-Framework zu geben, bei SMB konnte ich bisher nur etwas für das IDF-Framework finden. FTP hat den Nachteil, dass es nur Files verschiebt, die Daten müssen also zuvor auf dem ESP32 als File abgelegt werden, was bei häufigem Schreiben das Flash verschleißt. Mit SMB könnte ich die Daten direkt in ein File auf dem NAS schreiben. Außerdem gilt FTP als unsicher, Username und Passwörter könnten von einem bösen Nachbarn abgefangen werden. Ich sehe das aber eher als theoretisches Problem. Hat jemand schon mal eine Datenkommunikation ESP32->FritzNAS erfolgreich hinbekommen?
Fritz G. schrieb: > Als Protokoll kämen FTP und SMB in Frage, die Fritz kann > beides. Welches wäre hier die beste Lösung? FTP. Ein sauberer Dateitransfer, während SMB ein Gemischtwarenladen ist. > FTP hat den Nachteil, dass es nur Files verschiebt, die Daten müssen > also zuvor auf dem ESP32 als File abgelegt werden, Wieso? Da schreibst du den Teil halt um und tust nur so als ob die Daten von einer Datei kommen. Statt dessen sendest du sie aus dem RAM. > Außerdem gilt FTP als unsicher, Username > und Passwörter könnten von einem bösen Nachbarn abgefangen werden. Ja, aber SMB hatte auch mehr als genug Sicherheitsprobleme in der Vergangenheit. Wenn es dich wirklich stört nimm FTPS statt FTP. Kann die FB auch.
Hannes J. schrieb: > Wenn es dich wirklich stört nimm FTPS statt FTP. Kann die FB auch. Die WiFi Verbindung zwischen ESP und Fritzbox ist bereits verschlüsselt. Wenn die libs nur Files verschieben können, dann würde ich erwägen, das FTP Protokoll selbst "zu Fuss" zu implementieren. Es ist eigentlich ganz simpel auf Text-Kommandos basierend.
Fritz G. schrieb: > ich möchte die von meinem Stromzähler (Easymeter Q1DB) über die > D0-Schnittstelle ausgesandten Daten aufzeichnen. Meine Idee wäre, einen > handelsüblichen Infrarotkopf (z.B. Hichi) mit TTL-Ausgang zu nehmen und > die Daten per ESP32-WiFi an meine Fritzbox zu senden. Tasmota und MQTT. Alles schon fertig. Uwe
Uwe B. schrieb: > Tasmota und MQTT. Alles schon fertig. Er will ja auf einen Extra-Rechner im Netz verzichten. Bei OpenWRT ist es kein Problem, einen mqtt-server, Datenbank, Visualisierung, ... auf dem Router mitlaufen zu lassen. Die Fritzbox ist da weniger offen. Da würde ich mir auch FTP anschauen. Evtl. hat die Fritzbox da großzügige Timeouts, dass man einmal bei ESP-Start eine Datenverbindung aufbauen kann (USER, PASS, PASV, APPE data.csv) und dann die Daten gemütlich, so wie sie eben vom Zähler eintrudeln, über die Datenverbindung raussenden kann, um das CSV-File zu verlängern.
Uwe B. schrieb: > Tasmota und MQTT. Alles schon fertig. Habe ich auch schon kurz reingeschaut. Allerdings ist mir nicht klar geworden, wie damit die Daten per MQTT in mein NAS gelangen sollen. MQTT braucht doch einen Broker, der die Messwerte empfängt und weiterleitet. Die Fritzbox kann das meines Wissens nicht, ich muss also einen öffentlichen Broker in der Cloud, z. B. HiveMQ bemühen. Das konterkariert ja geradezu die Idee von Tasmota, alle Daten lokal zu halten. Und wie kommen die Werte dann vom Broker auf den NAS? Oder kann Tasmota auch direkt FTP oder SMB, ohne über MQTT zu gehen? Vielleicht denke ich hier zu kompliziert, aber in der Tasmota - Doku kann ich dazu nichts finden. Die scheint mir mehr eine Sammlung von Kochrezepten als eine grundlegende Darstellung der Funktionalität zu sein.
Daten per FTP auf der Fritzbox zu speichern ist vielleicht gar nicht so schlecht, wenn man rein mit dem Vorhandenen auskommen will. Bei FTP gibt es u.a. das "APPE" (append) Kommando (https://datatracker.ietf.org/doc/html/rfc959), mit dem sich Daten an ein File anhängen lassen. Ggf. auch mal ALLO (allocate) anschauen, ob das - falls implementiert - Sinn beim Schreiben in Chunks über eine unzuverlässige Verbindung macht (so dass die Datei immer um eine Vielzahl von Datensätzen erweitert wird). Möglicherweise hat der FTP-Server der Fritte auch weitere Kommandos eingebaut, z.B. REST (https://datatracker.ietf.org/doc/html/rfc3659#section-5), um an bestimmten Stellen mit STOR weiterzuschreiben. Als FTP-Client für ESP32 und die Arduino-Umgebung findet man z.B. https://github.com/ldab/ESP32_FTPClient was gar nicht so übel gecodet aussieht und leicht erweiterbar um REST und ALLO wäre.
:
Bearbeitet durch User
Fritz G. schrieb: > FTP hat den Nachteil, dass es nur Files verschiebt, die Daten müssen > also zuvor auf dem ESP32 als File abgelegt werden, was bei häufigem > Schreiben das Flash verschleißt. Mit SMB könnte ich die Daten direkt in > ein File auf dem NAS schreiben. Außerdem gilt FTP als unsicher, Username > und Passwörter könnten von einem bösen Nachbarn abgefangen werden. Ich > sehe das aber eher als theoretisches Problem. Über welches Protokoll gibt denn Die Fritzbox den USB-Stick im Netzwerk frei? Über SMB? Wenn ja dann kannst du für die Strecke Fritz <=> ESP auch SMB benuzten, weils dann eh egal ist. Dafür musst du dich nicht mit den Unzulänglichkeiten der ESP-FTP-Libs plagen.
Le X. schrieb: > Über welches Protokoll gibt denn Die Fritzbox den USB-Stick im Netzwerk > frei? Über SMB? Ja, denn im Eröffnungsbeitrag steht: Fritz G. schrieb: > Als Protokoll kämen FTP und SMB in Frage, die Fritz kann beides.
Le X. schrieb: > Fritz G. schrieb: >> FTP hat den Nachteil, dass es nur Files verschiebt, die Daten müssen >> also zuvor auf dem ESP32 als File abgelegt werden, was bei häufigem >> Schreiben das Flash verschleißt. Mit SMB könnte ich die Daten direkt in >> ein File auf dem NAS schreiben. Außerdem gilt FTP als unsicher, Username >> und Passwörter könnten von einem bösen Nachbarn abgefangen werden. Ich >> sehe das aber eher als theoretisches Problem. > > Über welches Protokoll gibt denn Die Fritzbox den USB-Stick im Netzwerk > frei? > Über SMB? > Wenn ja dann kannst du für die Strecke Fritz <=> ESP auch SMB benuzten, > weils dann eh egal ist. Dafür musst du dich nicht mit den > Unzulänglichkeiten der ESP-FTP-Libs plagen. Bitte nicht darüber wundern, dass ich den schon etwas angestaubten Thread wieder aus der Versenkung hole, ich möchte hier aber mal kurz berichten. Inzwischen habe ich das Projekt umgesetzt und es läuft seit knapp einer Woche stabil. Programmiert habe ich den ESP32 mit der IDF, was sich als erstaunlich simpel und geradlinig herausgestellt hat. Im FreeRTOS laufen zwei Tasks, die eine sammelt die Zählerdaten, extrahiert daraus die Momentanleistung und schickt diese als 16bit-Integer an die andere Task. Von Zeit zu Zeit werden noch Timestamps eingestreut. Die empfangene Task sammelt die Messwerte und baut alle 10 Minuten eine FTP-Verbindung zur Fritzbox auf, um die Daten dort per APPEND an das Logfile anzuhängen. Alle 24h wird ein neues Logfile angelegt, die einzelnen Files sind knapp 90kB groß. Der FTP-Client ließ sich ohne Nutzung fertiger Libs schnell und einfach direkt programmieren, das dazu nötige Protokoll ist ja sehr simpel. So konnte ich auch auf ein Dateisystem auf der Client-Seite verzichten. Eine Verschlüsselung des FTP-Datenverkehrs gibt es nicht, schließlich bleibt alles im lokalen Netz. Für die Funkstrecke vertraue ich voll auf die WPA2-Verschlüsselung. Oder habe ich da was in punkto Sicherheit übersehen?
Fritz G., schön zu hören das das so schnell (jedenfalls aus meiner Sicht) geklappt hat. Ich bin nicht ganz so versiert mit den Protokollen, hatte mir aber auch schon gedacht, das man die Zählerdaten oder auch andere Messwerte an die Fritzbox senden könnte und da ablegt, ohne noch einen Zwischenhändler zu versorgen, der dann auch immer gepflegt werden will. Ich wäre sehr an dem (funktionierenden) Code interessiert und gegebenenfalls an Hinweisen wie man die ESP IDF so aufsetzt, dass man das Projekt kompiliert bekommt :-). Ich habe keinen Stromzähler mit D0, das würde/müsste ich dann für einen Puls-Zähler mit Zeitstempeln ändern.
MQTT und dann auf einen öffentlichen Server senden wenn du partut keinen eigenen Raspberry/Server möchtest. Ehrlich: Man kann nicht das eine haben und das andere wollen! Gut gemeinter Rat, machs orntlich oder noch besser lass es bleiben. Es bringt dir nichts!
Benedikt L. schrieb: > MQTT und dann auf einen öffentlichen Server senden wenn du partut keinen > eigenen Raspberry/Server möchtest. > > Ehrlich: Man kann nicht das eine haben und das andere wollen! Gut > gemeinter Rat, machs orntlich oder noch besser lass es bleiben. Es > bringt dir nichts! Sorry, aber was soll denn der Kommentar? Es ist doch wohl offensichtlich, dass das im Heimnetz bleiben soll und die Daten direkt vom Zähldingsi zur Fritzbox. Warum soll man da mit MQTT und weiteren Server rumhampeln? Ist doch Blödsinn...
Marc S. schrieb: > Benedikt L. schrieb: >> MQTT und dann auf einen öffentlichen Server senden wenn du partut keinen >> eigenen Raspberry/Server möchtest. >> >> Ehrlich: Man kann nicht das eine haben und das andere wollen! Gut >> gemeinter Rat, machs orntlich oder noch besser lass es bleiben. Es >> bringt dir nichts! > > Sorry, aber was soll denn der Kommentar? Es ist doch wohl > offensichtlich, dass das im Heimnetz bleiben soll und die Daten direkt > vom Zähldingsi zur Fritzbox. Warum soll man da mit MQTT und weiteren > Server rumhampeln? Ist doch Blödsinn... Inzwischen ist das Problem gelöst, mit FTP funktioniert es seit 1 Monat problemlos. War ein Wochenende Programmierarbeit, aber dank der guten Dokumentation des ESP IDF ging es recht flott von der Hand und ich konnte mir das Geld für den teuren Raspi sparen. Damit wäre es auch nicht ganz ohne Programmieren abgegangen, denn der MQTT-Server hat keinen integrierten FTP-Client.
Hallo an alle ich bin gerade eher zufällig auf Euren Thread gestoßen und sehe hier ein vergleichbares Projekt zu meinem aktuellen Projekt und einen Teil meiner Probleme beschrieben. 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. Vermutlich sollte ich dieses Thema in einen eigenen Beitrag verschieben und da ich neu hier bin, muss ich mich dazu erst schlau 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.