EVCC EEBus集成:智能能源总线标准应用
【免费下载链接】evcc Sonne tanken ☀️🚘 项目地址: https://gitcode.com/GitHub_Trending/ev/evcc
概述
EEBus(Energy Efficiency Bus)是欧洲智能家居和电动汽车充电领域的开放通信标准,旨在实现不同制造商设备间的互操作性。EVCC作为开源电动汽车充电控制器,通过EEBus集成实现了与兼容设备的智能通信,为家庭能源管理系统提供了标准化解决方案。
EEBus核心概念
技术架构
EEBus基于SPINE(Smart Premises Interoperable Neutral-message Exchange)协议栈,采用客户端-服务器架构:
关键组件
| 组件类型 | 功能描述 | 对应实体类型 |
|---|---|---|
| CEM (Charging Energy Management) | 充电能量管理 | EntityTypeTypeCEM |
| EVSE (Electric Vehicle Supply Equipment) | 电动汽车供电设备 | EntityTypeTypeEVSE |
| CS (Controllable System) | 可控系统 | EntityTypeTypeCS |
EVCC中的EEBus实现
核心功能模块
EVCC通过多个用例控制器实现EEBus功能:
// EVSE用例控制器
type UseCasesEVSE struct {
EvseCC ucapi.CemEVSECCInterface // EVSE通信控制
EvCC ucapi.CemEVCCInterface // EV通信控制
EvCem ucapi.CemEVCEMInterface // EV计量
EvSoc ucapi.CemEVSOCInterface // EV电量状态
OpEV ucapi.CemOPEVInterface // 过载保护
OscEV ucapi.CemOSCEVInterface // 自耗优化
}
// 可控系统用例控制器
type UseCasesCS struct {
LPC ucapi.CsLPCInterface // 负载控制
LPP ucapi.CsLPPInterface // 负载预测
MGCP ucapi.MaMGCPInterface // 计量网关
}
设备注册与发现
EVCC使用SKI(Ship Key Identifier)机制进行设备识别和注册:
func (c *EEBus) RegisterDevice(ski, ip string, device Device) error {
ski = shiputil.NormalizeSKI(ski)
if ski == c.SKI {
return errors.New("device ski can not be identical to host ski")
}
if len(ip) > 0 {
c.service.RemoteServiceForSKI(ski).SetIPv4(ip)
}
c.service.RegisterRemoteSKI(ski)
c.clients[ski] = append(c.clients[ski], device)
return nil
}
充电器集成实现
状态管理
EVCC通过EEBus实时监控充电状态:
func (c *EEBus) Status() (res api.ChargeStatus, err error) {
evEntity, ok := c.isEvConnected()
if !ok {
return api.StatusA, nil // 未连接状态
}
currentState, err := c.uc.EvCC.ChargeState(evEntity)
switch currentState {
case ucapi.EVChargeStateTypeUnplugged:
return api.StatusA, nil
case ucapi.EVChargeStateTypeFinished, ucapi.EVChargeStateTypePaused:
return api.StatusB, nil // 完成或暂停
case ucapi.EVChargeStateTypeActive:
if c.isCharging(evEntity) {
return api.StatusC, nil // 充电中
}
return api.StatusB, nil
default:
return api.StatusNone, fmt.Errorf("invalid status: %s", currentState)
}
}
电流控制
支持精确的毫安级电流控制:
func (c *EEBus) MaxCurrentMillis(current float64) error {
evEntity, ok := c.isEvConnected()
if !ok {
c.current = current
return nil
}
err := c.writeCurrentLimitData(evEntity, current)
if err == nil {
c.current = current
}
return err
}
计量设备集成
实时数据采集
EEBus计量设备提供多种测量数据:
type EEBus struct {
power, energy *util.Value[float64]
voltages, currents *util.Value[[]float64]
}
func (c *EEBus) UseCaseEvent(entity spineapi.EntityRemoteInterface, event eebusapi.EventType) {
switch event {
case mgcp.DataUpdatePower:
c.dataUpdatePower(entity) // 功率更新
case mgcp.DataUpdateEnergyConsumed:
c.dataUpdateEnergyConsumed(entity) // 能耗更新
case mgcp.DataUpdateCurrentPerPhase:
c.dataUpdateCurrentPerPhase(entity) // 相电流更新
case mgcp.DataUpdateVoltagePerPhase:
c.dataUpdateVoltagePerPhase(entity) // 相电压更新
}
}
数据缓存机制
采用超时缓存确保数据可靠性:
func NewEEBus(ctx context.Context, ski, ip string, timeout time.Duration) (*EEBus, error) {
c := &EEBus{
power: util.NewValue[float64](timeout), // 功率缓存
energy: util.NewValue[float64](timeout), // 能量缓存
voltages: util.NewValue[[]float64](timeout), // 电压缓存
currents: util.NewValue[[]float64](timeout), // 电流缓存
}
// ... 设备注册逻辑
}
高级功能特性
VW VAS特殊支持
支持大众VAS(Vehicle Authorization System)特殊模式:
func (c *EEBus) hasActiveVASVW(evEntity spineapi.EntityRemoteInterface) bool {
// 检查VW VAS支持、通信标准和SOC条件
if !c.vasVW ||
comStandard != model.DeviceConfigurationKeyValueStringTypeISO151182ED2 ||
soc < 25 {
return false
}
// 验证自耗优化用例可用性
return c.uc.EvSoc.IsScenarioAvailableAtEntity(evEntity, 1)
}
智能限流保护
实现过载保护和优化控制:
配置示例
充电器配置
chargers:
- type: eebus
ski: "0123456789ABCDEF0123456789ABCDEF01234567"
ip: 192.168.1.100
meter: true
chargedEnergy: true
vasVW: false
计量器配置
meters:
- type: eebus
ski: "FEDCBA9876543210FEDCBA9876543210FEDCBA98"
ip: 192.168.1.101
timeout: 10s
故障排除与最佳实践
常见问题处理
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 设备无法连接 | SKI不匹配或网络问题 | 检查SKI格式和网络连通性 |
| 数据更新延迟 | 网络延迟或设备响应慢 | 调整超时时间配置 |
| 充电控制失效 | 通信标准不兼容 | 验证设备支持的协议版本 |
性能优化建议
- 网络配置:确保EEBus设备与EVCC主机在同一局域网段
- 超时设置:根据网络状况调整合适的超时时间
- 日志监控:启用DEBUG级别日志跟踪通信过程
- 证书管理:定期更新EEBus安全证书
技术优势与应用场景
核心优势
- 标准化通信:遵循EEBus开放标准,确保设备互操作性
- 实时控制:支持毫秒级响应时间的精确控制
- 安全可靠:基于证书的身份验证和加密通信
- 扩展性强:支持多种设备类型和用例场景
典型应用场景
- 智能家居集成:与家庭能源管理系统协同工作
- 光伏优化充电:根据太阳能发电情况动态调整充电功率
- 峰谷电价利用:在电价低谷时段自动充电
- 多设备协同:同时管理多个充电桩和储能设备
总结
EVCC的EEBus集成提供了标准化、安全可靠的智能充电解决方案。通过完善的用例支持和精细化的控制能力,使得家庭能源管理变得更加智能和高效。随着EEBus标准的不断普及,这种集成方式将成为智能充电基础设施的重要组成部分。
对于开发者和系统集成商而言,理解EEBus的工作原理和EVCC的实现细节,能够更好地设计部署智能充电解决方案,为用户提供更优质的充电体验。
【免费下载链接】evcc Sonne tanken ☀️🚘 项目地址: https://gitcode.com/GitHub_Trending/ev/evcc
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



