https://d1skj1m2vbh93t.cloudfront.net/Balcony+energy+storage/Hybrid+energy+storage+system+500+series/SunEnergyXT-500-Series-Local-API.pdfdefmod 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));;}could not find ParserDetails.ini
docker pull ghcr.io/fhem/fhem-minimal-docker:5.3.0-beta2-bookworm
XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()

define vacuum XiaomiDevice 192.168.0.146 573870634c64554e7042376a35xxxxxx
attr vacuum room Test
attr vacuum subType VacuumCleaner
attr vacuum verbose 1
# CFGFN
# DEF 192.168.0.146 573870634c64554e7042376a35xxxxxx
# FD 138
# FUUID 6a25c5c7-f33f-8dc8-d6cf-95bbe4bd706088e3
# NAME vacuum
# NR 1815
# STATE ???
# TYPE XiaomiDevice
# eventCount 567
# hardware Linux
# mac C8:26:E2:0D:DC:39
# model xiaomi.vacuum.ov21gl
# token 573870634c64554e7042376a35xxxxxx
# READINGS:
# 2026-06-08 22:22:35 device_firmware 4.5.8_0183
# 2026-06-08 22:22:35 device_uptime 79.23
# 2026-06-08 22:22:35 error none
# 2026-06-08 22:22:35 wifi_rssi -50
# helper:
# ConnectionState connected
# crypt AES
# delay 60
# dev 45ef
# id ee85
# ip 192.168.0.146
# last_read 1780950155
# packetid 554
# port 54321
# rc_seq 1
# sequence 1780664933
# token 573870634c64554e7042376a35xxxxxxx
# packet:
# 550 get_status
# 551 get_status
# 552 device_info
# 553 get_status
#
setstate vacuum 2026-06-08 22:22:35 device_firmware 4.5.8_0183
setstate vacuum 2026-06-08 22:22:35 device_uptime 79.23
setstate vacuum 2026-06-08 22:22:35 error none
setstate vacuum 2026-06-08 22:22:35 wifi_rssi -50
2026.06.08 21:01:56 4: vacuum: parse id 515 / get_clean_summary
2026.06.08 21:01:56 4: vacuum: msg ref is
2026.06.08 21:01:56 5: vacuum < 213100700000000045efee850004474102da83af110e12a898233994327d4f0ea6b58456ebd197b92a4717a831bf706da13e72ca0aa5d1ca836bf8d6f91032e424e0cb354a615bee35dbc1f9a6572aea51c7e91ef63b417b77fe0bbd09ad24c67628e9331c8480330ca88a7d9820ba5c (112)
2026.06.08 21:01:56 5: vacuum: decrypted
{"id":516,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4007}
2026.06.08 21:01:56 5: vacuum: parse id 516
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
},
'id' => 516,
'exe_time' => 4007
};