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>
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# 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](https://platformio.org/) (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:
|
||||
|
||||
```cpp
|
||||
// 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
|
||||
|
||||
```bash
|
||||
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 |
|
||||
Reference in New Issue
Block a user