Der SmartPi verfügt über vielfältige Schnittstellen zur Kommunikation mit anderen Geräten.
Das sind:

  • MQTT
  • FTP
  • Modbus TCP (RTU über externes Modul)
  • Energymeter Protokoll
  • SmartPi Cloud
MQTT

In den MQTT-Einstellungen kann die Datenübertragung per MQTT eingestellt werden.
MQTT sendet die Messwerte laufend an einen MQTT-Broker – nützlich für Home Assistant, Node-RED oder eigene Auswertungen.

 

  • MQTT (Schalter): aktiviert/deaktiviert die Datenübertragung.
  • Broker-Schema: Dropdown ssl://, tcp:// oder ws:// – je nachdem, wie der Broker erreichbar ist. Beispiel: tcp:// für einen unverschlüsselten Mosquitto-Broker im lokalen Netz. ssl:// für einen verschlüsselten Broker und ws:// für Websocket.
  • Url: Adresse des Brokers, z. B. 192.168.1.10 oder mqtt.example.com.
  • Port: z. B. 1883 (Standard für unverschlüsseltes MQTT) oder 8883 (TLS).
  • Benutzername / Passwort: Zugangsdaten des Brokers, falls dieser eine Authentifizierung verlangt. Beim Passwort blendet das Augen-Symbol den Klartext ein/aus.
  • Topic: das MQTT-Topic, unter dem die Werte veröffentlicht werden, z. B. smartpi/wohnhaus.
  • Sendeintervall (s): wie oft gesendet wird, in Sekunden. 0 bedeutet "bei jedem Messwert" (also so schnell wie das Gerät misst), ein Wert wie 60 sendet nur einmal pro Minute.

Alle Felder speichern sofort bei jeder Änderung – es gibt keinen separaten Speichern-Button.

FTP

In den FTP-Einstellungen kann die Datenübertragung per FTP eingestellt werden.
Nach Aktivierung werden die Messdaten regelmäßig als Datei auf einen FTP-Server hochgeladen.

  • FTP (Schalter): aktiviert/deaktiviert den Upload komplett.
  • Url: Adresse des FTP-Servers, z. B. ftp.example.com.
  • Benutzername / Passwort: Zugangsdaten für den FTP-Server.
  • Pfad: Zielverzeichnis auf dem Server, z. B. /eingang/smartpi.
  • CSV-Datei / XML-Datei: legen fest, in welchem Format hochgeladen wird – beide können unabhängig voneinander an- oder ausgeschaltet werden (auch beide gleichzeitig).
  • CSV Dezimaltrennzeichen: welches Zeichen die CSV-Datei als Dezimaltrennzeichen verwendet, z. B. , (deutsch) oder . (englisch) – wichtig, damit die Zieltabellenkalkulation die Zahlen richtig einliest.
  • CSV Zeitformat: das Datumsformat der Zeitspalte, in Go-Schreibweise, z. B. 2006-01-02 15:04:05 für 2026-09-17 14:30:00.

Zeitpunkt des Uploads

Zu welchen vollen Stunden hochgeladen werden soll. Sinnvoll sind stündlich oder bis zu 12 feste Uhrzeiten am Tag.

  • Stündlich: markiert alle 24 Stunden auf einmal.
  • Keine: entfernt alle Markierungen (kein automatischer Upload mehr, außer man aktiviert wieder einzelne Stunden).
  • Darunter 24 einzelne Kontrollkästchen, in zwei Reihen zu je 12 Stunden angeordnet (00:00–11:00 oben, 12:00–23:00 darunter, spaltengleich – z. B. steht 03:00 direkt über 15:00). Jede angehakte Stunde löst zur vollen Stunde einen Upload aus. Beispiel: Nur 06:00 und 18:00 angehakt → Upload zweimal täglich, morgens und abends.

Alle Felder speichern sofort bei jeder Änderung.

Modbus

Der SmartPi hat einen integrierten Modbus Server worüber die aktuellen Messdaten abgerufen werden können.
Als Protokoll stehen Modbus TCP als auch Modbus RTU zur Verfügung. Wenn Modbus RTU verwendet werden soll, ist eine RS485-Schnittstelle nötig. Das kann z.B. das e.rs485+digital-Modul, als auch ein USB-Stick oder ähnliches sein.

Modbus TCP

  • Schalter zum Aktivieren.
  • Adresse: die Netzwerk-Adresse/Port, unter der der Modbus-TCP-Server erreichbar ist, z. B. :502 (Standard-Modbus-Port).

Modbus RTU

Nur beim SmartPi 3.1 oder mit einer externen RS485-Schnittstelle (z. B. e.RS485+digital) möglich.

  • Schalter zum Aktivieren.
  • Adresse: die Modbus-Slave-Adresse des Geräts im RS485-Bus, z. B. 1.
  • Schnittstelle: der Gerätepfad der seriellen Schnittstelle, z. B. /dev/ttyUSB0 oder /dev/serial0.

Alle Felder speichern sofort bei jeder Änderung.

Modbus-Registerbelegung
Die folgende Tabelle zeigt die Modbus-Register, die ausgelesen werden können.

Die Registerbelegung ist bei TCP und RTU identisch. Nur Holding Register (Funktionscode 3, „Read Holding Registers“) liefern Daten – Coils, Discrete Inputs und Input Registers antworten immer mit 0.

  • Startadresse: 0 (Protokolladresse) – in der klassischen 4xxxx-Schreibweise also 40001.
  • Datentyp: jeder Wert belegt 2 aufeinanderfolgende Register (32 Bit) als IEEE-754-Gleitkommazahl (float32), Big-Endian, ohne Skalierungsfaktor – der Rohwert steht direkt im Register (z. B. 230.0 für 230 V, nicht 2300).
  • Schreibzugriffe (FC 5/6/15/16) werden zwar angenommen, aber beim nächsten Messzyklus (jede Sekunde) sofort wieder mit dem aktuellen Messwert überschrieben – die Register sind faktisch nur lesbar.

Adresse (0-basiert)

4xxxx

Wert

Typ

0–1

40001–40002

Strom L1 (A)

float32

2–3

40003–40004

Strom L2 (A)

float32

4–5

40005–40006

Strom L3 (A)

float32

6–7

40007–40008

Strom Neutralleiter (A)

float32

8–9

40009–40010

Spannung L1 (V)

float32

10–11

40011–40012

Spannung L2 (V)

float32

12–13

40013–40014

Spannung L3 (V)

float32

14–15

40015–40016

Wirkleistung L1 (W)

float32

16–17

40017–40018

Wirkleistung L2 (W)

float32

18–19

40019–40020

Wirkleistung L3 (W)

float32

20–21

40021–40022

cos(φ) L1

float32

22–23

40023–40024

cos(φ) L2

float32

24–25

40025–40026

cos(φ) L3

float32

26–27

40027–40028

Frequenz L1 (Hz)

float32

28–29

40029–40030

Frequenz L2 (Hz)

float32

30–31

40031–40032

Frequenz L3 (Hz)

float32

32–33

40033–40034

Energieverbrauch L1 seit letzter Messung (Wh)

float32

34–35

40035–40036

Energieverbrauch L2 seit letzter Messung (Wh)

float32

36–37

40037–40038

Energieverbrauch L3 seit letzter Messung (Wh)

float32

38–39

40039–40040

Energieeinspeisung L1 seit letzter Messung (Wh)

float32

40–41

40041–40042

Energieeinspeisung L2 seit letzter Messung (Wh)

float32

42–43

40043–40044

Energieeinspeisung L3 seit letzter Messung (Wh)

float32

44–45

40045–40046

Saldo L1–L3 (Wh)

float32

46–47

40047–40048

Leistungsfaktor L1

float32

48–49

40049–40050

Leistungsfaktor L2

float32

50–51

40051–40052

Leistungsfaktor L3

float32

Die Wh-Register (40033–40046) sind kein fortlaufender Zählerstand, sondern nur die Energiemenge der letzten Messperiode (ca. 1 Sekunde) – sie werden bei jedem Messzyklus neu berechnet, nicht aufaddiert. Für einen echten kWh-Zählerstand eignen sich diese Register nicht; dafür die Datenbank-Anbindung (InfluxDB) oder den CSV/XML-Export per FTP nutzen.
Energymeter Protokoll

n der Weboberfläche heißt dieser Tab „Energymeter Protokoll“. Er lässt den SmartPi als virtuellen SMA-Energymeter im Netzwerk auftreten, den z. B. ein Wechselrichter oder eine Batteriesteuerung als Zähler erkennen kann.

  • Schalter zum Aktivieren.
  • Energymeter Multicast Adresse: die Multicast-Gruppenadresse, über die das Protokoll gesendet wird, z. B. 239.12.255.254 (SMA-Standardadresse – im Zweifel nicht ändern).
  • Energymeter Multicast Port: der zugehörige Port, z. B. 9522 (SMA-Standardport).
  • Seriennummer: die Seriennummer, unter der sich der SmartPi als Energymeter meldet. Muss im Netzwerk eindeutig sein, z. B. 1234567890.
  • SusyID: die Gerätetyp-Kennung des emulierten SMA-Geräts, z. B. 270 (SMA Energy Meter).

Diese Werte sind nur relevant, wenn ein anderes Gerät (Wechselrichter, Speicher) genau dieses Protokoll erwartet – im Zweifel die Standardwerte belassen.
Alle Felder speichern sofort bei jeder Änderung.