This application aggregates chargepoint data from different sources and provices it without authentication using an OCPI-style JSON-API and a vector tile server.
| name | uid | realtime | credentials | comment |
|---|---|---|---|---|
| Bundesnetzagentur: API | bnetza_api | false | false | Additional config ignore_operators:: list[str] is supported, which will ignore given operators during import. Set to weekly download, as it does not change so often. |
| Bundesnetzagentur: Excel | bnetza_excel | false | false | |
| chargecloud: Stadtwerke Pforzheim | chargecloud_pforzheim | true | false | |
| chargecloud: Stadtwerke Stuttgart | chargecloud_stuttgart | true | false | |
| chargecloud: Stadtwerke Tübingen | chargecloud_tuebingen | true | false | |
| PBW | eaaze_pbw | true | true | |
| Giro-e | giroe | true | true | |
| Heilbronn Heckarbogen | heilbronn_neckarbogen | true | true | |
| Lichtblick | lichtblick | true | true | Currently dysfunctional |
| OCHP: Albwerk | ochp_albwerk | true | true | |
| OCHP: Ladenetz | ochp_ladenetz | true | true | |
| OCPI: Stadtnavi | ocpi_stadtnavi | true | false | |
| OpenData Swiss | opendata_swiss | true | false |
There is a matching algorithm which matches live data sources with bnetza sources. You can find details at our matching docs.
At api.ocpdb.de you will find an OpenAPI documentation of public endpoints you can use.
The application provides a simple command line interface:
flask import allflask import static example_sourceflask import realtime example_sourceflask import images example_sourceflask source listflask source delete example_sourceflask match runThe installation process is documented at INSTALL.md.
The application uses the logging module with some optional extensions. Logging can be configured using the config.yml.
The application provides some additional context and / or special output formats to log entries with custom formatters:
Most requests or tasks have context which can be used in log entries. The simplest is
LOGGING:
formatters:
human_readable:
(): webapp.common.logging.formatter.flask_attributes_formatter.FlaskAttributesFormatter
format: '%(asctime)s %(levelname)s %(source)s: %(message)s'
defaults: {'source': '-'}
handlers:
my_handler:
formatter: human_readableWith this example, you add the source to every log entry (if available). Please keep in mind that you need to
add a default, because not every log entry has a source_uid context.
Following additional log context variables are available:
sourceinitiatorlocationevseimage
You can output log entries in OpenTelemetry format, too:
LOGGING:
formatters:
open_telemetry:
(): webapp.common.logging.formatter.flask_open_telemetry_formatter.FlaskOpenTelemetryFormatter
prefix: ocpdb
service_name: OCPDB
handlers:
my_handler:
formatter: open_telemetryContext is automatically injected into log entry Attributes.
OCPDB is under AGPL. You will find details at the LICENCE.txt.
We appreciate bug reports and feature requests.