GNU General Public License v3.0

项目介绍

dallmann-consulting/OCPP.Core 是一个托管在 GitHub 上的开源项目,主要使用 C# 编写,采用 GNU General Public License v3.0 许可证,目前获得 309 个 Star、126 次 Fork。

仓库全名
dallmann-consulting/OCPP.Core
开源许可证
GNU General Public License v3.0
Star 数
309
Fork 数
126
未关闭 Issue
10

README 摘要

OCPP.Core OCPP.Core is an OCPP (Open ChargePoint Protocol) server written in .NET 10. It includes a management Web-UI for administration of charge points and charge tokens (RFID-Token) Status It currently supports OCPP1.6J, 2.0 and 2.1. OCPP.Core is currently used with 6 KEBA P30c/x charge points operating in a load management and OCPP1.6J. Here's a report of the first real live experiences from 2021. The…

完整内容见 GitHub 原始 README 或本页 。

常见问题

OCPP.Core 用什么语言开发?

主要使用 C# 编写,采用 GNU General Public License v3.0 许可证,目前有 309 个 Star。

OCPP.Core 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 OCPP.Core 的源码?

可以直接克隆仓库:git clone https://github.com/dallmann-consulting/OCPP.Core.git,默认分支为 main;安装与运行步骤见仓库 README。

OCPP.Core 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 10 个未关闭 Issue;Star 数为 309,可作为社区活跃度的参考。

关于

OCPP server and management UI written in .NET-Core

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
590
价值分
225
活跃状态
活跃

语言占比

C#
CSS
Dockerfile
HTML
JavaScript
Shell
TSQL

Release

README

OCPP.Core

OCPP.Core is an OCPP (Open ChargePoint Protocol) server written in .NET 10. It includes a management Web-UI for administration of charge points and charge tokens (RFID-Token)

Status

It currently supports OCPP1.6J, 2.0 and 2.1.

OCPP.Core is currently used with 6 KEBA P30c/x charge points operating in a load management and OCPP1.6J. Here’s a report of the first real live experiences from 2021.


The OCPP-Server currently handles the following messages:

OCPP V1.6:

  • BootNotification
  • Heartbeat
  • Authorize
  • StartTransaction
  • StopTransaction
  • RemoteStartTransaction
  • RemoteStopTransaction
  • MeterValues
  • StatusNotification
  • DataTransfer
  • Reset
  • UnlockConnector
  • SetChargingProfile
  • ClearChargingProfile

OCPP V2.0 and V2.1:

  • BootNotification
  • Heartbeat
  • Authorize
  • TransactionEvent
  • RequestStartTransaction
  • RequestStopTransaction
  • MeterValues
  • StatusNotification
  • DataTransfer
  • LogStatusNotification
  • FirmwareStatusNotification
  • ClearedChargingLimit
  • NotifyChargingLimit
  • NotifyEVChargingSchedule
  • Reset
  • UnlockConnector
  • SetChargingProfile
  • ClearChargingProfile

Management Web-UI

The Web-UI is localized in English and German. It has an overview page with all charge stations and their availabilty.

Overview

Every charge point (or connector!) is displayed as a tile with status information. If a car is charging the tile is red and shows the duration. If the charge station sends data about the current power and state of charge (SoC) itis displayed in the footer of the tile. Our KEBA devices e.g. are only sending the main meter value :-(

Charging details

If you click on a charge point/connector tile you get a list of the latest transactions and can download them as CSV.

Overview

The Web-UI has two different roles. A normal user can see the charge points and transactions (screenshots above). An Administrator can also create and edit the charge stations, charge tags and connectors.

Multi connector behavior

At first, I didn’t pay much attention to multiple connectors. Charge points with multiple connectors are not very common. But then we got the charge points in our home installed and it turned out that our devices (with load management) operate as a single charge point with a connector for each charge point (see here).

I added multi connector support with V1.1. When the server receives an OCPP message with a connector number (status & transaction messages) the OCPP server dynamically builds a list of connectors in the database (table “ConnectorStatus”). Admin users can see this list and can optionally configure custom names.

This results in different scenarios for displaying charge points:

  • A charge point without known connectors => display charge point with its name
  • A charge point with one known connector without a specific name => display one charge point with the charge point name
  • A charge point with 2+ connectors without specific names => display each connector with a default name “charge point name:connector no.”

If a connector has a name specified this name overrides the charge point name or default scheme (see above). This allows you to define custom names for every connector (like left / right).

System Requirements

OCPP.Core is written in .NET 8 and therefore runs on different plattforms. I also installed it in Azure for testing purposes. The storage is based on the EntityFramework-Core and supports different databases. The project contains script for SQL-Server (SQL-Express) and SQLite.

Build, Configuration and Installation

The steps to build, configure and install OCPP.Core are described here in Detail.

Testing it…

Web-UI

Open the configured URL in a browser. The debug URL in the project is “http://localhost:8082/”. You should see the login screen. Enter the configured admin account.

Login

Open the “Administration” menu and create a chargepoint with ID “station42” and a charge tag.

Administration menu:

Menu

Create new chargepoint:

NewChargePoint

Optionally, you can add authentication data for this chargepoint: Username/Passwort for basic authentication and/or a certificate thumbprint for a client certificate. When you’re editing a chargepoint you can send restart or unlock commands to the chargepoint here.

Create new charge tag:

NewChargeTag

The Web-UI is localized in English and German language

OCPP-Server

An easy way to test the OCPP-Server are simulators:

Attention: Both simulators have minor and major bugs in certain actions. That’s why I modified them both and included copies in this project. There also is an extended version of the 1.6 simulator with two connectors:

Open one of the simulators in the browser and enter “ws://localhost:8081/OCPP/station42” as the central station URL. “station42” is the ID of the chargepoint you created in the previous step.

Enter the charge tag ID you entered before as “Tag”.

Click “Connect”

Now the simulator hopefully show a success message at the bottom. When you start a transaction and refresh the Web-UI you should see the corresponding status in the charge point tiles.

评论

暂无评论