Firmware über FTP oder andere Server

Hi zusammen,

Ich suche derzeit nach einer Möglichkeit auf einen File- Server (FTP oder anderes (habe nen OpenMediaVault Server also alles mögliche im Angebot) eine bin abzulegen.
Theoretisch : Datum + Nummer.bin

Auf Knopfdruck oder anderes soll nun der Rauchmelder sich an eine voreingestellte IP oder URL verbinden
und schauen ob es eine neuere Version gibt, wenn ja dann updaten.

Bin aber nicht sicher wo nach ich suchen muss .....

Zählt ja nicht als WebUpdater ....

MfG

Bitte mal etwas ausführlicher und verständlicher, was möchtest du machen ?
Was mit dem FTP-Server ?

Also momentan Habe ich ein WebServer, auf diesen suche ich mir mein Firmwareupdate und lade es über OTA hoch.

Habe ich aber eine größere Menge an Teilnehmern müsste ich also jeden einzeln
händisch die .bin mir raussuchen und uploaden.

Das möchte ich nun umgehen :

Ich habe ein FTP Server mit der URL : ftp://192.168.5.201/NAS-ESP32/
dort packe ich nun meine Firmware hoch z.b. : 2021021001.bin

Diesen Namen gibt es nur 1 mal da der Name sich aus dem datum und einer Zahl zusammen baut.
Ich sage nun über MQTT das jeder nach Update schauen soll und alle schauen auf diese URL, downloaden sie und updaten sich.

So kann ich nun also alle mit einmal updaten und alle sind auf der gleichen version.

MfG

sefina:
Ich suche derzeit nach einer Möglichkeit auf einen File- Server (FTP oder anderes (habe nen OpenMediaVault Server also alles mögliche im Angebot) eine bin abzulegen.
Theoretisch : Datum + Nummer.bin

Dann mach das doch. Erzeuge eine YYMMDDcc.bin, nimm einen ftp-client und rauf damit.
Im Eigenen Haus hast Du die Gewalt über die Protokolle und die Zugänge.

Auf Knopfdruck oder anderes soll nun der Rauchmelder sich an eine voreingestellte IP oder URL verbinden
und schauen ob es eine neuere Version gibt, wenn ja dann updaten.

Moment. Was für ein Rauchmelder?
Da die Dinger derzeit ein Pflichtelement sind - bitte sage das Du zu der Ausnahme gehörst - denke ich nicht, das das zusammenpasst.

Zählt ja nicht als WebUpdater …

Sicher? Quelle!

sefina:
Ich sage nun über MQTT das jeder nach Update schauen soll und alle schauen auf diese URL, downloaden sie und updaten sich.

Ich gehe davon aus, das Du
1.) weisst was Du tust
2.) echte Rauchwarnmelder Brandmelder – Wikipedia im Einsatz hast und Deine nur zur Unterstützung dienen.

Also habe Richtige Rauchmelder, ich nutze einen ESP32 als vernetzung und zusätzliche Sensoren.
Die Funktion des Rauchmelders werden nicht beeinflusst.

Ich komme aus Brandenburg (wir haben das härteste RM Gesetz in Deutschland) ....

Wenn ich unter WebUpdater suche findet man leider nur das was ich momentan nutze, nicht aber das was ich gerne haben will.

Leider suche ich nach nen Anfang zu den Problem ....

MfG

Das Konzept ist doch das Selbe:
Du lädst per Upload die *.bin auf den SPIFFS und führst das Update aus.
Oder man nutzt die OTA-Funktion aus der IDE und lädt damit die *.bin auf den SPIFFS und führt das Update aus.

Was Du haben möchtest ist eine Funktion, die per FTP sich selbst die (letzte/neuste) *.bin auf den SPIFFS lädt und dann das Update ausführt.

Denke Du solltest einfach mal einen Blick in die Library von OTA werfen, den FTP Download selbst bauen und dann das Update vom SPIFFS starten.

warum willst was neues erfinden?
Wenn du einen FTP Server hast dann wirst da sicher auch irgendwo einen HTTP Server haben.
Dort legst dein bin ab.
du triggerst über MQTT (alle) deinen Nodes an
Jeder Node schaut am HTTP Server nach ob für ihn ein bin da liegt und wenn ja - startet er sein OTA.

eigentlich gerade aus. Nur halt nicht ftp sondern HTTP, aber damit kommst eh nicht in Kontakt, das ist alles verdeckt unter "OTA"

IDE Beispiel:
httpUpdate / httpUpdate

sefina:
Also habe Richtige Rauchmelder,
Die Funktion des Rauchmelders werden nicht beeinflusst.
(wir haben das härteste RM Gesetz in Deutschland) ....

Ich fang mit dem Letzten an.
Es gibt kein RM-Gesetz. Nu bin ich da nicht ganz unbeleckt. Die Rauchmelderpflicht steht in der Landesbauordnung.

Ob die Funktion beeinträchtigt wird, mag ich nicht zu beurteilen.

Was sind denn richtige Rauchmelder?
Mein MQ-135 ist auch richtig.

Wie wäre es denn mit einem Typen? Einem Link zu irgendwas brauchbarem?
Ohne ist hier für mich Schluss, da sicherheitsrelevant.

noiasca:
IDE Beispiel:
httpUpdate / httpUpdate

Frage aus #0:

Zählt ja nicht als WebUpdater ....

upps...

:wink:

auch aus #0

FTP oder anderes

also genau so wie in #6 beschrieben :wink:

Also erstmal danke,

Ich habe eine Firmwaredatei auf einen http Server : http://192.168.5.201/ESP-Firmware/Test/firmware.bin
Nach Test´s kann ich in der alten Firmware eine neue Version vorgeben.

Also z.b. 000001 und in der gebe ich die nächste vor : 000002
Ein Versionüberspringen ist so nicht Möglich.

Gibt es eine Möglichkeit den Bereich : http://192.168.5.201/ESP-Firmware/Test/ zu durchsuchen und aufzulisten ?

Als Rauchmelder nutze ich : Gira Rauchwarnmelder Dual Q DIN14604, vernetzbar über Funk und Draht, reinweiß, 233602

Die haben ein Schacht für Vernetzungsmöglichkeiten.
Ziel ist es das der ESP mit dem RM über Serial komuniziert (ja das geht sogar bidirektional)

MfG

gibt es eine Möglichkeit den Bereich

mir fallen da nur zwei Workarounds ein:

a) Mach dir ein script, dass dir zunächst den Namen der letzten/neuersten Datei im Verzeichnis zurückgibt. Lass den ESP zunächst nach dem Dateinamen fragen - und dann einen Request genau nach dieser Datei

oder
b) mach über den Server ein mod / rewrite, dass egal welche bin angefragt wird, immer die letzte Datei zurückgegeben wird.

ich würde vermutlich so vorgehen:
Du triggerst den ESP
Der ESP fragt den Update-Server an: "ich habe Version 1.1.0, gibts was neueres?" ... und
der Server antwortet mit nein / ja, die neue Datei heißt: 111.bin
Der ESP holt sich die 111.bin

Du meinst wie ein Master, also ein Server der alle Versionen kennt.
Der auch alle Teilnehmer kennt ....

Also momentan wohl eher ein Ordner Alt und immer nur eine Firmware und dan updaten sich halt alle auf Befehl.

Das dachte ich mir leider schon da ich selber ja zu keiner Ordnerstrucktur komme ....

Danke dir trotzdem.

das ganze liegt aber schon auschließlich an dir wie du deine Update Logik definierst.

Willst du ein File zur Verfügung stellen und alle sollen sich das abholen.
Willst du da vieleicht trotzdem einen gewissen Zeitversatz der Updates haben, damit nicht alle auf einmal zum Updaten anfangen.
Oder hast du individuelle Files und jeder soll nur "sein" file abholen.
Triggerst du alle auf einmal, oder machst einen nach dem anderen.

Du musst dir halt genau überlegen, wie dein Deployment aussehen soll.

Es ist geplannt alle haben 1 File,
So ist das gesammte Programm aufgebaut.
Sondereinstellungen sind im SPIFFS gespeichert sodas nur jeder ESP 1x eingerichtet werden muss.
Ziel ist alle hollen sich einmal das File ab und fertig.

MfG

na dann.
jetzt schreibst einen Ablaufplan für dein Gesamtsystem und daraus ergibt sich dann ganz klar, was wann wo geschehen muss.

Steht der Plan, machst code daraus.

Schrittweise vorgehen.

Auch eine lange Reise beginnt mit dem ersten Schritt.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.