王旭东
充电桩压测方案
海镕多联机空调485控制器方案说明
电能平台压测程序使用说明
中台软网关解析规则整理
星纵物联LoraWAN网关方案整理
国网376.1协议整理
云快充协议对接方案
科德4G水表离线问题排查
海镕3种空调平台与中台对接参数文档
电信AEP平台NB设备接入教程
牧原项目ARCM500蓝牙调试程序对接文档
中台-Expasion架构设计调整
中台-蓝牙调试小程序对接说明
ADW300-IOT报警新版参数设置(增加DO1和DO2联动)
迈格瑞能MPS微电网混合逆变器整理
微电网混合逆变器参数下发整理
云南交投充电桩协议对接方案
AAC系列空调控制器整理
云快充2.1协议对接方案(新增V2G协议)
本文档使用 MrDoc 发布
-
+
首页
云南交投充电桩协议对接方案
#### 注意事项 - 平台响应桩的请求事件、下发指令都通过中台的操作指令接口 ***/exchange/publish/indicate/operate/{sn}*** - 暂定使用 **20044** 端口 - 型号 productKey: MTE1NTMwMzA0NzY3MTMzMjg2NA secretKey: 1008760034604001 - 该协议订单号固定20字符,即10字节长度,例如:20180206000000000000 ### 1. 报文处理 #### 1.1 充电桩登录 ##### 1.1.1 充电桩登录认证 0x01 中台收到报文后,查询数据库有无这台桩的信息,若桩不存在或者已删除,则回复登录认证失败,不予上线。 标识符:**ynjtLogin** ##### 1.1.2 登录认证应答 0x02 中台直接回复设备,标识符 **ynjtLogin_reply** ##### 1.1.3 中台主动请求计费模型 中台以 **ynjtAskFeeModelEvt** 标识符参照国网协议计费模型请求事件转发给平台 这里传参只有桩编号,和国网协议上传当前计费模型编号有差别 **ynjtAskFeeModelEvt** 事件参数: ```js { //桩枪编号 "sn": "2018020701" } ``` ##### 1.1.4 计费模型请求应答 标识符 **ynjtAskFeeModelEvt_reply** 平台调用中台接口将计费模型返回给桩,传参如下: ```js { "method": "YNJT_ASK_FEEMODEL_RESPONSE", //电费,尖峰平谷费率,精确到2位小数,100表示1元 "chargeFee":[100,120,80,60], //服务费,对应尖峰平谷时段服务费,精确到2位小数,50表示0.5元 "serviceFee":[50,50,50,50], //时段数 协议未限制 "timeNum": 6, //时段开始时间点,时间点分钟部分仅支持 00或30 ,如果全天仅用一个费率,也得传一个时间过来,如"0000" "timeSeg": ["0530","0800","1130","1330","1900","2300"], //时段标志 10-尖时段 11-峰时段 12-平时段 13-谷时段 "segFlag": [10,11,10,12,13,11] } ``` #### 1.2 充电桩心跳包 ##### 1.3.1 常规心跳 0x03 标识符:**ynjtHeartbeat** 该报文转成属性上报事件转给平台,平台用于区分桩是否在线 **ynjtHeartbeat** 属性上报参数 ```js { //桩编号 "sn": "2018020701", "state": "ONLINE" } ``` ##### 1.3.2 充电时心跳 0x04 标识符:**ynjtRunState** 中台以 **ynjtRunState** 标识符参照国网协议属性上报方式转发给平台 ```js { //桩编号 "sn": "2018020701", //订单号 "preTradeNo": "20180206000000000000", //SOC "socVal": 0, //充电电压 "dcVol": 0, //充电电流 "dcCur": 0, //已充电量 "totalElect":0, //充电时间 "chgTime": 0, "totalCost": 0 } ``` ##### 1.3.3 故障时心跳 0x05 标识符:**ynjtTotalFaultEvt** 中台以 **ynjtTotalFaultEvt** 标识符参照国网协议故障告警事件转发给平台,平台判断是否结束订单 **ynjtTotalFaultEvt** 事件参数: ```js { //桩编号 "sn": "2018020701", //0-已修复 1-故障 "type": 1, //对应附录3 故障标识码 "errorList": [26,36,...,37] } ``` ##### 1.3.4 心跳返回帧 0x06 标识符:**ynjtHeartbeat_reply** #### 1.3 充电桩OTA升级 ##### 1.3.1 充电桩向服务端请求升级软件版本 0x71 标识符 **ynjtOtaEvt** **ynjtOtaEvt** 事件参数: ```js { //桩编号 "sn": "2018020701" } ``` ##### 1.3.2 充电桩软件版本升级请求回复 0x81 标识符 **ynjtOtaEvt_reply** 平台调用中台接口将软件更新下载地址返回给桩 ```js { "method": "YNJT_OTA_EVT_RESPONSE", "url": "..." } ``` ##### 1.3.3 充电桩软件版本升级命令 0x07 标识符 **ynjtOta** 平台调用中台接口传参: ```js { "method": "YNJT_OTA", "url": "..." } ``` ##### 1.3.4 充电桩软件版本升级命令回复 0x08 标识符 **ynjtOtaResultEvt** 中台指令超时时间内收到桩回复直接响应接口,并参照国网协议以 **ynjtOtaResultEvt** 事件方式转发平台,以应对超时时间之后收到桩回复的情况 ```js { "success": "1", "data": { //桩编码 "sn": "2018020701", //升级结果 1-成功 0-失败 "result": 0 }, "errorCode": "", "errorMsg": "" } ``` #### 1.4 充电流程 ##### 1.4.1 BMS信息主动上报 0x27 标识符 **ynjtBmsRunIty** 中台以属性上报方式转发给平台 **ynjtBmsRunIty** 属性上报参数: ```js { //桩编号 "sn": "2018020701", //车辆连接状态 0-断开 1-半连接 2-连接 "carConnStatus": 2, //电池类型 1-铅酸电池 2-镍氢电池 3-磷酸铁锂电池 4-锰酸锂电池 5-钴酸锂电池 6-三元锂电池 7-聚合锂电池 8-钛酸锂电池 9-其他电池 "batType": 3, //电动汽车电池额定容量 "batRatedCap": 0, //车辆识别VIN码 "vinCode": "xxx", //车辆需求电压 "needVol": 0, //车辆需求电流 "needCur": 0 } ``` ##### 1.4.2 BMS信息主动上报回复 0x28 标识符 **ynjtBmsRunIty_reply** ##### 1.4.3 远程开启充电命令 0x11 标识符 **ynjtStartCharging** 平台调用中台接口传参: ```js { "method": "YNJT_START_CHARGING", //交易流水号 "preTradeNo": "20180206000000000000", //订单金额,保留到小数点两位,10000表示100元 "balance": "10000" } ``` ##### 1.4.4 多枪启动充电 0x47 标识符 **ynjtMultiGunStartCharging** 平台调用中台接口传参: ```js { "method": "YNJT_MULTI_GUN_START_CHARGING", //交易流水号 "preTradeNo": "20180206000000000000", //订单金额,保留到小数点两位,10000表示100元 "balance": "10000", //充电模式 1-双枪 2-三枪 3-四枪 "chargeMode": 1 } ``` ##### 1.4.5 远程开启充电命令回复 0x12 中台响应结果: ```js { "success": "1", "data": { //交易流水号 "preTradeNo": "20180206000000000000", //桩编号 "sn": "2018020701", //启动结果 0-失败 1-成功 "startResult": 0, //失败原因 0-无 1-启动充电成功 2-充电枪未插好 3-正在充电操作失败 4-充电枪故障 5-信息校验失败 6-订单号格式非法 "faultCode": 1 }, "errorCode": "", "errorMsg": "" } ``` 中台接口响应之后还会以 **ynjtStartChaResEvt** 标识符参照国网协议启动充电结果事件方式转发给平台 **ynjtStartChaResEvt** 事件参数: ```js { //交易流水号 "preTradeNo": "20180206000000000000", //桩编号 "sn": "2018020701", //启动结果 0-失败 1-成功 "startResult": 1, //失败原因 0-无 1-启动充电成功 2-充电枪未插好 3-正在充电操作失败 4-充电枪故障 5-信息校验失败 6-订单号格式非法 "faultCode": 1 } ``` ##### 1.4.6 插枪上报VIN校验 0x51 中台调用平台启动充电鉴权接口,根据平台回复的结果返回给桩 标识符 **ynjtStartChargeAuthEvt** 中台调用平台接口参数: ```js { //桩编号 "sn": "2018020701", //车辆识别VIN码 "vinCode": "LG345678XB1234567" } ``` ##### 1.4.7 插枪上报VIN校验结果 0x52 标识符 **ynjtStartChargeAuthEvt_reply** 若中台调用接口失败,直接回复桩鉴权失败。 平台鉴权成功则创建订单,等待桩启动结果事件推送 平台返回给中台的结果: ```js { "success": "1", "data": { //交易流水号,失败时为空 "preTradeNo": "20180206000000000000", //桩编号 "sn": "2018020701", //订单金额,保留到小数点两位,10000表示100元 "balance": 10000, //校验结果 0-失败 1-成功 "result": 1 }, "errorCode": "", "errorMsg": "" } ``` ##### 1.4.8 远程充电金额更新 0x39 标识符 **ynjtUpdateBalance** 平台调用接口传参: ```js { "method": "YNJT_UPDATE_BALANCE", //桩编号 "sn": "2018020701", //订单号 "preTradeNo": "20180206000000000000", //账户余额 保留到小数点两位,10000表示100元 "balance": 10000 } ``` ##### 1.4.9 远程充电金额更新应答 0x40 标识符 **ynjtUpdateBalance_reply** 中台接口响应: ```js { "success": "1", "data": { //桩编号 "sn": "2018020701", //修改结果 0-失败 1-成功 "result": 1 }, "errorCode": "", "errorMsg": "" } ``` ##### 1.4.10 远程关闭充电命令 0x13 标识符 **ynjtStopCharging** 平台调用中台接口传参: ```js { "method": "YNJT_STOP_CHARGING", //订单号 "preTradeNo": "20180206000000000000" } ``` ##### 1.4.11 远程关闭充电命令回复 0x14 标识符 **ynjtStopCharging_reply** 中台接口响应: ```js { "success": "1", "data": { //桩编号 "sn": "2018020701", //订单号 "preTradeNo": "20180206000000000000", //停止结果 0-失败 1-成功 "stopResult": 1, //失败原因 0-无 1-停止成功 2-充电桩故障 3-信息校验失败 4-订单号格式非法 5-待机状态无法关闭 "stopFailRes": 0 }, "errorCode": "", "errorMsg": "" } ``` ##### 1.4.12 完整订单信息上报请求 0x25 参照国网协议的处理方式,中台调用电能平台接口将订单信息传给平台,根据平台回复的确认信息返回给设备。 标识符 **ynjtOrderUpdateEvt** 中台调用平台接口传参: ```js { //交易流水号 "preTradeNo": "20180206000000000000", //桩编号 "sn": "2018020701", //订单金额,保留2位小数 "totalCost": 0, //计费模型版本号 "feeModelVersion": "1.0", //尖电量,保留2位小数 "sharpElect": 0, //峰电量,保留2位小数 "peakElect": 0, //平电量,保留2位小数 "flatElect": 0, //谷电量,保留2位小数 "valleyElect": 0, //总消费电量,保留2位小数 "totalElect": 0, //尖电费,保留2位小数 "sharpPowerCost": 0, //峰电费,保留2位小数 "peakPowerCost": 0, //平电费,保留2位小数 "flatPowerCost": 0, //谷电费,保留2位小数 "valleyPowerCost": 0, //合计电费,保留2位小数 "totalPowerCost": 0, //尖时刻服务费,保留2位小数 "sharpServCost": 0, //峰时刻服务费,保留2位小数 "peakServCost": 0, //平时刻服务费,保留2位小数 "flatServCost": 0, //谷时刻服务费,保留2位小数 "valleyServCost": 0, //合计服务费,保留2位小数 "totalServCost": 0, //充电前电表尖读数,保留2位小数 "sharpStart":0, //充电后电表尖读数,保留2位小数 "sharpEnd":0, //充电前电表峰读数,保留2位小数 "peakStart":0, //充电后电表峰读数,保留2位小数 "peakEnd":0, //充电前电表平读数,保留2位小数 "flatStart":0, //充电后电表平读数,保留2位小数 "flatEnd":0, //充电前电表谷读数,保留2位小数 "valleyStart":0, //充电后电表谷读数,保留2位小数 "valleyEnd":0, //充电前电表总读数,保留2位小数 "sumStart":0, //充电后电表总读数,保留2位小数 "sumEnd":0, //订单起始SOC "startSoc":45, //订单结束SOC "endSoc": 55, //充电开始时间,时间戳,精确到秒 "chargeStartTime": "1724306354", //充电结束时间,时间戳,精确到秒 "chargeEndTime": "1724309296", //充电停止原因 参见附录2 "stopReason": 1, //支付卡号(预留) "physicalCardNo":"" } ``` ##### 1.4.13 完整订单信息上报回复 0x26 若中台调用平台接口失败,中台也不回复桩,为防止丢失订单信息,中台记录日志 标识符 **ynjtOrderUpdateEvt_reply** 平台接口返回参数: ```js { //中台根据 success 区分如何回复给桩 1-成功 0-非法账单 "success": "1", "errorCode": "", "errorMsg": "", "data": null } ``` #### 1.5 其他指令 ##### 1.5.1 充电桩重新启动命令 0x31 标识符 **ynjtRestart** 平台调用中台接口传参: ```js { "method": "YNJT_RESTART" } ``` ##### 1.5.2 充电桩重新启动命令下发回复 0x32 标识符 **ynjtRestart_reply** 中台接口响应: ```js { //结果,0-重启故障不能够执行 1-能够重新启动并在10秒后执行 "success": "1", "data": { "msgid": "985793334668742656" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.3 二维码下发命令 0x15 标识符 **ynjtQRCode** 平台调用中台接口传参: ```js { "method": "YNJT_QR_CODE", "QR_code": "www.baidu.com?No=" } ``` ##### 1.5.4 二维码下发命令回复 0x16 标识符 **ynjtQRCode_reply** 中台接口响应: ```js { //结果,0-失败 1-成功 "success": "1", "data": { "msgid": "985793334668742656" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.5 更新计费规则命令 0x23 标识符 **ynjtFeeModelUpdate** 平台调用中台接口传参: ```js { "method": "YNJT_FEEMODEL_UPDATE", //电费,尖峰平谷费率,精确到2位小数,100表示1元 "chargeFee":[100,120,80,60], //服务费,对应尖峰平谷时段服务费,精确到2位小数,50表示0.5元 "serviceFee":[50,50,50,50], //时段数 协议未限制 "timeNum": 6, //时段开始时间点,时间点分钟部分仅支持 00或30 ,如果全天仅用一个费率,也得传一个时间过来,如"0000" "timeSeg": ["0530","0800","1130","1330","1900","2300"], //时段标志 10-尖时段 11-峰时段 12-平时段 13-谷时段 "segFlag": [10,11,10,12,13,11] } ``` ##### 1.5.6 更新计费规则命令回复 0x24 标识符 **ynjtFeeModelUpdate_reply** 中台接口响应: ```js { //结果,0-失败 1-成功 "success": "1", "data": { "msgid": "985793334668742656" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.7 充电桩通讯模式下发命令 0x19 标识符 **ynjtSetCommParam** 平台调用中台接口传参: ```js { "method": "YNJT_SET_COMMUNICATION", //服务端地址 "serverIp": "192.168.110.1", //服务端端口 "serverPort": 2406, //常规心跳上报周期,单位 秒 "normalHeartbeat": 60 //充电心跳上报周期,单位 秒 "chargingHeartbeat": 30, //故障信息上报周期,单位 秒 "faultHeartbeat": 300, //重发检测超时次数 "repeatTimes": 3, //对时请求发起时间 "timeSync": "12:00", //报文发送失败重试间隔,单位 秒 "repeatInterval": 10 } ``` ##### 1.5.8 充电桩通讯模式下发命令回复 0x20 标识符 **ynjtSetCommParam_reply** 中台接口响应: ```js { //结果,0-失败 1-成功 "success": "1", "data": { "msgid": "985793334668742656" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.9 充电桩工作参数设置 0x42 标识符 **ynjtSetPileParam** 平台调用中台接口传参: ```js { "method": "YNJT_SET_PILE_PARAM", //是否允许工作 0-允许正常工作 1-停止使用,锁定充电桩 "pileLock": 0, //充电桩最大允许输出功率 范围30%~100% "maxPower": 50 } ``` ##### 1.5.10 充电桩工作参数设置应答 0x43 标识符 **ynjtSetPileParam_reply** 中台接口响应: ```js { //结果,0-失败 1-成功 "success": "1", "data": { "msgid": "985793334668742656" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.11 充电桩对时下发 0x35 标识符 **ynjtTime** 平台调用中台接口传参: ```js { "method": "YNJT_TIME", //当前unix时间戳,毫秒级 "timestamp": "1724222188999" } ``` 该指令桩不回复,中台直接回复成功 ```js { //结果,0-失败 1-成功 "success": "1", "data": { "msgid": "985793334668742656" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.12 充电桩状态查询命令 0x17 标识符 **ynjtRefreshState** 平台调用中台接口传参: ```js { "method": "YNJT_REFRESH_STATE" } ``` ##### 1.5.13 充电桩状态查询命令回复 0x18 标识符 **ynjtRefreshState_reply** 中台接口响应: ```js { //结果,0-失败 1-成功 "success": "1", "data": { //桩编号 "sn": "2018020701", //状态 0-空闲 1-充电中 2-故障 "workStatus": 0 }, "errorCode": "", "errorMsg": "" } ``` 后面的指令优先级较低 ##### 1.5.14 BMS信息查询命令 0x29 标识符 **ynjtGetBmsInfo** ```js { "method": "YNJT_GET_BMS_INFO" } ``` ##### 1.5.15 BMS信息查询命令回复 0x30 标识符 **ynjtGetBmsInfo_reply** ```js { "success": "1", "data": { // 1-查询成功,0-查询失败,成功时才有其他参数 "result": 1, //桩编号 "sn": "2018020701", //车辆连接状态 0-断开 1-半连接 2-连接 "carConnStatus": 2, //电池类型 1-铅酸电池 2-镍氢电池 3-磷酸铁锂电池 4-锰酸锂电池 5-钴酸锂电池 6-三元锂电池 7-聚合锂电池 8-钛酸锂电池 9-其他电池 "batType": 3, //电动汽车电池额定容量 "batRatedCap": 0, //车辆识别VIN码 "vinCode": "xxx", //车辆需求电压 "needVol": 0, //车辆需求电流 "needCur": 0 }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.16 查询计费规则命令 0x21 标识符 **ynjtGetFeeModel** ```js { "method": "YNJT_GET_FEE_MODEL" } ``` ##### 1.5.17 查询计费规则命令回复 0x22 标识符 **ynjtGetFeeModel_reply** ```js { //结果,0-失败 1-成功 "success": "1", "data": { "feeModelVersion": "1.0", //电费,尖峰平谷费率,精确到2位小数,100表示1元 "chargeFee":[100,120,80,60], //服务费,对应尖峰平谷时段服务费,精确到2位小数,50表示0.5元 "serviceFee":[50,50,50,50], //时段数 协议未限制 "timeNum": 6, //时段开始时间点,时间点分钟部分仅支持 00或30 ,如果全天仅用一个费率,也得传一个时间过来,如"0000" "timeSeg": ["0530","0800","1130","1330","1900","2300"], //时段标志 10-尖时段 11-峰时段 12-平时段 13-谷时段 "segFlag": [10,11,10,12,13,11] }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.18 广告信息更新命令 0x09 标识符 **ynjtAdUpdate** ```js { "method": "YNJT_AD_UPDATE", "url": "http://123.207.243.232:8081/sj" } ``` ##### 1.5.19 广告信息更新命令回复 0x10 标识符 **ynjtAdUpdate_reply** ```js { //结果,0-失败 1-成功 "success": "1", "data": {}, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.20 订单信息查询命令 0x37 标识符 **ynjtGetOrderInfo** ```js { "method": "YNJT_GET_ORDER_INFO", //交易流水号 "preTradeNo": "20180206000000000000" } ``` ##### 1.5.21 订单信息查询命令回复 0x38 标识符 **ynjtGetOrderInfo_reply** ```js { "success": "1", "data": { // 订单状态 1-订单完成,2-充电中,3-充电失败,4-无此订单 // 订单未完成时,只上传preTradeNo "orderStatus": 1 //交易流水号 "preTradeNo": "20180206000000000000", //桩编号 "sn": "2018020701", //订单金额,保留2位小数 "totalCost": 0, //计费模型版本号 "feeModelVersion": "1.0", //尖电量,保留2位小数 "sharpElect": 0, //峰电量,保留2位小数 "peakElect": 0, //平电量,保留2位小数 "flatElect": 0, //谷电量,保留2位小数 "valleyElect": 0, //总消费电量,保留2位小数 "totalElect": 0, //尖电费,保留2位小数 "sharpPowerCost": 0, //峰电费,保留2位小数 "peakPowerCost": 0, //平电费,保留2位小数 "flatPowerCost": 0, //谷电费,保留2位小数 "valleyPowerCost": 0, //合计电费,保留2位小数 "totalPowerCost": 0, //尖时刻服务费,保留2位小数 "sharpServCost": 0, //峰时刻服务费,保留2位小数 "peakServCost": 0, //平时刻服务费,保留2位小数 "flatServCost": 0, //谷时刻服务费,保留2位小数 "valleyServCost": 0, //合计服务费,保留2位小数 "totalServCost": 0, //充电前电表尖读数,保留2位小数 "sharpStart":0, //充电后电表尖读数,保留2位小数 "sharpEnd":0, //充电前电表峰读数,保留2位小数 "peakStart":0, //充电后电表峰读数,保留2位小数 "peakEnd":0, //充电前电表平读数,保留2位小数 "flatStart":0, //充电后电表平读数,保留2位小数 "flatEnd":0, //充电前电表谷读数,保留2位小数 "valleyStart":0, //充电后电表谷读数,保留2位小数 "valleyEnd":0, //充电前电表总读数,保留2位小数 "sumStart":0, //充电后电表总读数,保留2位小数 "sumEnd":0, //订单起始SOC "startSoc":45, //订单结束SOC "endSoc": 55, //充电开始时间,时间戳,精确到秒 "chargeStartTime": "1724306354", //充电结束时间,时间戳,精确到秒 "chargeEndTime": "1724309296", //充电停止原因 参见附录2 "stopReason": 1, //支付卡号(预留) "physicalCardNo":"" }, "errorCode": "", "errorMsg": "" } ``` ##### 1.5.22充电辅源设置 0x45 标识符 **ynjtAuxPowerSet** ```js { "method": "YNJT_AUX_PWR_SET" "auxPowerVol": 12 } ``` ##### 1.5.23充电辅源设置回复 0x46 标识符 **ynjtAuxPowerSet_reply** ```js { "success": "1", "data": { // 12V / 24V "auxPowerVol": 12, //结果,0-失败 1-成功 "result": 1 }, "errorCode": "", "errorMsg": "" } ``` ### 日志报文结构 云南交投协议中台与桩交互的原始报文和转发平台的报文都存到中台mongodb数据库 log_Datagram_yyyyMM 表中,有的报文中台不做转发,就只存原始报文,转发给平台的,将转发的报文和原始报文存一起。 #### 中台报文日志 ```js { "_id" : Long("989302678269603840"), //桩号 "sn" : "2023080100010001", "deviceId" : Long("41489"), "productId" : Long("230"), "projectId" : Long("1"), "topicStr" : "/sys/a1q5OZTEiYV/2023080100010001/thing/event/property/post", "timestamp" : Long("1724979749080"), //中台转发的报文字符串表示 "plainText" : "{\"id\":\"737\",\"version\":\"1.0\",\"params\":{\"dcGunIdleIty\":{\"gunNo\":1,\"workStatus\":14,\"gunStatus\":10,\"eLockStatus\":10,\"DCK1Status\":10,\"DCK2Status\":10,\"DCPlusFuseStatus\":11,\"DCMinusFuseStatus\":11,\"conTemp1\":100,\"conTemp2\":100,\"dcVol\":6710,\"dcCur\":8000}},\"method\":\"thing.event.property.post\"}", "createTimestamp" : Long("1724979749080"), "type" : "pile", "enterTimestamp" : Long("1724979749"), "totalCost" : 0, "receiveTime" : Long("1724979749080"), //报文类型 "messageType" : "ynjtDeRealIty", //中台转发的报文 "datagram" : { "method" : "thing.event.property.post", "id" : "737", "params" : { "ynjtDeRealIty" : { "workStatus" : 14, "gunStatus" : 10, "DCK1Status" : 10, "conTemp2" : 100, "gunNo" : 1, "DCMinusFuseStatus" : 11, "eLockStatus" : 10, "DCK2Status" : 10, "DCPlusFuseStatus" : 11, "conTemp1" : 100, "dcVol" : 6710, "dcCur" : 8000 } }, "version" : "1.0" }, //数据传送方向 UP-上行 DOWN-下行 "adapterType": "UP", //桩上报原始报文/中台发给桩的报文 "hexData": "68 5E 02 00 00 0A 55 03 14 12 78 23 05 01 00 40 0D 03 00 9C 40 00 00 E0 93 04 00 9C 40 00 00 80 1A 06 00 9C 40 00 00 20 A1 07 00 9C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5E 60"; //云快充协议命令字,10进制表示 "code": "10", //桩的ip端口 "remoteAddress" : "/117.132.196.11:9514", "createTime" : ISODate("2024-08-30T09:02:29.080+08:00"), "_class" : "com.acrel.entity.xch.mqtt.StoreDatagram" } ``` #### 接口日志 中台接口日志(租户日志)存储的是所有平台调用中台接口的日志,包括设备的新增、修改、删除,还有下行指令。 action 字段中台将定义一个枚举,将云快充协议的指令method映射中文说明,优先取用枚举里映射的中文说明,例如 平台远程启动充电、平台远程结束充电等,取不到中文说明再用@TenantLog(action="xx")注解的内容。 ```js { "_id" : Long("989306336757080064"), //默认使用的是注解里的中文说明,中台修改成优先取用指令枚举里的中文说明 "action" : "下发操作指令", "uri" : "/exchange/publish/indicate/operate/ANET20240425", //平台下发的参数 "param" : "[\"ANET20240425\",{\"SwicthId\":\"ANET20240425\",\"group\":\"1\",\"portid\":\"8\",\"method\":\"FORCESWITCH\",\"Switch\":1},{\"enable\":false,\"expired\":false,\"secretApp\":\"NjM1MjU5NTM1MzE4MzgwNTQ1\",\"secretKey\":\"OUdsZVBwSTQ4ZjYzNTI1OTUzNTMxODM4MDU0Ng\"}]", "ip" : "172.22.0.6", //指令执行结果 "result" : "{\"errorCode\":\"2052\",\"errorMsg\":\"设备未连接到MQTT服务器\",\"success\":\"0\"}", "tenantId" : Long("635259535318380544"), "tenantName" : "预付费开发", "secretApp" : "NjM1MjU5NTM1MzE4MzgwNTQ1", "secretKey" : "OUdsZVBwSTQ4ZjYzNTI1OTUzNTMxODM4MDU0Ng", "startTimestamp" : Long("1724980621321"), "endTimestamp" : Long("1724980621331"), "duration" : Long("10"), "type" : "TENANT", "timestamp" : Long("1724980621331"), "serverTime" : ISODate("2024-08-30T09:17:01.331+08:00"), "createTime" : ISODate("2024-08-30T09:17:01.331+08:00"), "delFlag" : "FALSE", "_class" : "com.acrel.entity.sys.log.TenantLog" } ``` #### 报文类型汇总 | **名称** | **messageType** | 报文命令字(code) | **数据传送方向** | | :--------------------------: | :------------------------------: | :--------------: | :--------------: | | 充电桩登录认证 | **ynjtLogin** | 0x01(1) | 上行 | | 登录认证应答 | **ynjtLogin_reply** | 0x02(2) | 下行 | | 常规心跳 | **ynjtHeartbeat** | 0x03(3) | 上行 | | 充电时心跳 | **ynjtRunState** | 0x04(4) | 上行 | | 故障时心跳 | **ynjtTotalFaultEvt** | 0x05(5) | 上行 | | 心跳返回帧 | **ynjtHeartbeat_reply** | 0x06(6) | 下行 | | 充电桩软件版本升级命令 | **ynjtOta** | 0x07(7) | 下行 | | 充电桩软件版本升级命令回复帧 | **ynjtOtaResultEvt** | 0x08(8) | 上行 | | 充电桩软件版本升级请求 | **ynjtOtaEvt** | 0x71(113) | 上行 | | 充电桩软件版本升级请求回复 | **ynjtOtaEvt_reply** | 0x81(129) | 下行 | | 广告信息更新命令 | **ynjtAdUpdate** | 0x09(9) | 下行 | | 广告信息更新命令回复 | **ynjtAdUpdate_reply** | 0x10(16) | 上行 | | 远程开启充电命令 | **ynjtStartCharging** | 0x11(17) | 下行 | | 多枪启动充电 | **ynjtMultiGunStartCharging** | 0x47(71) | 下行 | | 插枪上报VIN校验 | **ynjtStartChargeAuthEvt** | 0x51(81) | 上行 | | 插枪上报VIN校验结果 | **ynjtStartChargeAuthEvt_reply** | 0x52(82) | 下行 | | 远程开启充电命令回复 | **ynjtStartChaResEvt** | 0x12(18) | 上行 | | 远程关闭充电命令 | **ynjtStopCharging** | 0x13(19) | 下行 | | 远程关闭充电命令回复 | **ynjtStopCharging_reply** | 0x14(20) | 上行 | | 二维码下发命令 | **ynjtQRCode** | 0x15(21) | 下行 | | 二维码命令下发回复 | **ynjtQRCode_reply** | 0x16(22) | 上行 | | 充电桩状态查询命令 | **ynjtRefreshState** | 0x17(23) | 下行 | | 充电桩状态查询命令回复 | **ynjtRefreshState_reply** | 0x18(24) | 上行 | | 充电桩通讯模式下发命令 | **ynjtSetCommParam** | 0x19(25) | 下行 | | 充电桩通讯模式更改回复 | **ynjtSetCommParam_reply** | 0x20(32) | 上行 | | 查询计费规则命令 | **ynjtGetFeeModel** | 0x21(33) | 下行 | | 查询计费规则命令回复 | **ynjtGetFeeModel_reply** | 0x22(34) | 上行 | | 更新计费规则命令 | **ynjtFeeModelUpdate** | 0x23(35) | 下行 | | 更新计费规则命令回复 | **ynjtFeeModelUpdate_reply** | 0x24(36) | 上行 | | 完整订单信息上报请求 | **ynjtOrderUpdateEvt** | 0x25(37) | 上行 | | 完整订单信息上报回复 | **ynjtOrderUpdateEvt_reply** | 0x26(38) | 下行 | | BMS信息主动上报 | **ynjtBmsRunIty** | 0x27(39) | 上行 | | BMS信息主动上报回复 | **ynjtBmsRunIty_reply** | 0x28(40) | 下行 | | BMS信息查询命令 | **ynjtGetBmsInfo** | 0x29(41) | 下行 | | BMS信息查询命令回复 | **ynjtGetBmsInfo_reply** | 0x30(48) | 上行 | | 充电桩重新启动命令 | **ynjtRestart** | 0x31(49) | 下行 | | 充电桩重新启动命令下发回复 | **ynjtRestart_reply** | 0x32(50) | 上行 | | 充电桩订单信息查询命令 | **ynjtGetOrderInfo** | 0x37(55) | 下行 | | 充电桩订单信息查询命令回复 | **ynjtGetOrderInfo_reply** | 0x38(56) | 上行 | | 充电桩对时下发 | **ynjtTime** | 0x35(53) | 下行 | | 远程充电金额更新 | **ynjtUpdateBalance** | 0x39(57) | 下行 | | 远程充电金额更新应答 | **ynjtUpdateBalance_reply** | 0x40(64) | 上行 | | 充电桩工作参数设置 | **ynjtSetPileParam** | 0x42(66) | 下行 | | 充电桩工作参数设置应答 | **ynjtSetPileParam_reply** | 0x43(67) | 上行 | | 充电辅源设置 | **ynjtAuxPowerSet** | 0x45(69) | 下行 | | 充电辅源设置回复 | **ynjtAuxPowerSet_reply** | 0x46(70) | 上行 | #### 转发电能平台的topic | 名称 | 标识 | Topic | | :-------------------: | :---------------------------------: | :----------------------: | | 请求计费模型事件 | thing.event.ynjtAskFeeModelEvt.post | ynjt/pile/askFeeModelEvt | | 属性(状态)上报 | thing.ynjt.property | ynjt/pile/up | | 故障告警事件 | thing.event.ynjtTotalFaultEvt.post | ynjt/alarm/up | | 充电桩请求OTA升级事件 | thing.event.ynjtOtaEvt.post | ynjt/pile/up | | 充电桩OTA升级结果事件 | thing.event.ynjtOtaResultEvt.post | ynjt/pile/otaResultEvt | | 启动充电结果事件 | thing.event.ynjtStartChaResEvt.post | ynjt/start_charging/up | #### 桩上行测试报文 ```js 1. 登录签到请求 68 10 01 07 02 18 20 01 00 0b 00 2. 常规心跳 68 10 01 07 02 18 20 03 00 0b 00 3. 充电时心跳 68 10 01 07 02 18 20 04 00 23 00 2d cb 11 00 cb 11 cb 11 70 17 00 20 00 00 00 00 00 00 00 06 02 12 14 68 4. 充电桩软件版本升级请求 68 10 01 07 02 18 20 71 00 0b 00 5. 充电桩软件版本升级命令回复 68 10 01 07 02 18 20 08 07 0b 00 6. 充电桩广告信息更新命令 68 10 01 07 02 18 20 10 09 0b 00 7. 远程开启充电命令回复 68 10 01 07 02 18 20 12 11 16 00 00 00 00 00 00 00 06 02 12 14 02 8. 远程关闭充电命令回复 68 10 01 07 02 18 20 14 17 16 00 00 00 00 00 00 00 06 02 12 14 02 9. 二维码下发命令回复 68 10 01 07 02 18 20 16 19 2a 00 6a 73 2f 31 38 30 38 3a 32 33 32 2e 33 34 32 2e 37 30 32 2e 33 32 31 2f 2f 3a 70 74 74 68 02 10. 充电桩状态查询命令回复 空闲 68 10 01 07 02 18 20 18 20 0b 00 充电中 68 10 01 07 02 18 20 18 21 0b 00 11. 充电桩通讯模式下发命令回复 68 10 01 07 02 18 20 20 23 0b 00 12. 查询充电桩计费规则命令回复 68 10 01 07 02 18 20 22 00 xx xx 00 01 {待定} 13. 更新计费规则命令回复 68 10 01 07 02 18 20 24 00 0e 00 00 01 01 14. 完整订单信息上报 68 10 01 07 02 18 20 25 00 95 00 00 00 00 00 00 00 06 02 12 14 70 17 00 4e 38 22 0c 16 16 16 16 00 01 70 17 00 00 00 00 00 00 00 00 00 00 70 17 00 70 17 00 00 00 00 00 00 00 00 00 00 70 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 00 2d 00 00 00 00 06 02 12 14 00 00 0c 06 02 12 14 01 01 E2 15. BMS信息主动上报 68 10 01 07 02 18 20 27 00 27 00 02 03 50 c3 00 37 36 35 34 33 32 31 42 58 38 37 36 35 34 33 47 4c cb 11 00 cb 11 B8 16. BMS信息查询命令回复 68 10 01 07 02 18 20 30 00 27 00 02 03 50 c3 00 37 36 35 34 33 32 31 42 58 38 37 36 35 34 33 47 4c cb 11 00 cb 11 b8 17. 充电桩重新启动命令回复 68 10 01 07 02 18 20 32 31 0b 00 18. 远程充电金额更新应答 68 10 01 07 02 18 20 40 00 17 00 00 00 00 00 00 00 06 02 12 14 00 02 19. 充电桩工作参数设置应答 68 10 01 07 02 18 20 43 00 0d 00 00 00 20. 充电辅源设置回复 68 10 01 07 02 18 20 46 11 0d 00 00 00 21. 插枪上报VIN校验结果 68 10 01 07 02 18 20 51 00 1d 00 37 36 35 34 33 32 31 42 58 38 37 36 35 34 33 47 4c 2a ```
王旭东
2026年1月21日 13:20
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码