README: komplett neu — ShineLAN-X HAOS Add-on + ShineWifi-X ESPHome

Beide Lösungen vollständig dokumentiert: ShineLAN-X+HAOS Add-on (primär,
produktiv seit 2026-04-26) und ShineWifi-X ESPHome. Flash-Anleitung,
Hardware-Pinbelegung, Modbus-Register, Repo-Struktur.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
retr0
2026-04-26 12:29:29 +02:00
parent c74fafa6c0
commit 37ef054bbe
+140 -124
View File
@@ -1,169 +1,185 @@
# Growatt Wechselrichter → Home Assistant (ohne Cloud) # Growatt Wechselrichter → Home Assistant (ohne Cloud)
Dieses Repository enthält ESPHome-Konfigurationen für Growatt Wechselrichter, die über den **Growatt SuniStick** (ESP8266) per Modbus RTU direkt in Home Assistant OS integriert werden — vollständig ohne die Growatt-App oder Cloud. Lokale Integration von Growatt Wechselrichtern in Home Assistant OS — vollständig ohne Growatt-App oder Cloud. Dieses Repository enthält zwei unabhängige Lösungen je nach Hardware:
| Hardware | Lösung | Status |
|---|---|---|
| **Growatt ShineLAN-X** (LAN-Stick, STM32) | NuttX-Firmware + HAOS Add-on | ✅ Produktiv |
| **Growatt ShineWifi-X** (WLAN-Stick, ESP8266) | ESPHome-Konfigurationen | ✅ Getestet |
--- ---
## Funktionsprinzip ## Lösung 1: ShineLAN-X + HAOS Add-on (empfohlen)
Der **Growatt ShineLAN-X** ist ein LAN-Monitoring-Stick mit einem STM32F103-Mikrocontroller. Er steckt im USB-Port des Wechselrichters und kommuniziert via Modbus RTU.
### Wie es funktioniert
``` ```
PV-Anlage Growatt Wechselrichter
USB (Modbus RTU)
[Growatt Wechselrichter] [ShineLAN-X] ← STM32F103 mit NuttX-Firmware
RS485 / Modbus RTU Modbus TCP Port 502 (Ethernet)
[Growatt SuniStick] ← ESP8266 mit ESPHome-Firmware [HAOS Add-on]
│ Wi-Fi ├── liest Sensordaten per Modbus TCP
[Home Assistant OS] ├── publiziert via MQTT Discovery → Home Assistant Sensoren
└── Web UI (Wechselrichter verwalten, Live-Daten, Verlaufsgraphen)
``` ```
Der SuniStick steckt im RS485-Port des Wechselrichters und kommuniziert per **Modbus RTU** (115200 Baud). ESPHome liest die Register aus und stellt sie als Sensoren in HAOS bereit. Keine Cloud, keine App, kein Intermediär. ### Features
--- - **Mehrere Wechselrichter** — beliebig viele, jeder mit eigenem HA-Gerät
- **MQTT Discovery** — Sensoren erscheinen automatisch in HA (kein manuelles Anlegen)
- **Web UI** — Wechselrichter hinzufügen/bearbeiten, Live-Daten mit Sparklines (5 Min)
- **OTA-Updates** — NuttX-Firmware via USB DFU aktualisierbar (kein ST-Link nötig)
- **Kein Cloud-Zwang** — alles lokal im Heimnetz
## Unterstützte Modelle ### Unterstützte Wechselrichter-Modelle
| Modell | Typ | Phasen | Batterie | Status | | Modell | Typ | Sensoren |
|--------|-----|--------|----------|--------| |---|---|---|
| [Growatt MIC 1500 TL-X](./Growatt%20MIC%201500%20TL-X/) | String-WR | 1-phasig | Nein | Getestet ✓ | | Growatt MIC 1500/2000 TL-X | 1-phasig | 10 |
| [Growatt SPH 5000 TL3-BH-UP](./Growatt%20SPH%205000%20TL3/) | Hybrid-WR | 3-phasig | Ja | Getestet ✓ | | Growatt SPH 5000 TL3-BH-UP | 3-phasig + Batterie | 28 |
| Growatt MOD 6000 TL3-XH | 3-phasig | 17 |
Andere Growatt-Modelle verwenden teilweise dieselben Register — die Konfigurationen können als Ausgangsbasis dienen, die Adressen müssen aber anhand des jeweiligen Datenblatts geprüft werden. ### Installation (HAOS Add-on)
--- **Schritt 1 — NuttX auf den ShineLAN-X flashen** *(einmalig, ST-Link nötig)*
## Hardware: Growatt SuniStick
Der SuniStick ist ein offizielles Growatt-Zubehör und enthält einen **ESP8266-Chip** (Board: `esp07s`). Er wird direkt in den RS485-Port des Wechselrichters gesteckt.
**UART-Pinbelegung (intern):**
- TX: GPIO 1
- RX: GPIO 3
- Baud: 115200
**LED-Pinbelegung:**
- Blau: GPIO 16
- Grün: GPIO 0
- Rot: GPIO 2
---
## SuniStick flashen
> Der SuniStick muss einmalig mit ESPHome-Firmware geflasht werden. Danach sind OTA-Updates möglich.
### Voraussetzungen
- [ESPHome](https://esphome.io) installiert (z.B. als HAOS Add-on oder per pip)
- USB-zu-Serial-Adapter (3,3 V!) zum erstmaligen Flashen
- SuniStick geöffnet (4 Schrauben) und mit dem Adapter verbunden
### Verkabelung zum Flashen
| SuniStick | USB-Serial-Adapter |
|-----------|--------------------|
| TX | RX |
| RX | TX |
| GND | GND |
| 3,3 V | 3,3 V |
GPIO 0 muss beim Start auf GND gezogen werden (Flash-Modus).
### YAML vorbereiten
1. Passende YAML aus diesem Repository kopieren
2. Die vier markierten Platzhalter durch eigene Werte ersetzen:
```yaml
api:
encryption:
key: "HIER_API_KEY_EINTRAGEN" # In der ESPHome-UI auf "Generate" klicken → Key kopieren
ota:
- platform: esphome
password: "HIER_OTA_PASSWORT_EINTRAGEN" # Frei wählbar, z.B. "meinOTApasswort123"
wifi:
ssid: "HIER_WLAN_NAME_EINTRAGEN" # Genauer WLAN-Name (Groß-/Kleinschreibung beachten)
password: "HIER_WLAN_PASSWORT_EINTRAGEN" # WLAN-Passwort
ap:
password: "HIER_HOTSPOT_PASSWORT_EINTRAGEN" # Min. 8 Zeichen — für den Notfall-Hotspot
```
> Der API-Key wird in der ESPHome-UI automatisch generiert, wenn man eine neue Config anlegt. Alternativ kann man einen beliebigen 32-Byte Base64-String verwenden.
### Flashen (Erstinstallation)
```bash ```bash
esphome run growatt-mic-1500.yaml # dapboot Bootloader (0x08000000)
~/.platformio/packages/tool-stm32duino/stlink/st-flash write \
ShineLAN-X/releases/dapboot.bin 0x08000000
# NuttX Firmware (0x08002000)
~/.platformio/packages/tool-stm32duino/stlink/st-flash write \
ShineLAN-X/releases/nuttx-mbusd-shinelanx-dfu.bin 0x08002000
``` ```
oder über die ESPHome-Web-UI im HAOS Add-on. SWD-Pinbelegung: PA13=SWDIO, PA14=SWCLK, GND, 3.3V
Nach dem ersten Flash sind alle weiteren Updates per **OTA über Wi-Fi** möglich — kein Aufschrauben mehr nötig. **Schritt 2 — Add-on in Home Assistant installieren**
1. **Einstellungen → Add-ons → Add-on-Store → ⋮ → Repositories**
2. URL eintragen: `https://gitea.bitfire.work/retr0/Growatt-Wechselrichter-HAOS`
3. „Growatt ShineLAN-X" → Installieren
4. MQTT-Zugangsdaten in der Add-on-Konfiguration eintragen
5. Starten → Web UI öffnen → Wechselrichter hinzufügen
**Schritt 3 — Wechselrichter im Web UI konfigurieren**
Im Tab „Wechselrichter" → „+ Wechselrichter hinzufügen":
- Name (z.B. „Dach Süd")
- Modell auswählen
- IP-Adresse des ShineLAN-X
- MQTT Topic-Präfix (z.B. `growatt/dach`)
Sensoren erscheinen danach automatisch in HA unter **Einstellungen → Geräte & Dienste → MQTT**.
### Flash-Layout NuttX
```
0x08000000 dapboot (7 KB) ← Bootloader, ermöglicht OTA via USB DFU
0x08002000 NuttX (93 KB) ← Modbus RTU ↔ TCP Gateway auf Port 502
```
### Hardware ShineLAN-X
| Komponente | Details |
|---|---|
| MCU | STM32F103RC (256 kB Flash, 64 kB RAM) |
| Ethernet | ENC28J60 (SPI2) |
| USB | PA11=D, PA12=D+, PA8=Pullup |
| Debug UART | USART1, PA9=TX, PA10=RX, 115200 Baud |
| SWD | PA13=SWDIO, PA14=SWCLK |
| LEDs | PC7 (blau intern), PB1 (rot), PB0 (grün), PC5 (blau RGB) |
--- ---
## Integration in Home Assistant ## Lösung 2: ShineWifi-X (ESPHome)
Nach dem ersten Start verbindet sich ESPHome automatisch mit HAOS. Home Assistant erkennt das Gerät per mDNS und zeigt eine Benachrichtigung zur Integration an. Der **Growatt ShineWifi-X** ist ein WLAN-Monitoring-Stick mit ESP8266. Er steckt im RS485-Port des Wechselrichters. ESPHome liest die Register direkt aus und meldet sie an Home Assistant.
**Einstellungen → Geräte & Dienste → ESPHome → Gerät hinzufügen** ```
Growatt Wechselrichter
│ RS485 / Modbus RTU
[ShineWifi-X] ← ESP8266 mit ESPHome-Firmware
│ WLAN
[Home Assistant OS] ← native ESPHome-Integration
```
Alle konfigurierten Sensoren erscheinen danach automatisch als Entitäten. ### Unterstützte Modelle (ShineWifi-X)
### Energie-Dashboard | Modell | YAML |
|---|---|
| Growatt MIC 1500 TL-X | `ShineWifi-X/Growatt MIC 1500 TL-X/` |
| Growatt MIC 2000 TL-X | `ShineWifi-X/Growatt MIC 2000 TL-X/` |
| Growatt SPH 5000 TL3-BH-UP | `ShineWifi-X/Growatt SPH 5000 TL3/` |
| Growatt MOD 6000 TL3-XH | `ShineWifi-X/Growatt MOD 6000 TL3-XH/` |
Für das HA Energie-Dashboard werden kumulative kWh-Sensoren benötigt (`state_class: total_increasing`). Diese sind in den Konfigurationen bereits korrekt gesetzt. ### ShineWifi-X flashen
**Einstellungen → Energie → Konfigurieren:** > Erstinstallation benötigt einen USB-zu-Serial-Adapter (3,3 V). Danach OTA über WLAN möglich.
| Dashboard-Feld | Sensor (SPH) | Sensor (MIC) | 1. YAML aus dem passenden Modell-Ordner kopieren
|----------------|-------------|--------------| 2. WLAN-Zugangsdaten und API-Key eintragen
| Solar-Erzeugung | `Energy Total` | `EnergyTotal` | 3. Erstinstallation via seriell:
| Netzbezug | `Energy Import Total` | — | ```bash
| Netzeinspeisung | `Energy Export Total` | — | esphome run ShineWifi-X/Growatt\ MIC\ 1500\ TL-X/*.yaml
| Batterie laden | `Battery Charge Total` | — | ```
| Batterie entladen | `Battery Discharge Total` | — |
UART-Pinbelegung ShineWifi-X: TX→GPIO1, RX→GPIO3, Baud 115200
--- ---
## Modbus-Adressen: Modellunterschiede ## Repository-Struktur
Growatt verwendet je nach Wechselrichter-Serie unterschiedliche Register-Maps. Die Adressen aus einer Config lassen sich **nicht 1:1 auf andere Modelle übertragen**.
| Serie | Typische Modelle | Besonderheit |
|-------|-----------------|--------------|
| MIC | MIC 6002000 TL-X | 1-phasig, kein Batterie-Bereich |
| MIN | MIN 25006000 TL-XH | 1-phasig, Hybrid |
| SPH | SPH 30006000 TL3-BH | 3-phasig, Hybrid, Batterie im 1000er-Bereich |
| MOD | MOD 500015000 TL3-XH | 3-phasig, Hybrid, abweichende Map |
---
## Struktur des Repositories
``` ```
. .
├── README.md ← Diese Datei ├── README.md
├── Growatt MIC 1500 TL-X/ ├── haos-addon/ ← HAOS Add-on (ShineLAN-X)
── Growatt MIC 1500 TL-X.yaml ← ESPHome Config ── config.yaml # Add-on Manifest
└── Growatt SPH 5000 TL3/ │ ├── Dockerfile
├── Growatt SPH 5000 TL3-BH-UP.yaml ├── build.yaml
└── README.md ← Modbus-Registertabelle └── src/
│ ├── main.py # Flask + Poll-Threads
│ ├── modbus_client.py # pymodbus Modbus TCP
│ ├── mqtt_publisher.py # MQTT Discovery
│ ├── inverters.py # Register-Definitionen
│ └── web/index.html # Web UI
├── ShineLAN-X/
│ ├── firmware/ # Arduino-Stack (aufgegeben, rx=0)
│ └── releases/
│ ├── nuttx-mbusd-shinelanx.bin # NuttX ohne DFU
│ └── nuttx-mbusd-shinelanx-dfu.bin # NuttX mit dapboot (empfohlen)
├── ShineWifi-X/ ← ESPHome Configs
│ ├── Growatt MIC 1500 TL-X/
│ ├── Growatt MIC 2000 TL-X/
│ ├── Growatt SPH 5000 TL3/
│ └── Growatt MOD 6000 TL3-XH/
└── shinelanx-modbus/ ← mwalle NuttX Board-Support
└── contrib/dapboot/dapboot.bin
``` ```
--- ---
## Beitragen ## Modbus-Registerübersicht (Growatt, FC04)
Wer eine eigene Growatt-Config ergänzen möchte: | Register | Sensor | Modelle | Scale |
|---|---|---|---|
1. Neuen Ordner nach Schema `Growatt MODELL/` anlegen | 3 | PV Spannung | alle | ×0.1 V |
2. YAML-Config mit korrekten Modbus-Adressen (aus dem offiziellen Datenblatt oder verifiziert) einfügen | 4 | PV Strom | alle | ×0.1 A |
3. README mit Registertabelle dazulegen (Vorlage: [Growatt SPH 5000 TL3/README.md](./Growatt%20SPH%205000%20TL3/README.md)) | 56 | PV Leistung | alle | ×0.1 W |
| 37 | Netz-Frequenz | alle | ×0.01 Hz |
| 38 | Netz-Spannung | alle | ×0.1 V |
| 4041 | AC Ausgangsleistung | alle | ×0.1 W |
| 5354 | Energie Heute | alle | ×0.1 kWh |
| 5556 | Energie Gesamt | alle | ×0.1 kWh |
| 93 | Temperatur | alle | ×0.1 °C |
| 10091058 | Batterie + Netz | SPH | ×0.1 |
--- ---
## Lizenz ## Lizenz
Frei verwendbar und anpassbar. Passwörter, API-Keys und WLAN-Daten sind in allen Configs durch sprechende Platzhalter (`HIER_..._EINTRAGEN`) markiert — diese müssen vor dem Einsatz individuell gesetzt werden. Frei verwendbar und anpassbar. Keine Garantie für Richtigkeit der Modbus-Register — immer gegen das offizielle Growatt-Datenblatt des jeweiligen Modells prüfen.