
# 设备时间同步响应
#### 功能描述
平台向设备发送时间同步响应，携带设备发送时间device_send_time。当平台收到时间server_recv_time 后，向设备发送时间server_send_time 。
例如，设备收到的设备侧时间为device_recv_time ，则设备计算自己的准确时间为：
(server_recv_time + server_send_time + device_recv_time - device_send_time) / 2
#### Topic
下行: $oc/devices/{device_id}/sys/events/down
#### 参数说明
| 字段名              | 必选/可选 | 类型                   | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| object_device_id | 可选    | String               | **参数解释：** - 平台下发时，若为网关子设备，该参数为Topic中设备的子设备Id。  - 平台下发时，若为直连设备，该参数会与Topic中的device_id一致。   |
| services         | 可选    | List\<ServiceEvent\> | **参数解释：** 事件服务列表。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
ServiceEvent定义表
| 字段名        | 必选/可选 | 类型     | 参数描述                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| service_id | 必选    | String | **参数解释：** 系统字段。 **取值范围：** 固定为："$time_sync"。       |
| event_type | 必选    | String | **参数解释：** 系统字段。 **取值范围：** 固定为："time_sync_response"。 |
| event_time | 可选    | String | **参数解释：** 事件时间。UTC时间，格式：yyyyMMdd'T'HHmmss'Z'。                                                                                                                                               |
| paras      | 必选    | Object | **参数解释：** 事件参数JSON对象。                                                                                                                                                                        |
   
paras参数列表
| 字段名              | 必选/可选 | 类型   | 参数描述                                                                                                                                       |
|:---|:---|:---|:---|
| device_send_time | 必选    | long | **参数解释：** 设备发送时间，设备获取自己的当前时间戳，即从格林威治时间1970年01月01日00时00分00秒起至现在的毫秒数。 |
| server_recv_time | 必选    | long | **参数解释：** 平台收到时间戳。                                                 |
| server_send_time | 必选    | long | **参数解释：** 平台发送时间戳。                                                  |
   
#### 示例
```
Topic: $oc/devices/{device_id}/sys/events/down  
数据格式： 
{ 
    "object_device_id": "{object_device_id}", 
    "services": [{ 
        "service_id": "$time_sync", 
        "event_type": "time_sync_response", 
        "event_time": "20151212T121212Z",
         "paras": { 
            "device_send_time": 1582685678789,
            "server_recv_time": 1582685696152,
            "server_send_time": 1582685708109
         } 
    }] 
}
```
