# Zendure SolarFlow MQTT Passwort knacken

> Zendure SolarFlow lokal über MQTT ohne anonymen Benutzer und mit mehr Sicherheit steuern.

_Quelle: https://tbsch.de/post/2025-06-30-zendure-solarflow-mqtt-passwort-knacken/ · Stand: 2025-06-30_


Wenn du deine **[Zendure SolarFlow Speicherlösung](https://www.zendure.de)** ebenfalls von der Cloud befreit hast, wirst du wahrscheinlich einen MQTT-Broker mit anonymen Logins eingerichtet haben, um an die Sensor-Messwerte zu gelangen.

In diesem Artikel möchte ich dir zeigen, wie du an das hardcoded Passwort deines SolarFlow-Geräts gelangst. Getestet habe ich das Verfahren mit einem **Hub 2000**, mit ein bisschen Glück funktioniert es auch bei den anderen Geräten.

## Vorgehensweise

### 1. Device ID

Wenn du deinen SolarFlow aus der Cloud befreit hast, verfügst du bereits über seine *Device ID*. Falls nicht, schau dir am besten einmal den [Artikel darüber](/post/2025-06-15-zendure-solarflow-lokal-uber-mqtt-steuern/) von mir an.

### 2. Passwort ermitteln

Auf GitHub habe ich ein paar kleine Programme veröffentlicht, mit denen das Passwort ermittelt werden kann. Das Projekt steht dort als **Micro-Webseite**, **Node.js**- und **Python**-Script zur Verfügung.

<div class="tb-gh-card"><div class="tb-gh-og-gate" data-name="consent-gate-github">
      <a class="tb-gh-og-link" href="https://github.com/tb1337/zendure-solarflow-mqtt-pwd-gen" target="_blank" rel="noopener noreferrer" aria-label="tb1337/zendure-solarflow-mqtt-pwd-gen auf GitHub">
        <img class="tb-gh-og" data-name="consent-gate-github"
          data-src="https://opengraph.githubassets.com/0/tb1337/zendure-solarflow-mqtt-pwd-gen"
          alt="tb1337/zendure-solarflow-mqtt-pwd-gen auf GitHub" loading="lazy" decoding="async" width="1200" height="600">
      </a>
    </div>
    <a class="tb-gh-link" href="https://github.com/tb1337/zendure-solarflow-mqtt-pwd-gen" target="_blank" rel="noopener noreferrer">
      <svg aria-hidden="true"
  xmlns="http://www.w3.org/2000/svg"
 
 
  viewBox="0 0 24 24"
  fill="none"
  stroke="currentColor"
  stroke-width="2"
  stroke-linecap="round"
  stroke-linejoin="round"
 
>
  <path stroke="none" d="M0 0h24v24H0z" fill="none" />
  <path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" />
</svg><span>Link zum Projekt</span>
    </a>
  </div>

Alternativ dazu kannst du das Passwort auch direkt hier ermitteln. Meine Webseite berechnet es für dich direkt in deinem Browser, deine *Device ID* wird also nicht an mich übertragen.

<label for="zen-device-id"><strong>Device ID:</strong></label><br>
<input type="text" id="zen-device-id" placeholder="Device ID eingeben" maxlength="20"><br>
<div id="zen-output"></div>

### 3. MQTT User konfigurieren

Als *Home Assistant* User mit dem **Mosquitto Broker Add-on** hast du es am einfachsten, denn du musst nur einen kleinen Eintrag in der Konfiguration erzeugen und das Add-on anschließend neu starten.

**Zur Veranschaulichung verwende ich `ABCdef123` als *Device ID*.**

```yaml
- username: ABCdef123
  password: A599C0002BC5E5F5
```

Falls du **nicht** mit *Home Assistant* oder dem Add-on ausgestattet bist und stattdessen einen eigenen *mosquitto* Broker betreibst, erzeugst du neue User in der Regel so:

```bash
mosquitto_passwd -b /etc/mosquitto/passwd ABCdef123 A599C0002BC5E5F5
```

Das gilt jedoch nicht für gänzlich andere Broker, wie z.B. *EMQX* oder *HiveMQ*.

## Fazit

Auch wenn das gesamte Prozedere die Sicherheit deines Smart Homes nur minimal tangiert (wenn überhaupt), fühlt man sich doch um einiges wohler, wenn man keinen MQTT-Broker mit anonymen Logins betreiben muss :grin:.

---

Das Titel-/Hintergrundbild stammt von [Leo_Visions](https://unsplash.com/de/@leo_visions_?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) auf [Unsplash](https://unsplash.com/de/fotos/ein-schloss-an-einer-tur-jRo9ensL500?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash).

<script src="/lib/spark-md5/spark-md5.min.js" defer></script>
<script src="zendure-mqtt.js" defer></script>

