sma_mb
Dieses Plugin liest die aktuellen Werte eines SMA-Wechselrichters per SMA Speedwire Feldbus/Modbus aus.
Anforderungen
Im Wechselrichter das Modbusprotokol aktivieren (ist normalerweise Standardeinstellung, der vorgegebene Port ist 502).
Infos zum SMA-Modbus-Interface sind auf der Herstellerseite zu finden
Notwendige Software
Folgende Python Packages werden benötigt:
pymodbus >= 3.5.2
Unterstützte Geräte
Folgende Hardware wird durch das Plugin unterstützt:
SMA Wechselrichter Sunny Boy SB3000TL-21
Konfiguration
Die Konfiguration kann über die Admin GUI vorgenommen werden. (Bitte daran denken, das Plugin auf enabled zu setzen)
Die Parameter und die Informationen zur Item-spezifischen Konfiguration des Plugins sind unter Plugin ‚sma_mb‘ Konfiguration beschrieben.
Beispiele für die plugin.yaml
Im ersten Beispiel wird das Plugin alle 300 Sekunden also alle 5 Minuten den die Register des Wechselrichters abfragen. Da cycle nicht zu einem bestimmten Zeitpunkt aufgerufen wird sondern der Abstand zwischen den Abfragen nur entsprechend lang ist, ist auch der Zeitpunkt der Daten recht variabel.
SMAModbus:
plugin_name: sma_mb
#instance: si44 # Name des Wechselrichters, nur bei mehreren laufenden Plugin Instanzen angeben
host: <IP Adresse reinschreiben> # z.B.: 192.168.xxx.xxx
# port: 502 # optional: Port nummer auf dem Host
# cycle: 300 # optional: Zyklus Zeit zur Abfrage in Sekunden
Alternativ dazu lässt sich ein crontab für die Abfrage definieren um zu genauen Zeitpunkten eine Abfrage zu haben. Im nachfolgenden Beispiel wird alle 60 Sekunden eine Zählerabfrage gestartet. Dabei muß die Abfragedauer und Systemauslastung berücksichtigt werden sowie die Notwendigkeit von kurzen Abfragezyklen.
SMAModbus:
plugin_name: sma_mb
#instance: si44 # Name des Wechselrichters, nur bei mehreren laufenden Plugin Instanzen angeben
host: <IP Adresse reinschreiben> # z.B.: 192.168.xxx.xxx
# port: 502 # optional: Port nummer auf dem Host
# cycle: 300 # optional: Zyklus Zeit zur Abfrage in Sekunden
update_crontab: 0 * * * * *
Es ist nicht sinnvoll sowohl crontab als auch cycle zu verwenden da sich durch die leichte Zeitverschiebung für jeden cycle irgendwann gleichzeitige Abfragen ergeben die zu Fehlen führen können.
Beispiel für items.yaml
sb3000tl:
serialnumber:
type: num
visu_acl: ro
smamb_register: 30057
smamb_datatype: U32
status:
type: num
visu_acl: ro
smamb_register: 30201
smamb_datatype: U32
iso:
type: num
visu_acl: ro
smamb_register: 30225
smamb_datatype: U32
relais:
type: num
visu_acl: ro
smamb_register: 30217
smamb_datatype: U32
ac_energy_total:
type: num
visu_acl: ro
smamb_register: 30529
smamb_datatype: U32
ac_energy_day:
type: num
visu_acl: ro
smamb_register: 30535
smamb_datatype: U32
time_work:
type: num
visu_acl: ro
smamb_register: 30541
smamb_datatype: U32
power:
type: num
visu_acl: ro
smamb_register: 30775
smamb_datatype: S32