FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: GunterB am 09 Juni 2026, 08:41:42

Titel: SunEnergyXT 500
Beitrag von: GunterB am 09 Juni 2026, 08:41:42
Anbindung des SunEnergyXT 500 Solarspeichers.
Der Speicher muss in den "lokalen Modus" gewechselt werden, danach kann über HTTPMOD auf die lokale API zugegriffen werden.

Beschreibung der Readings/Werte sind in dem API Dokument zu finden:
https://d1skj1m2vbh93t.cloudfront.net/Balcony+energy+storage/Hybrid+energy+storage+system+500+series/SunEnergyXT-500-Series-Local-API.pdf
Code (Batt1) Auswählen
defmod Batt1 HTTPMOD http://192.168.1.100:80/read 10
attr Batt1 bodyDecode auto
attr Batt1 preProcessRegex s/"SN"/"SN1"/
attr Batt1 reading100JSON state_reported_UO
attr Batt1 reading100Name UO
attr Batt1 reading101JSON state_reported_LM
attr Batt1 reading101Name LM
attr Batt1 reading102JSON state_reported_MM
attr Batt1 reading102Name MM
attr Batt1 reading103JSON state_reported_PM
attr Batt1 reading103Name PM
attr Batt1 reading104JSON state_reported_II3
attr Batt1 reading104Name II3
attr Batt1 reading105JSON state_reported_SA1
attr Batt1 reading105Name SA1
attr Batt1 reading106JSON state_reported_PV
attr Batt1 reading106Name PV
attr Batt1 reading107JSON state_reported_LD
attr Batt1 reading107Name LD
attr Batt1 reading108JSON state_reported_SC
attr Batt1 reading108Name SC
attr Batt1 reading109JSON state_reported_GD2
attr Batt1 reading109Name GD2
attr Batt1 reading110JSON state_reported_II2
attr Batt1 reading110Name II2
attr Batt1 reading111JSON state_reported_DS
attr Batt1 reading111Name DS
attr Batt1 reading112JSON state_reported_AH
attr Batt1 reading112Name AH
attr Batt1 reading113JSON state_reported_PV2
attr Batt1 reading113Name PV2
attr Batt1 reading114JSON state_reported_UG
attr Batt1 reading114Name UG
attr Batt1 reading115JSON state_reported_BP
attr Batt1 reading115Name BP
attr Batt1 reading116JSON state_reported_GO
attr Batt1 reading116Name GO
attr Batt1 reading117JSON state_reported_SO
attr Batt1 reading117Name SO
attr Batt1 reading118JSON state_reported_VP2
attr Batt1 reading118Name VP2
attr Batt1 reading119JSON state_reported_SI
attr Batt1 reading119Name SI
attr Batt1 reading120JSON state_reported_PV3
attr Batt1 reading120Name PV3
attr Batt1 reading122JSON state_reported_ES
attr Batt1 reading122Name ES
attr Batt1 reading123JSON state_reported_VP3
attr Batt1 reading123Name VP3
attr Batt1 reading124JSON state_reported_RT
attr Batt1 reading124Name RT
attr Batt1 reading125JSON state_reported_II1
attr Batt1 reading125Name II1
attr Batt1 reading126JSON state_reported_DH
attr Batt1 reading126Name DH
attr Batt1 reading127JSON state_reported_GD1
attr Batt1 reading127Name GD1
attr Batt1 reading128JSON state_reported_AS
attr Batt1 reading128Name AS
attr Batt1 reading129JSON state_reported_DevType
attr Batt1 reading129Name DevType
attr Batt1 reading130JSON state_reported_GP
attr Batt1 reading130Name GP
attr Batt1 reading131JSON state_reported_OP
attr Batt1 reading131Name OP
attr Batt1 reading132JSON state_reported_WS
attr Batt1 reading132Name WS
attr Batt1 reading133JSON state_reported_GS
attr Batt1 reading133Name GS
attr Batt1 reading134JSON state_reported_SN
attr Batt1 reading134Name SN
attr Batt1 reading135JSON state_reported_ST
attr Batt1 reading135Name ST
attr Batt1 reading136JSON state_reported_BS0
attr Batt1 reading136Name BS0
attr Batt1 reading137JSON state_reported_ON
attr Batt1 reading137Name ON
attr Batt1 reading138JSON state_reported_PV4
attr Batt1 reading138Name PV4
attr Batt1 reading139JSON state_reported_IP
attr Batt1 reading139Name IP
attr Batt1 reading140JSON state_reported_IS
attr Batt1 reading140Name IS
attr Batt1 reading141JSON state_reported_VP4
attr Batt1 reading141Name VP4
attr Batt1 reading142JSON state_reported_WR
attr Batt1 reading142Name WR
attr Batt1 reading143JSON state_reported_SI1
attr Batt1 reading143Name SI1
attr Batt1 reading144JSON state_reported_PT
attr Batt1 reading144Name PT
attr Batt1 reading145JSON state_reported_EH
attr Batt1 reading145Name EH
attr Batt1 reading146JSON state_reported_UP
attr Batt1 reading146Name UP
attr Batt1 reading147JSON state_reported_FP
attr Batt1 reading147Name FP
attr Batt1 reading148JSON state_reported_SA
attr Batt1 reading148Name SA
attr Batt1 reading149JSON state_reported_US
attr Batt1 reading149Name US
attr Batt1 reading150JSON state_reported_II4
attr Batt1 reading150Name II4
attr Batt1 reading151JSON state_reported_SC0
attr Batt1 reading151Name SC0
attr Batt1 reading152JSON state_reported_COM
attr Batt1 reading152Name COM
attr Batt1 reading153JSON state_reported_VP1
attr Batt1 reading153Name VP1
attr Batt1 reading154JSON state_reported_LP
attr Batt1 reading154Name LP
attr Batt1 reading155JSON state_reported_MP
attr Batt1 reading155Name MP
attr Batt1 reading156JSON state_reported_PV1
attr Batt1 reading156Name PV1
attr Batt1 reading157JSON state_reported_IW
attr Batt1 reading157Name IW
attr Batt1 reading158JSON state_reported_timestamp
attr Batt1 reading158Name timestamp
attr Batt1 reading159JSON state_reported_MS
attr Batt1 reading159Name MS
attr Batt1 room 13.1 PV,Strom
attr Batt1 set01Data {"state": {"GS": $val}}
attr Batt1 set01Max 2400
attr Batt1 set01Min -2400
attr Batt1 set01Name GS
attr Batt1 set02Data {"state": {"IS": $val}}
attr Batt1 set02Max 2400
attr Batt1 set02Min 0
attr Batt1 set02Name IS
attr Batt1 set06Data $val
attr Batt1 set06Name POST
attr Batt1 set06TextArg 1
attr Batt1 set07Data {"state": {"SI": $val}}
attr Batt1 set07Max 20
attr Batt1 set07Min 0
attr Batt1 set07Name SI
attr Batt1 set08Data {"state": {"SO": $val}}
attr Batt1 set08Max 20
attr Batt1 set08Min 0
attr Batt1 set08Name SO
attr Batt1 set09Data {"state":{"TZ":"CET-1CEST,M3.5.0,M10.5.0/3"}}
attr Batt1 set09Name TZ
attr Batt1 set09NoArg 1
attr Batt1 set10Data {"state": {"SA": $val}}
attr Batt1 set10Max 100
attr Batt1 set10Min 0
attr Batt1 set10Name SA
attr Batt1 setURL http://192.168.1.100:80/write
attr Batt1 stateFormat {\
my $ST= ReadingsNum($name, "ST", -99999.99);;\
my $PV= ReadingsNum($name, "PV", -99999.99);;\
my $GP= ReadingsNum($name, "GP", -99999.99);;\
my $PB= ReadingsNum($name, "BP", -99999.99);;\
my $SC= ReadingsNum($name, "SC", -99999.99);;\
my $IW= ReadingsNum($name, "IW", -99999.99);;\
my $OP= ReadingsNum($name, "OP", -99999.99);;\
\
## sprintf("Status: %d PV: %.0fW Netz: %.0fW\r\nBatt:(%.0fW, %.0f%%) Sum: (In %.0fW Out %.0fW)", $ST, $PV, $GP, $PB, $SC, $IW, $OP);;\
\
\
my $stf= "";;\
$stf.=sprintf("Status: %d PV: %.0fW Netz: %.0fW\r\n", $ST, $PV, $GP);;\
$stf.=sprintf("Batt:(%.0fW, %.0f%%)\r\n", $PB, $SC);;\
$stf.=sprintf("Sum: (In %.0fW Out %.0fW)", $IW, $OP);;\
\
$stf\
}
attr Batt1 userReadings dt:timestamp.* {POSIX::strftime("%Y-%m-%d %H:%M:%S",localtime(ReadingsVal($name,"timestamp",0)/1000));;}