Files
Shinebridge/Growatt ShineLAN-X/README.md
T
retr0 852ec90e6b ShineLAN-X: Initiale Firmware + Hardware-Diagnose
- STM32F103RBT6 Firmware für Growatt ShineLAN-X
- Bitbang-SPI (EthernetENC) auf Port C (PC6/PC7/PC8/PC9)
- UART-Debug auf USART1 (PA9/PA10), Modbus temporär deaktiviert
- SO-Aktivitätstest und ESTAT-Register-Scan bestätigen:
  ENC28J60 läuft (SO aktiv), SI/MOSI-Verbindung unterbrochen
- Nächster Schritt: Pin 5 ENC28J60 nachlöten oder Bodge-Draht

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 19:10:31 +02:00

3.8 KiB

Growatt ShineLAN-X — Custom Firmware

Custom-Firmware für den Growatt ShineLAN-X LAN-Stick. Liest Modbus RTU vom Wechselrichter und publiziert alle Werte per MQTT in Home Assistant — vollständig lokal, ohne Growatt-Cloud.


Hardware

Komponente Details
MCU STM32F103 (LQFP48)
Ethernet Unbekannt — vermutlich W5500 (SPI) — TODO: PCB prüfen
RS485 Transceiver auf Platine — TODO: Chip-Bezeichnung prüfen
Programmier-Interface SWD (SWDIO, SWDCLK, GND, 3.3V)
Anschluss RJ45 (Ethernet) + RS485-Port am Wechselrichter

Pin-Belegung (TODO — muss durch PCB-Analyse bestätigt werden)

Funktion STM32 Pin Hinweis
SPI SCK PA5 SPI1, fest
SPI MISO PA6 SPI1, fest
SPI MOSI PA7 SPI1, fest
ETH CS PA4 TODO: nachmessen
ETH RST PB1 TODO: nachmessen
RS485 DE/RE PB0 TODO: nachmessen
Modbus TX PA9 USART1, fest
Modbus RX PA10 USART1, fest
Debug TX PA2 USART2 (optional)

Wichtig: Die mit TODO markierten Pins müssen durch Nachmessen mit einem Multimeter auf der PCB bestätigt werden, bevor die Firmware geflasht wird. Falsche Pins beschädigen nichts, aber die Firmware funktioniert nicht.


Voraussetzungen

  • PlatformIO (VS Code Extension oder CLI)
  • ST-Link V2 Adapter (zum Flashen via SWD)
  • ShineLAN-X geöffnet und SWD-Pins angelötet oder angeklemmt

SWD-Verkabelung

ShineLAN-X ST-Link V2
SWDIO SWDIO
SWDCLK SWCLK
GND GND
3.3V 3.3V (nur wenn nicht extern versorgt)

Konfiguration

Alle Einstellungen in firmware/include/config.h anpassen:

// MQTT-Broker IP
#define MQTT_BROKER    "192.168.1.x"

// DHCP (1) oder statische IP (0)
#define USE_DHCP       1

// Modbus Slave-Adresse des Wechselrichters (Standard: 1)
#define MODBUS_ADDR    1

Flashen

cd firmware
pio run --target upload

Nach dem ersten Flash sind weitere Updates ebenfalls per ST-Link möglich, solange die SWD-Pins zugänglich sind.


MQTT Topics

Nach dem Start sendet die Firmware automatisch MQTT Discovery Pakete — Home Assistant erkennt das Gerät sofort ohne manuelle Konfiguration.

Topic Inhalt
homeassistant/sensor/growatt_shinelan_*/config Discovery (retained)
growatt/shinelan/pv1_power PV1 Leistung in W
growatt/shinelan/energy_total PV Gesamtenergie in kWh
growatt/shinelan/bat_soc Batterie Ladestand in %
growatt/shinelan/energy_import_total Netzbezug gesamt in kWh
alle weiteren Sensoren analog

Unterstützte Sensoren

Alle Sensoren entsprechen den Modbus-Registern des Growatt SPH 5000 TL3-BH-UP.
Für andere Modelle (z.B. MIC 1500 ohne Batterie) können nicht vorhandene Sensoren in main.cpp auskommentiert werden — fehlerhafte Modbus-Reads werden automatisch übersprungen.

Sensor Register Einheit state_class
PV1/PV2 Voltage 3, 7 V measurement
PV1/PV2 Current 4, 8 A measurement
PV1/PV2 Power 5, 9 W measurement
AC Output Power Total 35 W measurement
Grid Frequency 37 Hz measurement
Grid Voltage L1/L2/L3 38, 42, 46 V measurement
Grid Current L1/L2/L3 39, 43, 47 A measurement
Energy Today 53 kWh total_increasing
Energy Total 55 kWh total_increasing
Inverter Temperature 93 °C measurement
Battery Discharge/Charge Power 1009, 1011 W measurement
Battery Voltage 1013 V measurement
Battery State of Charge 1014 % measurement
Battery Temperature 1040 °C measurement
Energy Import/Export Total 1046, 1050 kWh total_increasing
Battery Discharge/Charge Total 1054, 1058 kWh total_increasing