The split node outputs 4 separate chunks of json, which the change node happily handles. But, only one of these is being sent to emoncms.
One likely sticking point is that the labels (site, solar) are stripped from the json. I presume that means emoncms thinks it’s getting 4 pulses of the same data? The json labels are lost through the split node.
Here’s my flow (reasonably sure without api key):
[{"id":"6f4bec9.6832c94","type":"tab","label":"Flow 2"},{"id":"fbb0563f.73c548","type":"split","z":"6f4bec9.6832c94","name":"","splt":"\\n","x":394,"y":155,"wires":[["dfdea58c.83c7f8"]]},{"id":"dfdea58c.83c7f8","type":"change","z":"6f4bec9.6832c94","name":"","rules":[{"t":"move","p":"payload.last_communication_time","pt":"msg","to":"time","tot":"msg"},{"t":"set","p":"nodegroup","pt":"msg","to":"\"Powerwall-\" & msg.parts.key","tot":"jsondata"}],"action":"","property":"","from":"","to":"","reg":false,"x":503,"y":247,"wires":[["9daec9b2.76ac4"]]},{"id":"2aa0a68.a63aeda","type":"http request","z":"6f4bec9.6832c94","name":"aggregates","method":"GET","ret":"txt","url":"https://192.168.1.220/api/meters/aggregates","tls":"2ef5995c.70f58e","x":278,"y":88,"wires":[["d932ec4b.4c18f"]]},{"id":"9daec9b2.76ac4","type":"emoncms","z":"6f4bec9.6832c94","name":"emoncms","emonServer":"5243d6fc.b657f","nodegroup":"","datatype":"fulljson","x":689,"y":170,"wires":[]},{"id":"d932ec4b.4c18f","type":"json","z":"6f4bec9.6832c94","name":"","x":261.5,"y":224,"wires":[["fbb0563f.73c548"]]},{"id":"87b0265e.c74658","type":"inject","z":"6f4bec9.6832c94","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":112.5,"y":149,"wires":[["2aa0a68.a63aeda"]]},{"id":"2ef5995c.70f58e","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"./data/powerwall.pem","verifyservercert":false},{"id":"5243d6fc.b657f","type":"emoncms-server","z":"","server":"http://192.168.1.161/emoncms","name":"emonpi"}]