Ok it turns out there is another attribute you need to POST with the "geometery" attribute:
{
"attributes":{
"device_id":1,
"objectid":17,
"longitude":<insert longitude here>,
"latitude":<insert longitude here>,
},
"geometry":{
"x":<insert utm converted coord here>,
"y":<insert utm converted coord here>,
"spatialReference":{
"wkid":<insert WKID here>
}
}
},
"attributes":{
"device_id":2,
"objectid":18,
...
...
.
Realising I needed a 'wkid' (well known ID) for the 'spatialReference' key, I did a google for <my city> WKID.
Using this resource, I was able to find the corresponding WKID for my city's Coordinate Projection System, and send it in the POST request.
FYI, to convert lat long coordinates to X Y (UTM) coordinates, I used the Python "utm" module and the 'from_latlon' function, see:
import utm
#Here I loop through my "device list" and convert Lat/long to X/Y utm coords:
latitude, longitude, zone, var = utm.from_latlon(float(<insert latitude>), float(<insert longitude>))
#Insert the X Y coords into the /updateFeatures "data" (payload) string for the request
Just thought I would update my post for anyone that stumbles upon the same issue. This is the culmination of two days troubleshooting.
Thanks