Need help decoding these packets


Just in the middle of commissioning our new Battery system and trying to work out the information being returned by the inverter.

At this stage there is little/no data on the internet regarding this inverter and the info it returns so i am having to reverse engineer it.

It is a Goodwe SBP5000 A/C coupled inverter

Basically we send a UDP request packet to it and it returns a whole heap of hex data - i need to take all of that data and convert it on the fly to decimal assuming it is 16 bit and then do the same to 32 bit
Hopefully i will then be able to start comparing the return values to what is showing the in woeful app and work out what each one relates to

So here is a screenshot for instance of the output of the debug node

I have up to now just been putting in two of the return values into the calculator as Hex and converting to decimal but that is proving to be too slow to be practical - any ideas ?


Check out @Steve-Mcl 's Buffer-Parser .. its the right tool for the right job

1 Like

Excellent will do thanks

Dont know why i did not think of that myself - not enough sleep playing with the new toys !


I suggest you try converting the buffer to a string.

1 Like

Yep good call - turns out it was a generic response with IP address and a Model number.

Working through other permutations now !


OK guys not quite solved - can someone tell me how to get the whole Hex stream of digits that is returned ?

Here is the debug window in NR


And here it is as a string


So i can see my text in there - but when in the debug i try to see all the hex bytes i get this

Is there a way to just spit them out as a Hex string so i can step through them looking for patterns - i.e. one big long 86 digit Hex string ?


let str = msg.payload.toString()

Not at my computer, does the UDP node have an option to return a string rather than a buffer?

Yeah it does - let me try that thanks - will report back


Nope the UDP node when set to string mode just shows the ASCI representation for the characters it can intepret and glyphs for the rest.

What i am after is just a plain hex dump of each of the bytes so it would be say a 146 character string representing 73 Hex characters (zero padded where required)

Will trawl the net for some Javascript to do it and drop into a function node


Show us what it looks like, and what you want to get out of it.

thanks Mate - here we go

So this is the debug window showing 86 bytes


This is if i click on it to turn it into a string rather than bytes


And if i leave it as bytes and open it up


Whereas what i need to see to try and identify the patterns so i can feed it in the buffer parser (the registers are unknown and undocumented at this stage) is

aa557fc001824d3038 etc etc


function like msg.payload=msg.payload.toString("hex") may help

Thats it thanks - why do i always look for the hard way to do things ??


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.