GithubHelp home page GithubHelp logo

openchargingcloud / chargydesktopapp Goto Github PK

View Code? Open in Web Editor NEW
11.0 8.0 2.0 13.24 MB

The Chargy E-Mobility Transparency Application for Windows, Mac OS X and Linux (based on Electron)

License: GNU Affero General Public License v3.0

Shell 0.23% HTML 3.29% JavaScript 1.49% TypeScript 83.19% SCSS 10.27% CSS 1.53%
transparency eichrecht electron chargy smartmetering evroamingdeluxe premiumeichrecht evroaming e-mobility

chargydesktopapp's Introduction

ChargyTS Desktop App

Chargy is a transparency software for the validation of secure and transparent e-mobility charging processes, as defined by the German Calibration Law ("Eichrecht") in combination with the Alternative Fuels Infrastructure Regulation (AFIR) of the European Commission and the European Digital Quality Infrastructure. The software allows you to verify the cryptographic signatures of energy measurements within charge detail records and comes with a couple of useful extentions to simplify the entire process for endusers and operators.

Benefits of Chargy

  1. Chargy comes with meta data. True charging transparency is more than just signed smart meter values. Chargy allows you to group multiple signed smart meter values to entire charging sessions and to add additional meta data like EVSE information, geo coordinates, tariffs, ... within your backend in order to improve the user experience for the ev drivers.
  2. Chargy is secure. Chargy implements a public key infrastructure for managing certificates of smart meters, EVSEs, charging stations, charging station operators and e-mobility providers. By this the ev driver will always retrieve the correct public key to verify a charging process automatically and without complicated manual lookups in external databases.
  3. Chargy is platform agnostic. The entire software is available for desktop and smart phone operating systems and .NET. If you want ports to other platforms or programming languages, we will support your efforts.
  4. Chargy is Open Source. In contrast to other vendors in e-mobility, we belief that true transparency is only trustworthy if the entire process and the required software is open and reusable under a fair copyleft license (AGPL).
  5. Chargy is open for your contributions. We currently support adapters for the protocols of different charging station vendors like chargeIT mobility, ABL (OCMF), chargepoint. The certification at the Physikalisch-Technische Bundesanstalt (PTB) is provided by chargeIT mobility. If you want to add your protocol or a protocol adapter feel free to read the contributor license agreement and to send us a pull request.
  6. Chargy is white label. If you are a supporter of the Chargy project you can even use the entire software project under the free Apache 2.0 license. This allows you to create proprietary forks implementing your own corporate design or to include Chargy as a library within your existing application (This limitation was introduced to avoid discussions with too many black sheeps in the e-mobility market. We are sorry...).
  7. Chargy is accessible. For public sector bodies Chargy fully supports the EU directive 2016/2102 on the accessibility of websites and mobile applications and provides a context-sensitive feedback-mechanism and methods for dispute resolution.

Editions, Versions and Milestones

Version 1.2.x of the Chargy Transparency Software was reviewed and certified by Verband der Elektrotechnik Elektronik Informationstechnik e.V. (VDE). If you are a charge point vendor and want to use this software to verify the compliance with the German Eichrecht you can talk to our partner ChargePoint and obtain the required legal documents.

Version 1.0.x of the Chargy Transparency Software was reviewed and certified by Physikalisch-Technische Bundesanstalt (PTB). If you are a charge point vendor and want to use this software to verify the compliance with the German Eichrecht you can talk to our partner chargeIT mobility and obtain the required legal documents.

If you need help with the Chargy Transparency Software or want to include your smarty energy meter or transparency data format, talk to us.

This software is also available as WebApp.

Future

The development of version v1.5 already started and will focus on enhanced security concepts, more digital certificates and pricing information.

Credits

Awards

The Chargy Transparency Software is one of the winners of the 1. Thuringia's Open-Source Prize in March 2019. This prize was awarded by Wolfgang Tiefensee, Thuringia’s Secretary of Commerce, in conjunction with the board of directors of the IT industry network ITNet Thuringia.

chargydesktopapp's People

Contributors

ahzf avatar dependabot[bot] avatar sirhcel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chargydesktopapp's Issues

Add support of an accessibility feedback mechanism for people with a disability

The EU directive 2016/2102 of the European Parliament and of the Council of 26 October 2016 on the accessibility of the websites and mobile applications of public sector bodies ( https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX%3A32016L2102 ) defines an "accessibility" feedback mechanism for people with a disability. This is directive is transformed into local law e.g. in Thueringia in http://parldok.thueringen.de/ParlDok/vorgaenge/69750/1

There is already an optional feedback mechanism within the app, but this is focused on technical issues. This mechanism should be extended.

VDE-Feedback and change requests on Chargy v1.1 (chargepoint)

  1. Ids in the chargepoint format differ between different firmware versions. Therefore compare them case-insensitive. Let charge point define the default format for presenting those Ids within Chargy to the end user (e.g. 'all upper', 'all lower', ...).

Improved security via digital certificates and a PKI

  • Add Open Charging Cloud root certificate
  • Make sure, that the versions.json is digitally signed by one or more organizations
  • Verify the certificates/signatures of the entire versions.json
  • Verify the certificates/signatures of a version
  • Verify the certificates/signatures of a version package
  • Verify the certificates/signatures of a energy meter public key
  • Verify the certificates/signatures of another certificates/signature (build a chain/web of trust)
  • Sign entire CTRs

total_energy = 0.0 => Invalid transparency format!

I found a bug to report

Within the charge point data format the value "total_energy = 0.0" will be misinterpreted as a missing value (praise JavaScript magics!).

Expected behavior

Use another method to validate if all mandatory parameters exist and are well defined.

App Skins / White Label Features

Ein Charging Station Operator bzw. ein E-Mobility Provider könnte sich wünschen gewisse Farben und Texte der App nach seinem Corporate Design Vorgaben anzupassen:

  1. Via dem Transparenzdatensatz, d.h. Anpassung erst nach Laden des Datensatzes
  2. Via einer Zusatzdatei bei der Installation der Software (JSON, CSS), d.h. Anpassung nach Start der App

general flow

I have a question or need help

hello, come across this implementation and would like to ask you if you can explain more about general works as documentation is actually low.

In particular I cannot understand how data has to be certified and in which format ( all chargepoint uses different format? ) and what exactly the charging station need to create at the end of session to create the certified data.

For my understanding the software simply read a signed file sent from the station ( but I could be wrong) . So if have time can u better explain me this flow ?

Thanks !

Allow to save the list of charging sessions as shown within the app

I would like to request/propose a feature

As a user I want to select multiple charge transparency records/files, to get a consolidated view of all my charging sessions and to save this list of charging sessions as shown within the app on my computer.

This means add a button or similar to the app which will store the given charging sessions using the Chargy data format.

Allow separate public key files as input

I would like to request/propose a feature

The public key of Chargepoint charging stations is not part of the charge transparency record, but an external file. Allow this file as additional input and merge it into the other charge transparency records.

Add support for ALFEN transparency format

Some customers want to use Chargy for ALFEN charging stations

  • Support ALFEN transport via chargeIT JSON container
  • Support ALFEN transport via SAFE XML container
  • Parse and display ALFEN transparency data
  • Verify ALFEN signatures
  • The format uses BigInt internally which is converterd to Number. Could this become an issue somewhen in the future?

Add support for Mennekes transparency format

Some customers want to use Chargy for Mennekes charging stations

  • Documentation of the Mennekes "metra"-XML received
  • Support Mennekes transport via metra XML
  • Support Mennekes transport via chargeIT JSON container
  • Parse and display Mennekes transparency data
  • Verify Mennekes signatures

Show Software Identification

The PTB wants that the software version and its hash value, as printed on the "Baumusterprüfbescheinigung" is shown in the software.

Extend measurement verification interface...

Extend measurement verification interface to allow results like: (In)ValidStartValue, (In)ValidIntermediateValue, (In)ValidStopValue and StartValue, IntermediateValue, StopValue (without any verification at all) as this is assumed to be more userfriendly

A broken file within a list of files is ignored

When multiple transparency files are load but some of them are broken (invalid transparency format) then those files are ignored and not shown. VDE would like to get an error message instead.

Expected behavior

Add an item "$filename: Invalid transparency format" to the list of loaded charging sessions.

Add a "update available"-notification mechanism

  • Add a "update available"-notification mechanism to notify the user that a new version of the software is available.

  • Show a little red icon when the current version of the software is out of date

  • Do not install anything automagically, as PTB is not a fan of this (at the moment)

  • Use GitHub for serving the version file, as we do not have access to any logfiles (privacy)

Allow compressed archives as input files and merge their content

I would like to request/propose a feature

Chargepoint charge transparency records are TAR archives compressed via BZIP2. Allow at least BZIP2, GZIP, ZIP files as input. Extract and merge the content of those compressed archives.

A user should also be able to put several charge transparency records/files (and public key files) into a single TAR/ZIP archive and open this file directly.

Chargy should also support archive files within other archive files, as e.g. Chargepoint charge transparency files are tar.bz2-archives and users might want to combine multiple into a single ZIP-archive.

Implement legacy TRuDI-style software-crypto-selfcheck

The PTB want a TRuDI-style self check of "all" files. This means to enumerate all files, calculate the SHA256 hash over all those files, calculate a common hash value and compare it with the stored value. If both are the same the software was not modified.

Strictly speaking this is an obsolete security feature. To make if at least a bit useful we additionally will sign the common hash value with the GraphDefined/OCC private key and verify this signatures via its public key.

Add support for chargepoint charge transparency records

Chargepoint sent a first specification of their approach to the German Eichrecht, which uses charging stations crypto keys instead of smart meter crypto keys. This requires some changes within the internal data processing.

  • Support the chargepoint charge transparency record format
  • Support of secp224k1 signatures
  • Support of secp256r1 signatures

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.