You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python ocpp包开发对接Bender CC612充电控制器问题咨询

Python ocpp对接Bender CC612后续开发指引

前期验证确认

  • 首先确认你的Python ocpp库版本和Bender CC612支持的OCPP版本匹配:CC612默认适配OCPP 1.6J,部分高固件版本支持OCPP 2.0.1,优先核对设备Web配置页中的OCPP版本参数,避免后续消息结构不兼容
  • 你当前完成的无报错连接属于WebSocket传输层握手,还未进入OCPP协议层的业务交互,按以下流程逐步推进即可

第一步:完成OCPP层初始化交互

连接建立后第一个必须处理的是充电桩主动上报的BootNotification报文,这是OCPP协议规定的强制流程,没有完成该交互后续所有指令都会被设备拒绝。
后端核心逻辑示例:

from ocpp.v16 import call_result
from datetime import datetime, UTC

# 绑定BootNotification请求的处理函数
@on(Action.BootNotification)
def handle_boot_notification(charge_point_model, charge_point_vendor, **kwargs):
    # 可根据上报的设备序列号、厂商信息做自有业务的设备鉴权
    return call_result.BootNotification(
        current_time=datetime.now(UTC).isoformat(),
        interval=300, # 设定设备后续心跳上报间隔,单位秒,建议300-600即可
        status="Accepted"
    )

注意:Bender CC612会在WebSocket连接建立后10秒内发送BootNotification请求,如果10秒内未收到合法响应会主动断开连接,不要在该处理逻辑中加耗时操作

第二步:基础功能按优先级开发

完成初始化后按以下顺序开发功能,每完成一项可通过CC612的本地调试面板触发操作验证效果:

  1. 心跳报文处理:实现Heartbeat请求的响应逻辑,只需返回服务端当前UTC时间即可,用于保持长连接存活
  2. 设备状态监听:处理StatusNotification请求,记录充电桩各个端口的实时状态(空闲、充电中、故障、占用等),CC612的状态编码完全符合OCPP 1.6标准,直接按协议枚举值解析即可
  3. 计量数据处理:监听MeterValues报文,解析电压、电流、功率、累计充电量等数据,按业务需求落库存储,默认上报间隔为30秒,可通过ChangeConfiguration指令修改间隔
  4. 远程控制开发:
    • 先实现远程启桩:后端主动发起RemoteStartTransaction请求,指定充电端口、用户标识等参数,验证设备是否正常启动充电
    • 再实现远程停桩:后端主动发起RemoteStopTransaction请求,指定对应交易ID,验证设备是否正常结束充电

第三步:Bender CC612专属适配注意事项

  • 若要使用后端侧的鉴权、计费逻辑,需要提前在CC612的Web配置面板关闭本地白名单、本地计费功能,否则后端下发的远程控制指令会被设备直接拒绝
  • 设备故障时上报的ErrorCode字段有部分厂商自定义值,开发前可以先导出设备的官方文档查阅对应编码含义
  • 调试时如果出现指令执行失败的情况,优先抓取WebSocket层的报文交互日志,同时查看CC612本地系统日志,日志中会标注指令被拒绝的具体原因

内容的提问来源于stack exchange,提问作者c0nr3f

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 00:30:00