Need help decoding these packets

Guys,

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 ?

Craig

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 !

Craig

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 !

Craig

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

image

And here it is as a string

image

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 ?

Craig

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

Craig

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

Craig

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

image

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

image

And if i leave it as bytes and open it up

image

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

Craig

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 ??

Craig

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