sphings-dev.de

Marstek BLE Bridge: Der Venus-Speicher im Netzwerk

Bluetooth kommt an guten Tagen durch eine Wand. Heimspeicher stehen aber im Keller oder Hauswirtschaftsraum, und wer Betriebsmodus, Ladegrenze oder Zeitplan ändern will, geht mit dem Handy runter und stellt sich neben die Batterie. Die Marstek BLE Bridge löst das mit einem ESP32, der neben dem Speicher bleibt und die Verbindung ins Netzwerk trägt.

Was die Bridge tut

Der ESP32 hält die Bluetooth-LE-Verbindung zum Speicher und gibt sie über einen WebSocket an Browser im WLAN weiter. Außerdem liefert er Marstek BLE Control – die komplette Weboberfläche – aus seinem eigenen Flash aus. Man öffnet http://marstek-bridge.local/, setzt ein Passwort, wählt den Speicher aus dem Scan und verbindet sich.

Schema: Browser, WLAN und WebSocket zur Bridge, Bluetooth von der Bridge zur Batterie

Dass die Bridge die Oberfläche selbst ausliefert, hat einen technischen Grund: Eine Seite unter https:// darf keine ws://-Verbindung zu einem Gerät im LAN öffnen. Läuft alles vom ESP32 über einfaches HTTP, ist es derselbe Ursprung – keine Zertifikatswarnung, kein Mixed Content. Das Marstek-Protokoll kennt die Bridge dagegen nicht. Sie überträgt Bytes: Aus einer WebSocket-Nachricht wird ein Bluetooth-Write, aus einer Notification eine WebSocket-Nachricht. Alle Details des Protokolls bleiben an einer Stelle, in der Web-App.

Was in 1.0.0 steckt

  • Die Bridge abonniert beide Characteristics 0xFF01 und 0xFF02. Die Venus D meldet sich auf der Characteristic, auf die geschrieben wird – nicht auf der, die das Profil nahelegt.
  • Bis zu vier Browser gleichzeitig. Die Bluetooth-Verbindung bricht erst ab, wenn der letzte weg ist.
  • Login per Challenge-Response, damit das Passwort nicht übers Netz geht. Das erste Passwort lässt sich nur in den ersten zehn Minuten nach dem Start setzen, damit eine eingeschaltete, aber nicht in Besitz genommene Bridge nicht dauerhaft offen bleibt.
  • Updates über WLAN aus den GitHub-Releases. Die Firmware landet im freien Slot und wird erst gebootet, wenn sie vollständig ist. Ein Image, das bootet, aber nicht erreichbar ist, wird durch das vorherige ersetzt.
  • WLAN-Einrichtung per Improv Serial aus dem Installer oder über die Setup-Seite auf dem eigenen Access Point Marstek-Bridge-XXXX.
  • Erreichbarkeit als marstek-bridge.local und eine Status-LED für Start, Online, kein WLAN und Access-Point-Modus.
Bedienoberfläche auf dem Smartphone: Ladezustand, Batterie- und Netzleistung sowie der WLAN-Empfang der Bridge neben dem Bluetooth-Signal

Hardware und Flashen

Jeder ESP32 mit WLAN, Bluetooth LE und 4 MB Flash reicht. Empfohlen ist der ESP32-WROOM-32, unterstützt ist auch der ESP32-S3. Entwickelt wurde auf einem ESP32-CAM, der aber die unbequeme Wahl ist: kleine Antenne, und die 5-V-Schiene kommt ins Straucheln, sobald das Funkmodul startet. Deshalb ist die Sendeleistung ab Werk niedrig begrenzt. Bei solider Stromversorgung hebt man BRIDGE_WIFI_MAX_TX_POWER an und bekommt die Reichweite zurück.

Geflasht wird im Browser mit Chrome oder Edge über den Web-Installer. Er fragt über dasselbe Kabel nach dem WLAN und nennt anschließend die Adresse der Bridge. Der Flash ist mit zwei App-Slots à 1,5 MB und einer Web-Partition von 896 KB aufgeteilt.

Grenzen

Die Bridge spricht bewusst nur HTTP. Ein selbstsigniertes Zertifikat würde Menschen an Warnungen gewöhnen und nichts schützen, und TLS kostet den Speicher, den ein Firmware-Transfer braucht. Das Session-Cookie läuft deshalb lesbar durchs LAN. Das hält einen Gast oder Mitbewohner fern, aber niemanden, der im Netz bereits mitliest. Die Bridge gehört nicht ins Internet; für den Zugriff von außen ein VPN, bei Bedarf ein eigenes VLAN.

Getestet wurde 1.0.0 gegen eine Venus D. Andere Modelle laufen über denselben Byte-Relay und sollten funktionieren, sind aber in dieser Version nicht geprüft. Das Projekt ist inoffiziell und nicht mit Marstek verbunden.

Tags

Zu den Projekten

  • Marstek BLE Bridge

    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.

    ESP32Version 1.3.15github.com/sphings79/marstek-ble-bridge

  • Marstek BLE Control

    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.

    Web-AppVersion 1.0.0github.com/sphings79/marstek-ble-control

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 Pizza

Weitere Beiträge