sphings-dev.de

Energie & Speicher

Marstek BLE Bridge

ESP32

ESP32-Brücke, die die Bluetooth-LE-Verbindung eines Marstek-Venus-Speichers ins Netzwerk überträgt und die Weboberfläche von Marstek BLE Control selbst ausliefert. Ohne Cloud, ohne App, inklusive Firmware-Updates.

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

Steckbrief

Sprache
C
Lizenz
Apache-2.0
Aktuelle Version
1.3.15
Projektstart

Die Marstek BLE Bridge ist ein ESP32, der in der Nähe eines Marstek-Venus-Speichers liegt, dessen Bluetooth-LE-Verbindung hält und sie über WLAN per WebSocket weitergibt. Dazu liefert er die komplette Weboberfläche von Marstek BLE Control aus seinem eigenen Flash aus. Aufgerufen wird sie im Browser unter http://marstek-bridge.local/ – von jedem Ort im Haus, ohne dass man neben dem Speicher stehen muss.

Warum die Brücke die Oberfläche selbst ausliefert

Eine Seite unter https:// darf im Browser keine ws://-Verbindung zu einem Gerät im LAN öffnen. Wenn die Bridge die Oberfläche selbst ausliefert, läuft alles über einfaches HTTP im selben Ursprung: keine Zertifikatswarnung, kein Mixed Content, nichts zu konfigurieren. Die Bridge versteht das Marstek-Protokoll dabei nicht. Sie reicht Bytes durch – eine WebSocket-Nachricht wird zum Bluetooth-Write, eine Notification zur WebSocket-Nachricht. Alle Protokolldetails bleiben in der Web-App.

Schema: Der Browser erreicht den Speicher über einen ESP32 – WLAN und WebSocket zur Bridge, Bluetooth von der Bridge zur Batterie

Funktionen

  • Bis zu vier Browser gleichzeitig; die Bluetooth-Verbindung wird erst gekappt, wenn der letzte geht.
  • Anmeldung per Challenge-Response, das Passwort selbst läuft nie übers Netz. Das erste Passwort lässt sich nur in den zehn Minuten nach dem Start setzen.
  • Firmware-Updates der Bridge über WLAN in einen zweiten App-Slot; ein Image, das bootet, aber nicht erreichbar ist, fällt selbstständig auf den vorherigen Stand zurück.
  • Einrichtung per Improv Serial aus dem Web-Installer oder über den eigenen Access Point Marstek-Bridge-XXXX.
  • Erreichbar als marstek-bridge.local, umbenennbar, Passwort änderbar.
  • Status-LED für Start, Online, kein WLAN und eigenen Access Point.
  • Oberfläche auf Deutsch und Englisch, passend zum Browser.
  • Firmware-Updates des Speichers selbst (Control/EMS, BMS, Micro-Inverter), auch aus dem Firmware-Archiv heraus.

Hardware und Installation

Gebraucht wird ein ESP32 mit WLAN, Bluetooth LE und 4 MB Flash. Empfohlen ist der ESP32-WROOM-32 (die üblichen NodeMCU-/DevKit-Boards), unterstützt wird auch der ESP32-S3. ESP32-CAM-Boards funktionieren, sind aber die unbequeme Wahl: kleine Antenne und eine 5-V-Schiene, die beim Start des Funkmoduls Mühe hat. Deshalb ist die Sendeleistung standardmäßig niedrig begrenzt; BRIDGE_WIFI_MAX_TX_POWER lässt sich bei solider Stromversorgung anheben.

Geflasht wird im Browser (Chrome oder Edge) über den Web-Installer. Er fragt über dasselbe USB-Kabel nach dem WLAN und nennt danach die Adresse der Bridge. Wer selbst bauen will, braucht ESP-IDF 5.5.x; tools/sync-web.sh holt die Weboberfläche aus dem App-Repository und packt sie auf etwa 200 KB.

Sicherheit und Grenzen

Die Bridge spricht bewusst nur HTTP. Ein selbstsigniertes Zertifikat würde Nutzer an Warnungen gewöhnen, ohne etwas zu schützen, und TLS kostet Speicher, den ein Firmware-Transfer braucht. Das Cookie der Sitzung läuft unverschlüsselt durchs LAN; die Bridge hält also einen Gast oder Mitbewohner draußen, aber niemanden, der schon im Netz mitliest. Sie gehört nicht ins Internet – für den Zugriff von außen ein VPN, bei Bedarf ein eigenes VLAN.

Die Bridge erreicht das Internet nur für die Suche nach und den Download von eigenen Updates von GitHub. Das Projekt ist inoffiziell und steht in keiner Verbindung zu Marstek.