Was tun, wenn man nicht nur das SunnyPortal zum Abruf der Daten nutzen will sondern seine Daten lokal verarbeiten möchte? Leider bietet der SMA TriPower (meines Wissens) keine REST API Schnittstelle, um einfach Daten zu ziehen. Allerdings gibt es einen Modbus Server, den man aktivieren kann!

Dazu ist folgendes zu tun:
– Lokaler Login im Wechselrichter als Installateur
-> Device configuration -> Type of communication -> Reiter Modbus aktivieren, Default Proto lassen -> Save

Wichtig: Geräte ID notieren (default bei mir war „3“)

Abruf der Daten via Modbus mache ich via Linux CLI auf einem Raspberry Pi Zero W, das Tool der Wahl ist hier modbus-cli.

Beispiel zum Datenabruf (hier: Ladezustand der Batterie)

Benötigt werden die passenden Modbus Register für den Wechselrichter. SMA stellt diese zum Download bereit:

https://files.sma.de/downloads/PARAMETER-HTML_STPxx-3SE-40_30109R_V11.zip

Diese Datei ist für die Firmware 3.01.09R, insofern können sich für spätere Firmwareversionen andere Register ergeben, ein neueres Dokument habe ich aber nicht gefunden.
Nun zum Beispiel, wir nehmen meine Geräte ID 3, Register 30845 (Bat.ChaStt), U32 (unsigned u_int32), 2 Register (2byte)

Befehl:

modbus -s 3 <ip adresse> H@30845/I

Ausgabe:

Parsed 0 registers definitions from 1 files
30845: 100 0x64

100 heisst: 100% Ladezustand

Erklärung:

-s 3 <- Geräte ID

H <- 16bit/1byte unsigned int pro register

30845 <- Batterie Ladezustand Register

I <- 32bit/2byte unsingned int lesen, also 2byte