Closed deadrabbit87 closed 1 day ago
Hierzu gibts mehrere Issues, ich blicke da aber noch nicht ganz durch.
Nach der Doku passen die Register.
Hier https://github.com/evcc-io/evcc/pull/11909 wurde das ganze ja schon mal umgebaut.
Lässt sich bei dem Batteriewechselrichter nicht gleich Sunspec nutzen?
Ausgabe von .\evcc.exe -l trace --id 126 sunspec 192.168.178.48:502
:
info.txt
Edit: Frage selbst beantwortet:
.\evcc.exe -c .\evcc.yaml meter -l trace --battery-mode charge
[main ] INFO 2024/11/20 21:08:08 evcc 0.131.6
[main ] INFO 2024/11/20 21:08:08 using config file: .\evcc.yaml
[db ] INFO 2024/11/20 21:08:08 using sqlite database: C:\Users\maximilian.hauser\.evcc\evcc.db
[db ] TRACE 2024/11/20 21:08:08 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="settings" -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT sql FROM sqlite_master WHERE type IN ("table","index") AND tbl_name = "settings" AND sql IS NOT NULL order by type = "table" desc 1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT * FROM `settings` LIMIT 1 -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT * FROM `settings` 6 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="devices" -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="device_details" -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="configs" -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT sql FROM sqlite_master WHERE type IN ("table","index") AND tbl_name = "configs" AND sql IS NOT NULL order by type = "table" desc 1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT * FROM `configs` LIMIT 1 -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="config_details" -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="config_details" -1 <nil>
[db ] TRACE 2024/11/20 21:08:08 SELECT * FROM `configs` WHERE `configs`.`class` = 2 0 <nil>
[sunspec] TRACE 2024/11/20 21:08:08 modbus: send 00 01 00 00 00 06 03 03 9c 40 00 02
[sunspec] TRACE 2024/11/20 21:08:08 modbus: recv 00 01 00 00 00 03 03 83 02
[sunspec] TRACE 2024/11/20 21:08:08 modbus: send 00 02 00 00 00 06 03 03 c3 50 00 02
[sunspec] TRACE 2024/11/20 21:08:08 modbus: recv 00 02 00 00 00 07 03 03 04 ff ff ff ff
[sunspec] TRACE 2024/11/20 21:08:08 modbus: send 00 03 00 00 00 06 03 03 00 00 00 02
[sunspec] TRACE 2024/11/20 21:08:08 modbus: recv 00 03 00 00 00 07 03 03 04 ff ff ff ff
[main ] FATAL 2024/11/20 21:08:08 cannot create meter 'my_battery': cannot create meter type 'template': cannot create meter type 'custom': power: not a SunSpec device
Ich habe was den Sunny Island angeht diese Woche etwas herumprobiert und kam am ende dazu fcfdfb2
Mit der aktuellsten FW-Version 3.30.37.R auf dem SI sollte es ausreichen, wie beim Sunny Boy Storage, die Wirkleistungsbegrenzung zu setzen (Register 41255 beim SI).
Konntest du das bei dir mit Erfolg testen?
Ich habe das mal so gebaut, Fehler erhalte ich da dennoch:
[main ] FATAL 2024/11/21 13:19:15 set battery mode: modbus: exception '2' (illegal data address), function '6'
Nach der Doku die ich gefunden habe, gibt es das Register 41255
gar nicht.
Nach der Doku passen die Register.
Welche Firmware Version läuft denn auf deinem Sunny Island? Das Problem hatte ich glaub ich auch, bevor ich das FW-Update gemacht habe.
Bei mir läuft das jetzt seit dieser Woche und funktioniert so
Konntest du das bei dir mit Erfolg testen?
Ich habe das mal so gebaut, Fehler erhalte ich da dennoch:
[main ] FATAL 2024/11/21 13:19:15 set battery mode: modbus: exception '2' (illegal data address), function '6'
Nach der Doku die ich gefunden habe, gibt es das Register
41255
gar nicht.Nach der Doku passen die Register.
Durch den edit:
Doku hab ich diese genutzt. Diese Register sollten ab FW 3.20.09.R exisitieren
Danke. Ich überprüfe das nochmal und melde mich.
Hm, die Firmware wäre sogar 4.0.0.R
.
Sunny Island 6.0H-11 wäre das genaue Modell.
Das erklärt das ganze, ich hab nen SI 80H-12, da ist die FW ne andere und dann auch die Modbusregister.
Die Doku, die du gelinkt hast, gilt aber auch nur für die 12er und 13er Serie.
Für die 11er Serie wäre dann hier die Doku mit der hab ich aber dementsprechend noch nicht gearbeitet
Ja... das ist mir jetzt auch augefallen.
Allem Anschein nach, gibt es aber für -11
kein vergleichbares Register.
Was es aber gibt, ist das Register 10149 Active power setpoint
. Allerdings verstehe ich dann nicht, warum der WR das nicht akzeptiert - das aktuelle Template spricht ja genau dieses Register an.
Wenn ich im Template -4000 für die Wirkleistungvorgabe eintrage, funktioniert es. Dann lädt der WR mit 4000 Watt aus dem Netz.
Die Frage die sich mir stellt: Woher kommen die value: -2147483647 # Wirkleistungsvorgabe
im Template?
@premultiply Hier https://github.com/evcc-io/evcc/pull/15477 wurde der Wert für die Wirkleistungsvorgabe ja schon mal geändert.
Der Wert kommt wohl aus dem max. Wert den ein int32
annehmen kann.
Nach der Doku würde das Register auch int32
akzeptieren, tut er aber wohl nicht. Vermutlich ein Bug in der Firmware des WR.
Ich habe mich jetzt mit mbpoll
an die Werte herangetastet, die der WR scheinbar akzeptiert.
-5100 Watt setzt der WR um:
.\mbpoll.exe 192.168.178.48 -0 -B -a 3 -v -r 40149 -t4:int -- -5100
debug enabled
iGetIntList(40149)
Integer found: 40149
iCount=1
Set function=4
Set format=int
Set device=192.168.178.48
1 write data have been found
Set data=-5100
Int[0]=-5100
mbpoll 1.5-2 - ModBus(R) Master Simulator
Copyright (c) 2015-2023 Pascal JEAN, https://github.com/epsilonrt/mbpoll
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; type 'mbpoll -w' for details.
Connecting to [192.168.178.48]:502
Set response timeout to 1 sec, 0 us
Protocol configuration: ModBus TCP
Slave configuration...: address = [3]
start reference = 40149, count = 1
Communication.........: 192.168.178.48, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit integer (big endian), output (holding) register table
[00][01][00][00][00][0B][03][10][9C][D5][00][02][04][FF][FF][EC][14]
Waiting for a confirmation...
<00><01><00><00><00><06><03><10><9C><D5><00><02>
Written 1 references.
5101 Watt dann nicht mehr:
.\mbpoll.exe 192.168.178.48 -0 -B -a 3 -v -r 40149 -t4:int -- -5101
debug enabled
iGetIntList(40149)
Integer found: 40149
iCount=1
Set function=4
Set format=int
Set device=192.168.178.48
1 write data have been found
Set data=-5101
Int[0]=-5101
mbpoll 1.5-2 - ModBus(R) Master Simulator
Copyright (c) 2015-2023 Pascal JEAN, https://github.com/epsilonrt/mbpoll
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; type 'mbpoll -w' for details.
Connecting to [192.168.178.48]:502
Set response timeout to 1 sec, 0 us
Protocol configuration: ModBus TCP
Slave configuration...: address = [3]
start reference = 40149, count = 1
Communication.........: 192.168.178.48, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit integer (big endian), output (holding) register table
[00][01][00][00][00][0B][03][10][9C][D5][00][02][04][FF][FF][EC][13]
Waiting for a confirmation...
<00><01><00><00><00><03><03><90><03>
ERROR Illegal data value
Write output (holding) register failed: Illegal data value
So ganz Sinn ergibt das irgendwie noch nicht. Hat da jemand noch ein Idee, wie ich weiter machen könnte?
Lass uns das dann bei allen WR konfigurierbar machen und als Default 4200W nehmen damit keine zusätzliche dynamische Dimmung nach §14a EnWG erforderlich ist.
Eigentlich müsste man das wohl auch perspektivisch dynamisch durch das LM regeln lassen...
Und wie die Unterscheidung zwischen Version -11 und -12 des WR?
@Herbert23 oder funktioniert das bestehende Template bei dir auch, wenn du niedrigere Werte schreibst?
Lass uns das dann bei allen WR konfigurierbar machen und als Default 4200W nehmen damit keine zusätzliche dynamische Dimmung nach §14a EnWG erforderlich ist.
Ich wiederhole mich da- lasst uns die Themen bitte nicht mischen, zumal alte WR nicht betroffen sind. Danke.
Eigentlich müsste man das wohl auch perspektivisch dynamisch durch das LM regeln lassen...
So isses. Und wenn das notwendig werden sollte brauchen wir ohnehin einen Plan wie.
Das Ding ist halt dass SMA offensichtlich selbst den Überblick verloren hat welcher WR bzw. welche Hard- und Softwareversion was kann. Dazu gab es bei aktuelleren Versionen gerade in dem Bereich Änderungen bei manchen Modellen - gerade im Zusammenspiel mit dem SHM. Die SMA-Doku ist leider abweichend, unvollständig und fehlerhaft.
Echt schwierig da einen Überblick zu behalten.
Dann lass uns die Dinge doch A und B nennen, dann wird klar dass man sich durchprobieren muss? Vielleicht liest ja auch jemand von SMA mit der den Durchblick noch hat (oder glaubt ihn zu haben) oder aus der Community gibts Kontakte dahin?
Describe the bug
Grid charge with SMA Sunny Island over modbus leads to
illegal data value
Steps to reproduce
n/a
Configuration details
Log details
Output of
.\evcc.exe -c .\evcc.yaml meter -l trace --battery-mode charge
:What type of operating system are you running?
Windows
Nightly build
Version
0.131.6