SMA Modbus SUNNY TRIPOWER 8.0

Begonnen von mediastudio, 30 August 2019, 21:12:22

Vorheriges Thema - Nächstes Thema

Fistandantilus

Hallo zusammen,

ich kämpfe auch gerade mit der Bitmaske und komme nicht weiter :(
Ich habe einen Sunny Tripower 4.0
Nach dem Neustart bei Dunkelheit heute habe ich auch die großen Werte:


Internals:
   DEF        3 30 192.168.1.171:502 TCP
   DeviceName 192.168.1.171:502
   EXPECT     idle
   FD         34
   FUUID      638d30b2-f33f-1a0c-ce3d-639131a7a1738e5e
   IODev      STP4
   Interval   30
   LASTOPEN   1673628861.5019
   MODBUSID   3
   MODE       master
   MODULEVERSION Modbus 4.4.11 - 5.10.2022
   NAME       STP4
   NOTIFYDEV  global
   NR         848
   NTFY_ORDER 50-STP4
   PARTIAL   
   PROTOCOL   TCP
   STATE      aktuell: 2147483648 Watt  / total: 4294967295 Watt
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   eventCount 24
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2023-01-13 19:20:23   Gesamtertrag    4294967295
     2023-01-13 19:32:26   Status          OK
     2023-01-13 19:20:23   Tagesertrag     4294967295
     2023-01-12 21:59:00   TagesertragStat 2179
     2023-01-13 19:20:23   Temperatur      2147483648
     2023-01-13 19:20:23   Wirkleistung    2147483648
     2023-01-13 19:29:27   state           active
   REMEMBER:
     lid        3
     lname      STP4
     lrecv      1673634747.20055
     lsend      1673634747.01617
   defptr:
     STP4       3
   gotReadings:
   lastRead:
     h30201     1673634746.40292
     h30529     1673634023.25735
     h30535     1673634023.38157
     h30775     1673634023.50684
     h30953     1673634023.65104
Attributes:
   DbLogExclude Status, Temperatur, Wirkleistung, state, Gesamtertrag
   alias      SUNNY TRIPOWER 4.0
   dev-h-defExpr $val & 0x1FFFFFFF
   dev-h-defIgnoreExpr ( ( $val==536870911 ) || ( $val==2147483648 ) || ( $val==4294967295 ) || ( $val==65535 ) )
   dev-h-defLen 2
   dev-h-defPoll 1
   dev-h-defUnpack N
   event-on-change-reading TagesertragStat
   group      4: Energie
   icon       measure_photovoltaic_inst
   obj-h30201-map 35:Fehler, 303:Aus, 307:OK, 455:Warnung
   obj-h30201-reading Status
   obj-h30529-reading Gesamtertrag
   obj-h30535-reading Tagesertrag
   obj-h30775-reading Wirkleistung
   obj-h30953-reading Temperatur
   room       Energie
   stateFormat aktuell: Wirkleistung Watt  / total: Tagesertrag Watt
   verbose    0


Hab schon einiges probiert und auch gedacht dev-h-defIgnoreExpr hilft, aber wie Ihr seht leider nicht :(

VG
S.
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

MadMax

#46
Hallo,

Ich habe den SMA Hybridwechselrichter inzwischen gut im SMAInverter Modul integriert.
https://forum.fhem.de/index.php/topic,56080.msg1257813.html#msg1257813

Da brauchst du nur die IP Adresse und das Passwort.

Gruß
Max

PS: Die Normalen Tripower sind schon lange intigriert.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Fistandantilus

Kann das sein, dass das nur funktioniert, wenn man das SMA Portal eingerichtet hat. Hab ich nämlich nicht, und bekomme daher einen Timeout...
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

MadMax

Hallo,

eigentlich verbindet sich das Modul über Speedwire und dabei sollte es egal sein ob die WR im Portal ist.
Du brauchst auf jedenfall das Installateur Passwort.

Gruß Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Fistandantilus

Ah, Speedwire wird das Problem sein, der setzt doch eine Kabelverbindung voraus. Ich hab aktuell leider nur WLAN anliegen.
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

MadMax

Das weiß ich nicht aber wäre schon möglich
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Dr.McKay

Zitat von: MadMax am 09 Juli 2022, 15:00:25Hallo,

ich bekomme jetzt soweit alle Daten die ich aktuell benötige.
Hier die Konfiguration falls jemand auch einen SMA STP Smart Energy hat.


attr STP8SE devStateIcon {\
my $mode = 'measure_power@green';;;;\
$mode = 'measure_power@yellow' if (ReadingsVal($name, "Wirkleistung", "") < 1);;;;\
\
my $dc_sum = ReadingsVal($name,"DC_Leistung",0);; \
\
my $mode2 = 'sani_solar@green';;;;\
$mode2 = 'sani_solar@yellow' if ($dc_sum < 1);;;;\
\
my $mode3 = 'solar@green';;;;\
$mode3 = 'solar@yellow' if (ReadingsVal($name,"DC_Leistung_1",0) < 1);;;;\
\
my $mode4 = 'solar@green';;;;\
$mode4 = 'solar@yellow' if (ReadingsVal($name,"DC_Leistung_2",0) < 1);;;;\
\
my $chargePw = ReadingsVal($name, "Batterieleistung", "");;;;\
\
my $charge = '';;;;\
$charge = 'control_arrow_leftward@greenyellow' if ($chargePw < 0);;;;\
$charge = 'control_arrow_rightward@green' if ($chargePw > 0);;;;\
\
my $ChargeStatus = 'measure_battery_100@green';;;;\
$ChargeStatus = 'measure_battery_75@green' if (ReadingsVal($name, "Ladezustand", "") < 80);;;;\
$ChargeStatus = 'measure_battery_50@yellow' if (ReadingsVal($name, "Ladezustand", "") < 55);;;;\
$ChargeStatus = 'measure_battery_25@orange' if (ReadingsVal($name, "Ladezustand", "") < 30);;;;\
$ChargeStatus = 'measure_battery_0@red' if (ReadingsVal($name, "Ladezustand", "") < 6);;;;\
\
my $Cap = (ReadingsVal($name,"Ladezustand",0) -5) * 190;;\
\
\
"<div>" . \
FW_makeImage($mode,"measure_power") ." AC ". ReadingsVal($name,"Wirkleistung",0) ."W  ". \
FW_makeImage($mode2,"sani_solar") ." DC ".$dc_sum."W  ". \
FW_makeImage($mode3,"solar") ." MPP1 ".ReadingsVal($name,"DC_Leistung_1",0)."W  ". \
FW_makeImage($mode4,"solar") ." MPP2 ".ReadingsVal($name,"DC_Leistung_2",0)."W  ". \
FW_makeImage($ChargeStatus,"") . \
FW_makeImage($charge,"") ." ". $chargePw ."W   ". \
ReadingsVal($name,"Ladezustand",0) ."% ".\
$Cap."wh  ".\
"</div>"}

Gruß
Max

Hallo Max,

kannst du nochmal erläutern wie dein devStatIcon funktionier und was dann am Ende rauskommen soll? Habe verwsucht das nachzubauen, abert bei wird nur die Zeile

measure_power@green AC 2147483648W sani_solar@yellow DC 0W solar@yellow MPP1 0W solar@yellow MPP2 0W measure_battery_100@green W 536870911% 102005472140wh

in Fhem angezeigt. Wie kann ich das zum laufen bekommen?

Danke

Dr.McKay

Zitat von: Dr.McKay am 20 März 2023, 19:59:21
Zitat von: MadMax am 09 Juli 2022, 15:00:25Hallo Max,

kannst du nochmal erläutern wie dein devStatIcon funktionier und was dann am Ende rauskommen soll? Habe verwsucht das nachzubauen, abert bei wird nur die Zeile

measure_power@green AC 2147483648W sani_solar@yellow DC 0W solar@yellow MPP1 0W solar@yellow MPP2 0W measure_battery_100@green W 536870911% 102005472140wh

in Fhem angezeigt. Wie kann ich das zum laufen bekommen?

Danke

Hat sich erledigt, der Icon Pfad war bei mir verstellt.

MadMax

#53
Hallo,

Hat sich zwar erledigt aber es sollte so aussehen.

Du darfst diesen Dateianhang nicht ansehen.

Das SMAInverter Modul kann drn STPxxSE jetzt aber auch auslesen.
Du musst nicht Modbus nutzen.


Gruß Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

thomas.z

Hallo Max,

Stefan hat mich auf diesen Thread aufmerksam gemacht und ich habe Deine folgenden Registerdefinitionen gefunden:
Zitat von: MadMax am 29 August 2022, 18:20:11attr STP8SE obj-h40793-reading Set_LadeP_min
attr STP8SE obj-h40793-set 1
attr STP8SE obj-h40795-reading Set_LadeP_max
attr STP8SE obj-h40795-set 1
attr STP8SE obj-h40797-reading Set_EntladeP_min
attr STP8SE obj-h40797-set 1
attr STP8SE obj-h40799-reading Set_EntladeP_max
attr STP8SE obj-h40799-set 1

Konntest Du diese Register mal erfolgreich testen?
In der aktuellen Spec für die STP-SE fehlen z. B. die Register 40793 und 40797. Und ich habe es bisher nicht geschafft, mit dem Register 40795 irgendeine Wirkung zu erzielen. Muss ggf. Register 40151 auf "aktiv" (802) gestellt werden? Ich würde gerne ebenfalls gelegentlich die Aufladung der Batterie auf z. B. 90% begrenzen (zur Schonung) und dachte mir, ich könnte dazu 40795 auf "0" setzen, wenn die 90% erreicht sind, und wieder erhöhen, wenn z. B. 80% unterschritten werden.

Danke und Gruß
Thomas
Gruß
Thomas
--
tinkerboard s, RPI-RF-MOD, debmatic 3.61.7.90, fhem 5.9.21052, HMIP-WTH-x, HMIP-eTRV-x, HMIP-BSM, Delock 11826, RPI 3b mit ebus Adapter 2.2 RPI, SMA-EM, Compleo eBox-Smart

MadMax

Hallo Thomas,

Ja ich nutze das und Steuere die Ladung manuell.
Register 40151 muss auf 802 gesetzt werden so das du Steuern kannst.
Du solltest aber nicht 1 mal pro sec senden dann hängt sich der WR auf.
Ich frage alle 2s die Daten ab und wenn der sollwert den ich berechne sich änder dann übertrage ich den oder nach 30s.
Das läuft so.


Gruß Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

thomas.z

Hallo Max,
danke schön für Deine Erläuterung. Ich werde dann weiter experimentieren. Vielleicht finde ich eine einfache Lösung, die bei Dauersonnenschein den Speicher vor langem Standby bei 100% Ladung bewahrt, ohne dass ich gleich die Ladesteuerung komplett selber machen muss  :) .

Gruß
Thomas
Gruß
Thomas
--
tinkerboard s, RPI-RF-MOD, debmatic 3.61.7.90, fhem 5.9.21052, HMIP-WTH-x, HMIP-eTRV-x, HMIP-BSM, Delock 11826, RPI 3b mit ebus Adapter 2.2 RPI, SMA-EM, Compleo eBox-Smart

th0nix

#57
Hallo zusammen, ich habe versucht Netzeinspeisung und Netzbezug mit auszulesen.

attr STP8SE obj-h30867-expr ($val & 0x7FFF)
attr STP8SE obj-h30867-reading Netzeinspeisung

attr STP8SE obj-h30865-expr ($val & 0x7FFF)
attr STP8SE obj-h30865-reading Netzbezug

Die Werte scheinen aber nicht zu passen und werden auch nicht aktuallisert. Hat jemand die Werte schon am laufen?
Habe die Werte hier gefunden: https://forum.iobroker.net/assets/uploads/files/721_sma_modbus-tb-de-13.pdf

Danke schon mal

Habe meinen Fehler gefunden - nachdem ich Netz.* in das Attribut event-on-change-reading  scheinen die Werte zu passen.

Sieht dann in Summe so aus:
attr STP8SE event-on-change-reading .*eistung.*:10,.*DC_Spannung.*:5,.*trom.*:0.2,.*EYESTERDAY.*,.*Batteriespannung.*:0.5,Netz.*

attr STP8SE obj-h30867-expr ($val & 0x7FFF)
attr STP8SE obj-h30867-reading Netzeinspeisung

attr STP8SE obj-h30865-expr ($val & 0x7FFF)
attr STP8SE obj-h30865-reading Netzbezug


MadMax

Auslesen der Werte mache ich über die Module 76_SMAInverter.pm und SMAEM.pm.

Die Steuerung erfolgt dann über Modbus TCP
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Oskar

Moin,

magst Du da vielleicht die Batteriekapazität mit aufnehmen?
Im Modbus geht das ja recht einfach:

attr STP8EM obj-h40187-reading BatterieNennWh
eventuell noch $val & 0xFFFF und dann die aktuelle Kapazität ausrechenen:
my $Cap = ReadingsVal($name,"BatterieNennWh",0) / 100 * ReadingsVal($name,"Ladezustand",0);

Wäre schick, wenn das auch in den SMA-Modulen ginge.

Liebe Grüße
    Oskar
--
fhem geht auch auf mac os x