{"id":14021,"date":"2025-05-08T09:35:07","date_gmt":"2025-05-08T06:35:07","guid":{"rendered":"https:\/\/www.fmsdocumentation.com\/api\/coordinate-delloggetto-api-di-streaming\/"},"modified":"2025-05-08T09:35:09","modified_gmt":"2025-05-08T06:35:09","slug":"coordinate-delloggetto-api-di-streaming","status":"publish","type":"page","link":"https:\/\/www.fmsdocumentation.com\/it\/api\/coordinate-delloggetto-api-di-streaming\/","title":{"rendered":"Coordinate dell&#8217;oggetto API di streaming"},"content":{"rendered":"\n<p>\n\nLo scopo principale delle API Object Coordinates Streaming \u00e8 quello di informare l&#8217;utente sui cambiamenti degli oggetti. Questa particolare API funziona come un flusso di informazioni, utilizzando la tecnologia <a href=\"https:\/\/en.wikipedia.org\/wiki\/Server-sent_events\">SSE (server sent events)<\/a>. Una volta che l&#8217;utente ha inviato una richiesta API, per prima cosa viene visualizzata l&#8217;ultima coordinata nota per ogni oggetto, dopodich\u00e9 i nuovi dati verranno inviati all&#8217;utente non appena si verifica un cambiamento. Non \u00e8 necessario inviare nuovamente la richiesta API, a meno che la connessione allo streaming non sia stata interrotta.   \n\n<\/p>\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.fmsdocumentation.com\/wp-content\/uploads\/2017\/04\/Streaming-API-234x300.png\" alt=\"Questa immagine ha un attributo alt vuoto; il suo nome file &#xE8; Streaming-API-234x300.png\"\/><\/figure>\n\n<p style=\"background-color: #2e67b1; color: #ffffff; padding-left: 10px; padding-right: 10px;\"><p class=\"note\">Note<br\/>Since the API first returns the last known coordinate, in cases when the API stream was ongoing and for some reason reconnected, with no new coordinates received between that time, the user will receive the last know coordinate, which has already been received once, thus duplicating the coordinate record. This should be kept in mind, since it may cause issues in various systems.<\/p><\/p>\n\n<p>Coordinate dell&#8217;oggetto Lo streaming API pu\u00f2 essere avviato sia per un oggetto specifico che per tutti gli oggetti disponibili all&#8217;utente.<\/p>\n\n<p>Esempio di richiesta per un oggetto specifico:<\/p>\n\n<p style=\"background-color: #000000; color: #bbbdc0; font-family: Lucida Console; padding-left: 10px; padding-right: 10px;\">GET \/object-coordinates-stream?version=1&#038;object_id=<...>&#038;api_key=<...><br\/>HOST:api.fm-track.com<br\/>Content-Type:text\/event-stream;charset=UTF-8<\/p>\n\n<p>\n\nEsempio di richiesta per tutti gli oggetti dei clienti:\n\n<\/p>\n\n<p style=\"background-color: #000000; color: #bbbdc0; font-family: Lucida Console; padding-left: 10px; padding-right: 10px;\">GET \/object-coordinates-stream?version=1&#038;api_key=<...><br\/>HOST:api.fm-track.com<br\/>Content-Type:text\/event-stream;charset=UTF-8<\/p>\n\n<p>Affinch\u00e9 questa API funzioni, sono obbligatori solo due parametri:<\/p>\n\n<table id=\"tablepress-9\" class=\"tablepress tablepress-id-9\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Parameter<\/th><th class=\"column-2\">Type<\/th><th class=\"column-3\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">version<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">Version of the API, currently only version=1 is available<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">api_key<\/td><td class=\"column-2\">User identification key<\/td><td class=\"column-3\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-9 from cache -->\n\n<p>E solo un parametro opzionale pu\u00f2 essere incluso nella richiesta:<\/p>\n\n<table id=\"tablepress-10\" class=\"tablepress tablepress-id-10\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Parameter<\/th><th class=\"column-2\">Type<\/th><th class=\"column-3\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">object_id<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">External object ID<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-10 from cache -->\n\n<p>Risposta dal server:<\/p>\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\">\n<pre class=\"CodeMirror cm-s-dracula\" data-setting=\"{\"mode\":\"javascript\",\"mime\":\"application\/json\",\"theme\":\"dracula\",\"lineNumbers\":true,\"lineWrapping\":false,\"readOnly\":true}\">{\n    \"object_id\" : \"abc123\",\n    \"datetime\" : \"2017-04-13T06:58:48.090Z\",\n    \"ignition_status\" : \"UNKNOWN\",\n    \"position\" : {\n        \"altitude\" : 0,\n        \"direction\" : 0,\n        \"latitude\" : 0,\n        \"longitude\" : 0,\n        \"hdop\": 0,\n        \"satellites_count\" : 0,\n        \"speed\" : 0\n    },\n    \"device_inputs\" : {\n        \"digital_input_1\" : true,\n        \"digital_input_2\" : true,\n        \"digital_input_3\" : true,\n        \"digital_input_4\" : true,\n        \"power_supply_voltage\" : 0,\n        \"ibutton\" : \"xxxxxxxxxx\",\n        \"first_driver_id\" : \"xxxxxxxxxx\",\n        \"second_driver_id\" : \"xxxxxxxxxx\",\n         \"temperature_sensor_0\": 0,\n         \"temperature_sensor_1\": 0,\n         \"temperature_sensor_2\": 0,\n         \"temperature_sensor_3\": 0,\n         \"temperature_sensor_0_id\": \"xxxxxxxxxx\"\n    },\n    \"calculated_inputs\":{\n        \"mileage\" : 0\n    }\n}<\/pre>\n<\/div>\n<p>Tutti i campi di risposta che possono essere ricevuti con ogni tipo di parametro sono descritti nella tabella successiva:<\/p>\n\n<table id=\"tablepress-11\" class=\"tablepress tablepress-id-11\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Name<\/th><th class=\"column-2\">Type<\/th><th class=\"column-3\">Description<\/th><th class=\"column-4\">Units<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">object_id<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">Object identifier in our system<\/td><td class=\"column-4\">Text<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">datetime<\/td><td class=\"column-2\">Date<\/td><td class=\"column-3\">Date and time point of coordinate generated in hardware<br \/>\nFormat: \"yyyy-mm-ddThh:mm:ss.sssZ\"<br \/>\n<\/td><td class=\"column-4\">According ISO8601<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">ignition_status<\/td><td class=\"column-2\">Enum<\/td><td class=\"column-3\">Indicating if object has ignition on.<br \/>\n\"ON\" - Ignition on<br \/>\n\"OFF\" - Ignition off<br \/>\n\"UNKNOWN\" - No data about ignition<br \/>\n<\/td><td class=\"column-4\">ON - OFF<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">position<\/td><td class=\"column-2\">Array<\/td><td class=\"column-3\">Contains all record GPS parameters<\/td><td class=\"column-4\"><\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">latitude<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">GPS coordinate - latitude value<\/td><td class=\"column-4\">Degrees<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">longitude<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">GPS coordinate - longitude value<\/td><td class=\"column-4\">Degrees<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">altitude<\/td><td class=\"column-2\">Integer<\/td><td class=\"column-3\">GPS coordinate - altitude value<\/td><td class=\"column-4\">Number<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">direction<\/td><td class=\"column-2\">Integer<\/td><td class=\"column-3\">Moving direction in degrees<\/td><td class=\"column-4\">0 = north, increasing clock-wise<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">speed<\/td><td class=\"column-2\">Integer<\/td><td class=\"column-3\">Object moving speed<\/td><td class=\"column-4\">km\/h<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">satellites_count<\/td><td class=\"column-2\">Integer<\/td><td class=\"column-3\">Number of visible GPS or GLONASS satellites(depends on device configuration) while generating record in device<\/td><td class=\"column-4\">Number<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">device_inputs<\/td><td class=\"column-2\">Container for parameters received from hardware<\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-1\">power_supply_voltage<\/td><td class=\"column-2\">Integer<\/td><td class=\"column-3\">Object power supply voltage<\/td><td class=\"column-4\">mV<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td class=\"column-1\">ibutton<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">iButton or RFID card code of a driver assigned to a vehicle<\/td><td class=\"column-4\">Text<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-1\">hdop<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">GPS precision<\/td><td class=\"column-4\">Number<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-1\">first_driver_id<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">TCO code of the first driver<\/td><td class=\"column-4\">Text<\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-1\">second_driver_id<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">TCO code of the second driver<\/td><td class=\"column-4\">Text<\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-1\">digital_input_1<\/td><td class=\"column-2\">Boolean<\/td><td class=\"column-3\">Configured object or its equipment status<br \/>\ntrue - status = active<br \/>\nfalse - status = inactive<br \/>\n<\/td><td class=\"column-4\">True - False<\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-1\">digital_input_2<\/td><td class=\"column-2\">Boolean<\/td><td class=\"column-3\">Configured object or its equipment status<br \/>\ntrue - status = active<br \/>\nfalse - status = inactive<br \/>\n<\/td><td class=\"column-4\">True - False<\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td class=\"column-1\">digital_input_3<\/td><td class=\"column-2\">Boolean<\/td><td class=\"column-3\">Configured object or its equipment status<br \/>\ntrue - status = active<br \/>\nfalse - status = inactive<br \/>\n<\/td><td class=\"column-4\">True - False<\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-1\">digital_input_4<\/td><td class=\"column-2\">Boolean<\/td><td class=\"column-3\">Configured object or its equipment status<br \/>\ntrue - status = active<br \/>\nfalse - status = inactive<br \/>\n<\/td><td class=\"column-4\">True - False<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-1\">temperature_sensor_0<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">Temperature sensor data<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td class=\"column-1\">temperature_sensor_1<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">Temperature sensor data<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-1\">temperature_sensor_2<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">Temperature sensor data<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-1\">temperature_sensor_3<\/td><td class=\"column-2\">Float<\/td><td class=\"column-3\">Temperature sensor data<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td class=\"column-1\">temperature_sensor_0_id<\/td><td class=\"column-2\">String<\/td><td class=\"column-3\">Temperature sensor ID<\/td><td class=\"column-4\">Text<\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-1\">calculated_inputs<\/td><td class=\"column-2\">Array<\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-1\">mileage<\/td><td class=\"column-2\">float<\/td><td class=\"column-3\">Object driven distance (depends on object configuration)<\/td><td class=\"column-4\">km<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-11 from cache -->\n<p>Gli endpoint API, i parametri di richiesta e le risposte possono essere visualizzati in anteprima in &#8220;Swagger&#8221; attraverso questo link: https: <a href=\"https:\/\/api.fm-track.com\/swagger-ui.html\">\/\/api.fm-track.com<\/a><\/p>\n<p style=\"background-color: #2e67b1; color: #ffffff; padding-left: 10px; padding-right: 10px;\"><p class=\"note\">Nota<br \/>Tieni presente che la risposta del server \u00e8 un flusso di dati, gli stessi che vengono ricevuti dal dispositivo. Tutti i dati ricevuti sono forniti &#8220;cos\u00ec come sono&#8221;. Ci\u00f2 significa che il dispositivo pu\u00f2 inviare periodicamente le coordinate di una posizione precedente tra le registrazioni della posizione attuale. L&#8217;API non controlla n\u00e9 gestisce la continuit\u00e0 dei dati ricevuti.   <\/p><\/p>\n<hr>\n<p><div class=\"alignleft\"><a href=\"https:\/\/www.fmsdocumentation.com\/it\/api\/cronologia-delle-coordinate-degli-oggetti-api-v2\/\" title=\"Cronologia delle coordinate degli oggetti API v2\"><span class=\"arrow\">\u2039 &nbsp <\/span> Cronologia delle coordinate degli oggetti API v2 <\/a><\/div> <div class=\"alignright\"><a href=\"https:\/\/www.fmsdocumentation.com\/it\/api\/coordinate-degli-oggetti-api-di-streaming-v2\/\" title=\"Coordinate degli oggetti API di streaming v2\">Coordinate degli oggetti API di streaming v2 <span class=\"arrow\"> &nbsp\u203a <\/span> <\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lo scopo principale delle API Object Coordinates Streaming \u00e8 quello di informare l&#8217;utente sui cambiamenti degli oggetti. Questa particolare API funziona come un flusso di informazioni, utilizzando la tecnologia SSE (server sent events). Una volta che l&#8217;utente ha inviato una richiesta API, per prima cosa viene visualizzata l&#8217;ultima coordinata nota per ogni oggetto, dopodich\u00e9 i &hellip; <a href=\"https:\/\/www.fmsdocumentation.com\/it\/api\/coordinate-delloggetto-api-di-streaming\/\" class=\"more-link\">Continua a leggere <span class=\"screen-reader-text\">Coordinate dell&#8217;oggetto API di streaming<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":14003,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-14021","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/pages\/14021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/comments?post=14021"}],"version-history":[{"count":1,"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/pages\/14021\/revisions"}],"predecessor-version":[{"id":14022,"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/pages\/14021\/revisions\/14022"}],"up":[{"embeddable":true,"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/pages\/14003"}],"wp:attachment":[{"href":"https:\/\/www.fmsdocumentation.com\/it\/wp-json\/wp\/v2\/media?parent=14021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}