Marstek Firmware Archiv: Vom Ordner zum geprüften Archiv
Am Anfang waren es Dateien, die von Hand ins Firmware-Archiv hochgeladen wurden, jeweils mit einer metadata.json. Heute liegen dort 50 Firmware-Dateien für sieben Gerätecodes, und das meiste davon passiert ohne Handarbeit. Stand ist der 29.09.2026.
Einreichen per Issue
Der Firmware-Checker reicht eine Firmware als Issue mit dem Label firmware-submission ein. Daraufhin startet ein Workflow, der die Datei lädt, nach firmwares/<Gerät>/<Typ>/<Version>/ ablegt, die chinesischen Release Notes ins Deutsche und Englische übersetzt (mit einem Cache für die Übersetzungen) und die metadata.json schreibt. Anschließend werden Changelogs – global, je Gerät und je Modul, jeweils auf Englisch und Deutsch – und die README neu erzeugt. Die Skripte sind reines Node.js ohne npm-Abhängigkeiten.
Prüfen, bevor archiviert wird
Nach dem Download vergleicht der Archiver die Datei mit den Werten aus der Marstek-API, die im Issue stehen: Größe und Prüfsumme, und zwar CRC-16/MODBUS über die gesamte Datei. Stimmt etwas nicht, wird das Issue nicht archiviert, sondern als Fehler markiert. Fehlen die API-Werte, etwa bei älteren Einreichungen, wird die Prüfung übersprungen. Das Ergebnis steht als apiCrc, apiSize und verified in den Metadaten.
Für Fälle, in denen die API der Datei durchgehend einen nicht passenden CRC meldet, gibt es --ignore-verify. So archivierte Einträge behalten verified: false. Beim Einbau der Prüfung fiel außerdem auf, dass die Micro-Inverter-Firmware im Einreichungswerkzeug als „MPPT“ geführt wurde, obwohl der passende Modul-Slot der API micro ist. Der Typ wird jetzt aus der Antwort der API abgeleitet, der Bestand wurde migriert und erneut gegen die API-Werte verifiziert.
Ein zweites Archiv als Quelle
Mit rweijnen/marstek-firmware-archive gibt es ein Archiv von Remko Weijnen. 16 Versionen, die dort lagen und hier fehlten, wurden einmalig übernommen (HME-3, Venus E Gen 1/2 und Saturn/B2500 komplett, bei HME-4 und Venus E 3.0 ergänzt) und in der README als „↗ ref“ markiert. Inzwischen läuft täglich um 04:37 UTC ein Abgleich, der Fehlendes übernimmt – nicht direkt auf main, sondern als Pull Request auf einen rollenden Branch upstream-sync, damit Fremdinhalte vor dem Merge gesichtet werden. Ohne Neues passiert nichts. Dateinamen folgen beim Import dem eigenen Schema <Version>_<Typ>_<Gerät>_<Original>, und Gerätenamen aus der Fremdquelle werden maskiert.
Was dazukam
- Das WLAN-Modul FC41D als eigener Firmware-Typ (
.rbl), dazu eine Basisversion von 2024 für die Venus D. - Selbstbeschreibende Dateinamen und korrekte Versionssortierung; das Venus-E-3.0-Präfix mit einem Tippfehler (
VNSEE3-0_) wurde entfernt. - Anonymisierte Gerätenamen in den
metadata.json. - README zuerst auf Englisch, die deutsche Fassung als
README.de.md; Changelogs zweisprachig. - Beta-Versionen mit Punkt (149.2 statt 1492), überall gleich; mehrteilige Release Notes gestapelt in der Spalte „Changes“. Einige chinesische Release Notes wurden von Hand korrigiert.
- Eine
index.json, die alle flashbaren Images kompakt auflistet (Typ, Version, Datei, Größe, SHA-256, Datum, Notizen in Englisch und Deutsch) und für Werkzeuge gedacht ist.
Aktueller Stand
Aufgeführt sind: Venus E 3.0 mit 15 Versionen, Venus A und Venus D mit je 11, Venus E Gen 1/2 mit 5, die Smart Meter mit 4 und 3 sowie Saturn/B2500 mit einer. Zuletzt kamen Control v151 für Venus D und E 3.0 (29.09.), Micro v116 für die Venus E 3.0 (24.09.) und deren FC41D-Firmware (23.09.) hinzu. Das Archiv ist die Quelle für die Auswahl „Aus Archiv wählen“ in Marstek BLE Control und der BLE Bridge.
Zu den Projekten
-
Marstek Firmware Archiv
Community-Archiv originaler Marstek-OTA-Firmware für Venus E, D und A, Saturn/B2500 und die Zähler CT002/P1 – mit zweisprachigen Release Notes, SHA-256-Prüfsummen und Changelogs je Gerät.
-
Marstek Firmware Downloader
Fork des Firmware-Checkers von Remko Weijnen: zeigt die für ein Marstek-Gerät angebotenen OTA-Firmware-Updates, lädt die Dateien vor der Installation herunter und spendet sie an ein Community-Archiv.
Unterstützen
Diese Tools entstehen in meiner Freizeit und bleiben kostenlos, offen und cloud-frei. Wenn dir eins davon einen Nachmittag gespart hat, freue ich mich über einen Kaffee oder ein Stück Pizza.
Kaffee oder PizzaWeitere Beiträge
- Rollladen-Steuerung pro Raum: Taster, Fenster, Kälte und Regen Eine Automation pro Raum, die Taster, Fensterkontakt, Kälte, Regen und die Zeit vor Sonnenaufgang zusammenführt. Zwei Merker-Helfer verhindern, dass sich die Auslöser gegenseitig überfahren.
- Stromausfall erkennen und Geräte wiederherstellen in Home Assistant Nach einem Stromausfall booten Lampen und Steckdosen in zufälligen Zuständen. Drei Erkennungswege, ein gemeinsames Script und ein Wiederherstellungsfenster bringen alles wieder in den gewünschten Zustand.
- Rauchmelder löst aus: Alle Rollläden fahren hoch (Home Assistant) Bei Rauchalarm sollen die Rollläden im ganzen Haus hochfahren, damit Fenster als Fluchtweg frei sind. Die Automation ist kurz – aber ein fehlendes „from“ im Trigger entscheidet darüber, ob sie im Ernstfall überhaupt feuert.