Im Prinzip habe ich genau das selbe Problem mit meinem Sunnyboy den ich gestern angeschlossen habe.sw1002 hat geschrieben: ↑14.05.2020, 14:19Ähnliches Problem bei mir. Sunny Tripower 15000TL-30. Ich bekomme keine Werte, alle Verzeichnisse und Dateien wie vom Threadersteller gepostet eingerichtet.mabuchho hat geschrieben: ↑23.01.2019, 15:30Hallo zusammen,
ich habe einen Sunny Tripower 9000TL-20 und habe diesen per LAN angeschlossen. So kann ich über das Sunny Portal im Internet die Leistungsdaten auslesen.
Wenn ich das Skript von Martin nutze, sehe ich jedoch keinerlei Daten (habe die IP auf meinen SMA Wechselrichter geändert und die restlichen Daten unverändert gelassen). Unterstützt mein SMA Wechselrichter dies nicht, frage ich die falschen Verzeichnisse ab, oder fehlt mir ein weiteres Gerät (Smart Meter, Home Manager, o.ä.)?
VG,
mabuchho
Modbus ist an, Port 502 - kann auch ausgelesen werden (die OpenWB bekommt darüber die PV Produktion sauber übermittelt).
Die Modbus Register meines WR fangen lt. der Excel Liste von der SMA Homepage (SunSpec_Modbus-TI-en-22) im 40xxx Bereich an. Ich habe versucht diese analog zu setzen, hier mein Script, könnt ihr helfen?
! SCRIPT
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 30865 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA Netzbezug");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 30867 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA Netzeinspeisung");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 40643 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA DC Leistung String 1");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 40663 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA DC Leistung String 2");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 40683 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA DC Leistung String 3");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 40703 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA DC Leistung String 4");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
string lGetOut = "";
string lGetErr = "";
system.Exec("tclsh /usr/local/addons/modbus/sma.tcl 192.168.178.100 40200 2",&lGetOut,&lGetErr);
var SMAValue=dom.GetObject("SMA AC Leistung");
SMAValue.State(lGetOut.StrValueByIndex(" ", 1));
! SMA Systemzeitstempel
var t = system.Date("%H:%M:%S");
dom.GetObject("SMA Zeitstempel").State(t);
#WriteLine(lGetErr.StrValueByIndex(" ", 1));
! Ende des Scripts
Ich würde mich freuen, wenn vllt jemand kurz eine Erklärung dazu hat.
Bei meinem SMA SB-3.6 ist:
TCP über Port 502 =AN und Modbus UnitId auf 3.
Hat das evtl. was mit der UnitId zutun ?
Der Unterordner unter Addon mit den Scripten und Dateiattributen habe ich genauso angelegt und mehrmals genau kontrolliert.
Vielleicht gibt es eine Hilfe von irgendjemanden ? Wäre super und ich bedanke mich schon jetzt!
André