Well, I'm not sure if that is exactly what I mean.
I don't know what the flow does in the bigger scheme. But parts of the flow want specific parts of those incoming messages.
So rather than messing around joining the message into one homogeneous one which you are going to them split down to smaller ones anyway, you can do that before you join them.
So if part of your dashboard wants to know the battery temperature, you do something like this:
(Hang on while I make the flow)
[{"id":"d208180966fc5f61","type":"change","z":"437e4108076e5928","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"msg.data.attributes.batteryTemerature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":1010,"wires":[["a07415564afbba11"]]},{"id":"2c9a3c0cc525f8c6","type":"function","z":"437e4108076e5928","name":"Existing message","func":"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":130,"y":1080,"wires":[["d208180966fc5f61"]]},{"id":"a07415564afbba11","type":"debug","z":"437e4108076e5928","name":"To the part of the flow that needs the battery temperature","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":650,"y":1010,"wires":[]}]
But this is what it looks like.
Given: the function
node is what is sending the actual message and the debug
node goes to the part of the flow which needs the battery temperature.
Extra change
nodes are shown to extract other information. Shown as example.