sphings-dev.de

Energie & Speicher

Marstek BLE Control

Web-App

Cloud-freies Bedienfeld für Marstek Venus A, D und E 3.0 im Browser über Web Bluetooth: Betriebsmodus, Leistungsgrenzen, Peak Shaving, lokale API und Firmware-Updates per Bluetooth. Kein Konto, keine App.

Website / Tool (öffnet in neuem Tab)Repository (öffnet in neuem Tab)

Steckbrief

Sprache
TypeScript
Lizenz
Apache-2.0
Aktuelle Version
1.0.0
Projektstart

Marstek BLE Control ist eine einzelne statische Webseite, die per Web Bluetooth direkt mit einem Marstek-Venus-Speicher spricht. Seite öffnen, verbinden, Speicher auswählen – nichts wird installiert, es gibt kein Konto, und es werden keine Daten irgendwohin geschickt. Jeder Befehl geht vom Browser direkt zur Batterie. Die gehostete Fassung läuft unter https://sphings-dev.de/marstek/control/. Das Projekt ist ein Fork und eine Weiterentwicklung von Hypfer/venuscontrol, das auf die Venus A zielt und früher auch hier als Venus Control geführt wurde. Das Reverse Engineering der Grundlagen stammt von Hypfer.

Was dazugekommen ist

  • Unterstützung der Venus D (auf echter Hardware bestätigt) und der Venus E 3.0 (MST_VNSE3_*) mit eigenem Dashboard ohne PV/MPPT, Mehrmodul-Ansicht und Überschusseinspeisung, weil deren Firmware nichts davon umsetzt.
  • Firmware-Updates über Bluetooth für Venus A, D und E 3.0: Control/EMS, BMS, MPPT und Micro-Inverter. EMS-, BMS- und VNS/Micro-Updates sind auf einer Venus D und einer Venus E 3.0 bestätigt; MPPT ist nur deshalb ungeprüft, weil noch kein MPPT-Image im Firmware-Archiv liegt.
  • Modellerkennung für Firmware-Dateien: Aus dem Tag VNSA/VNSD/VNSE in jedem Image wird erkannt, ob die Datei zum verbundenen Gerät passt. Geprüft gegen alle 27 Venus-Images im Archiv.
  • Auswahl der Geräte-Leistungsklasse mit den Werten, die die Firmware des jeweiligen Modells akzeptiert (Venus A 800 / 1200 / 1500 W, Venus D 800 / 2200 / 2500 W, Venus E 3.0 600 / 800 / 2500 W).
  • Peak Shaving, Offset für den Eigenverbrauch, Schalter für die lokale API, Gerätezeit setzen.
  • Oberfläche auf Deutsch und Englisch, nach Browser gewählt und umschaltbar.
  • Zuverlässigeres BLE: korrekte Befehls-IDs und das Zusammensetzen fragmentierter Antworten.

Der Shelly-Trick

Für den Betrieb ohne Cloud braucht der Speicher einen Netzleistungs-Messwert. Er erwartet dafür einen Shelly Pro 3EM, gibt sich aber mit allem im LAN zufrieden, was auf UDP-Port 1010 an der Broadcast-Adresse lauscht und seine Anfragen beantwortet. Das Protokoll muss man nicht einmal sauber sprechen: Der JSON-Parser der Firmware ist keiner, sondern sucht grob einen String-Offset und liest zwei Bytes weiter eine Zahl. Eine Antwort wie a_act_power==${l1},b_act_power==${l2},c_act_power==${l3},total_act_power==${total} genügt. Gelesen wird der Speicher dann per Modbus TCP, etwa mit der Marstek Modbus Suite.

Browser und Hosting

Web Bluetooth ist eine Browserfunktion. Auf dem Desktop (Windows, macOS, Linux) braucht man Chrome oder Edge, auf Android Chrome. Auf iOS und iPadOS funktionieren weder Safari noch Chrome; dort hilft der Browser Bluefy mit eigener Engine. Wer selbst hosten will, baut mit npm run build statische Dateien in dist/ und legt sie auf einen Server mit HTTPS – Web Bluetooth verlangt einen sicheren Kontext.

Außerhalb der Reichweite des Speichers liefert die Marstek BLE Bridge dieselbe Oberfläche aus einem ESP32 aus; beide werden zusammen veröffentlicht und teilen sich die Versionsnummer. Cloud-Funktionen wie Arbitrage nach dynamischen Strompreisen bleiben bewusst außen vor. Firmware-Updates bergen Risiko: Ein abgebrochener oder falscher Flash kann ein Modul unbrauchbar machen. Das Projekt ist inoffiziell und nicht mit Marstek verbunden.