Your events don’t hold a {{{temperature}}} field.
You can only use that when your data entry in the event is a JSON string in itself containing a key/value pair with the key"temperature".
With an event like yours you’d use the entire data entry via {{{PARTICLE_EVENT_VALUE}}}
However, instead of sending three events in the same second, I’d wrap all three of your readings into a single JSON even.
Sorry, I’m new and trying to dive into this head first but having trouble understanding the syntax of the JSON data and how it can pull the Particle events.
That depends on the format your target server requires.
I’m not familiar with the requirements of Pushover, but for your original webhook you’d change this
"message": "The temperature is currently {{{temperature}}}."
to this
"message": "The temperature is currently {{{PARTICLE_EVENT_VALUE}}}."
And in order to unify your three events (Particle.publish() calls) into a single JSON event, you’d do something like this
(assuming variables temp, batState & batSoC are all float or double)
This way you could keep your original webhook definition with {{{temperature}}} (the key inside the data entry, not the event name - hence I’d rename the event to something more general like pushover and trigger the webhook on that).
To test what’s actually being received on the remote side, you could first direct that webhook to some service like requestbin.com which lets you see what your target server will see. Once that satisfies the demands you can finally target your original server.