Traduzido de:

Wellisch, Daniel & Kunze, Stefan & Pschl, Rainer. (2015). A Modular Software Implementation for Smart Charging Stations. 10.1109/SEDST.2015.7315217.

https://www.researchgate.net/publication/282847216_A_Modular_Software_Implementation_for_Smart_Charging_Stations

 

Uma implementao modular de software para estaes SmartCharging

 

Abstract

O carregamento inteligente adiciona uma comunicao mais sofisticada ao processo de carregamento de veculos eltricos, permitindo novos recursos, como agendamento de horrio. Portanto, pode fornecer uma contribuio valiosa para equilibrar a rede eltrica, pois o processo de carregamento pode ser agendado de uma maneira que reduza os picos de carga na rede. Os protocolos necessrios para o carregamento inteligente, como a ISO 15118, esto sendo padronizados. Neste artigo, proposta uma implementao modular de software para estaes de carregamento inteligentes. Como linguagem de programao, o Node.js escolhido, devido sua programao assncrona, bem como sua funcionalidade sem bloqueio. Para fins de avaliao, este software implementado em um demonstrador, composto principalmente de mdulos prontos para uso.

1.INTRODUO

Neste artigo, proposta uma implementao modular de software para uma estao de carregamento com capacidade de carregamento inteligente. Para fornecer um melhor entendimento, os conceitos bsicos de cobrana inteligente e os padres relevantes so brevemente explicados nesta seo. Os mdulos de software desenvolvidos so implementados em uma plataforma de avaliao, desenvolvida especificamente para esse fim. Uma breve descrio dessa configurao fornecida na seo a seguir.

 

Cobrana inteligente

No contexto deste documento, a cobrana inteligente deve ser referida como uma infra-estrutura de cobrana, que permite uma comunicao mais sofisticada entre o Equipamento de suprimento de veculo eltrico (EVSE), o veculo eltrico e um sistema central, que serve como entidade de gerenciamento. Ao implementar a comunicao mais sofisticada, novos recursos como agendamento, mecanismos aprimorados de autenticao ou troca de informaes sobre contratos podem ser ativados [1].

Com o aumento do nmero de veculos eltricos, o carregamento convencional pode levar a picos de carga na rede eltrica, que devem ser compensados por capacidades adicionais para gerao de energia [2]. Utilizando a capacidade de agendamento da cobrana inteligente, possvel fazer uma contribuio para equilibrar a rede eltrica. Para isso, o processo de carregamento agendado de uma maneira, de modo a proporcionar um estresse desnecessrio para a rede [3]. Importante por este meio que isso no tem impacto negativo na experincia do motorista. O motorista pode especificar um horrio no qual ele precisa que seu veculo esteja totalmente carregado. Somente dentro desse prazo, o agendamento realizado. Em uma etapa posterior, os veculos eltricos podem servir como armazenamento temporrio de energia para amortecer picos na gerao de energia. A viabilidade deste conceito j foi demonstrada [4] [5].

O balanceamento da rede eltrica j uma tarefa no trivial. No entanto, se tornar ainda mais complexo quando a parcela de fontes de energia renovveis ​​aumentar ainda mais, pois a gerao de energia dessas fontes no to previsvel quanto o caso das convencionais [6]. No entanto, metas ambiciosas para a parcela de energias renovveis ​​foram ratificadas. Na Unio Europia, esta parte deve atingir 20% at 2020 [7]. Na Alemanha, a meta estabelecida ainda mais em 35% at 2020 e 80% at 2050 [7]. Considerando esses objetivos ambiciosos para energias renovveis, os veculos eltricos podem fornecer uma contribuio valiosa para equilibrar a rede eltrica no futuro.

Padres relevantes

Para permitir uma ampla aceitao de cobrana inteligente, os veculos e as estaes de carregamento de diferentes fabricantes devem ser interoperveis. Para atender a essa demanda, so necessrias solues padronizadas [8]. A norma IEC 61851-1, qual as estaes de carregamento convencionais atendem, especifica apenas uma comunicao rudimentar com o veculo, como a sinalizao da corrente mxima ou do estado de carga [9]. No entanto, para o carregamento inteligente, esquemas de comunicao mais sofisticados e, portanto, novos padres so necessrios. Uma viso geral de uma configurao de carregamento inteligente e dos padres relevantes ilustrada na figura 1.

 

O Open Charge Point Protocol (OCPP) usado para a comunicao entre o EVSE e o sistema central. Atualmente, a maioria das estaes de carregamento disponveis implementa o protocolo na verso 1.5, que no suficiente para o carregamento inteligente, devido ao seu conjunto limitado de mensagens. A prxima verso 2.0, atualmente em fase de padronizao, define um conjunto maior de mensagens, possibilitando o carregamento inteligente. O candidato liberao atualmente disponvel tambm especifica os chamados perfis de carregamento inteligente [1]. Uma outra vantagem do novo protocolo a possibilidade de usar a JavaScript Object Notation (JSON). Isso permite um processamento de dados mais eficiente do que a notao baseada em Simple ObjectAccess Protocol (SOAP) usada na verso 1.5 [10].

 

A norma ISO 15118 especifica a comunicao aprimorada entre o EVSE e o veculo, necessria para o carregamento inteligente. composto por oito partes, das quais apenas as duas primeiras foram finalizadas ainda. Entre outros, esse padro permite recursos, como controle ativo de cobrana, gerenciamento de demanda e resposta [11]. A pilha de comunicao, de acordo com a ISO 15118, ilustrada na figura 2.

 

 

Para a camada fsica, o Power Line Communication (PLC) proposto na ISO / FDIS 15118-3 [13]. Ao usar esse mtodo, os dados so modulados no sinal piloto de controle. A adequao desse esquema de modulao para aplicaes de carregamento inteligente foi demonstrada por Lewandowski et al. [14] Os protocolos, que devem ser utilizados nas camadas quatro a sete do modelo ISO / OSI, so especificados na ISO 15118-2 [12] .

2.HARDWARE

Desde que no exista uma plataforma de hardware adequada, que oferea capacidade de carregamento inteligente, alm de acesso completo personalizao de software, desenvolvida uma plataforma de avaliao. Esse sistema destinado apenas para fins de desenvolvimento e avaliao. A fim de minimizar o esforo de desenvolvimento, o design modular, que permite a utilizao de vrios mdulos disponveis no mercado, escolhido. Um diagrama de blocos dos mdulos de comunicao usados ilustrado na figura 3. O circuito eltrico no considerado no diagrama de blocos.

A seguir, fornecida uma breve descrio dos mdulos usados. O EVSE Controller o mdulo central do sistema de avaliao. um computador incorporado equipado com um processador ARM. Todo o processo de carregamento controlado por este mdulo. Ele conectado a todos os outros mdulos da configurao usando uma variedade de interfaces. Via Ethernet, est conectado para o sistema central. Este canal de comunicao usa o protocolo OCPP 2.0. O software modular proposto por este documento implementado neste mdulo. A Pilot-Box responsvel pela comunicao rudimentar com o veculo. Ele gera o sinal piloto, de acordo com a IEC 61851-1. Tambm controla e monitora o processo de carregamento. Est conectado ao EVSE controller via uma interface Modbus. Isso permite que o mdulo controlador controle o status da Pilot-Box e envie comandos para controlar o carregamento, como habilitar o processo. O mdulo de prateleira usado simplesmente conectado instalao, sem quaisquer modificaes. O mdulo PLC necessrio para implementar o padro ISO 15118 e, portanto, a capacidade de carregamento inteligente. Ele converte as mensagens recebidas do controlador EVSE atravs da interface Ethernet, para que possam ser transmitidas para a comunicao da linha de energia de veculos. Para isso, o mdulo PLC suporta o padro da linha de energia HomePlug Green PHY para a comunicao com o veculo, conforme proposto na ISO 15118-3 [13]. A interface entre o mdulo controlador e o mdulo de linha de energia usa TCP / IP em uma conexo Ethernet. O mdulo usado tambm suporta o protocolo SLAC (Signal Level Attenuation Characterization), que permite selecionar o parceiro de comunicao mais prximo, no caso de vrias estaes de carregamento serem usadas simultaneamente. Como o caso do mdulo de prateleira Pilot-Boxan, usado sem modificaes. O mdulo de entrada / sada (E / S) o nico componente da estao de carregamento, que um desenvolvimento personalizado. conectado ao controlador EVSE por meio de uma interface USB / RS232. O objetivo deste mdulo monitorar e controlar os circuitos de potncia. Por exemplo, a quantidade de energia extrada da rede pode ser monitorada atravs de uma interface S0, que conecta o mdulo de E / S a um contador de energia. Com base nos estados recuperados do mdulo de E / S, uma simples deteco de erro pode ser implementada no software, executando no mdulo module.

3.SOFTWARE

O objetivo do projeto o desenvolvimento de um software modular para estaes de carregamento com capacidade de carregamento inteligente. O software deve ser capaz de rodar em uma ampla variedade de tipos diferentes de estaes de carregamento. Portanto, importante separar o hardware do software para obter independncia de plataforma. A implementao deve ser executada em vrios sistemas operacionais, como Linux, Mac OS ou Windows. Para carregamento inteligente, existem vrios cenrios diferentes de infra-estruturas de software, como:

         O sistema central pode ser implementado na estao de recarga se apenas uma estao de carregamento for implantada

         O sistema central pode ser a instncia de gerenciamento das estaes de carregamento.

         O software pode ser conectado a outras instncias que o sistema central.

         O software da estao de carregamento pode ser executado vrias vezes em uma estao.

Para cobrir todos esses cenrios, a implementao precisa de um alto grau de flexibilidade. Em termos de diferentes mdulos de softwares, flexibilidade significa uma interface personalizvel entre os mdulos. No software proposto, o sistema central executado em um servidor separado e a estao de carregamento executada diretamente na estao. O sistema operacional usado para o demonstrador o Linux. Como o software da estao de carregamento precisa lidar com conexes diferentes e mltiplas simultaneamente, necessrio que as conexes no se bloqueiem. Se um processo bloquear os dados do fluxo do programa, eles podem ser perdidos. Devido s altas tenses, os dados perdidos podem resultar em danos ao usurio ou ao equipamento. Em detalhes, o software precisa lidar com as seguintes conexes diferentes simultaneamente:

         TCP / IP: Conexo infra-estrutura OCPP 2.0

         TCP / IP: Conexo ao mdulo PLC para permitir o carregamento inteligente

         Modbus: Controlando o processo de carregamento

         USB / Serial: obtenha dados de medio.

Para lidar com todas essas conexes, necessrio um alto esforo para o software em geral. Devido a esse fato, importante que o software seja processado em alta velocidade, para que nenhuma resposta do solicitante de uma conexo seja perdida. Com linguagens de programao tradicionais como C / C ++, todas as conexes precisavam ser tratadas por um thread separado. Desenvolver e coordenar todos esses encadeamentos com comunicao entre processos requer muito esforo. Em vez de uma linguagem de programao de implementao C / C ++, com manipulao de conexo adequada, foi preferida. O Node.js parece ser uma boa escolha em termos de manipulao de conexo e velocidade de processamento.

Node.js

Node.js uma plataforma de software que permite executar o JavaScript com o Google V8 Engine no lado do servidor. A linguagem em si oferece todos os recursos do lado JavaScript do cliente. Node.js tem vrias vantagens quando se trata de multitarefa ou manipular diferentes conexes simultaneamente .

 

A prpria plataforma de software Node.js um aplicativo de thread nico. Com essa abordagem, clculos intensos, que precisam de mais tempo para serem processados, bloqueariam o software. por isso que o Node.js tem a capacidade de terceirizar computaes intensas, como operaes de E/S ou manipulao de conexes. O mecanismo de terceirizao depende da infra-estrutura orientada a eventos do Node.js. Internamente, a solicitao para uma operao de E/S tratada pelo sistema operacional. Como mostra a Figura 4, o sistema operacional lida com a tarefa solicitada, enquanto o encadeamento principal livre e pode prosseguir. Esse mecanismo chamado de E/S sem bloqueio. Quando o sistema operacional termina suas tarefas, o thread principal interrompido. O resultado da tarefa terceirizada fornecido por uma funo de retorno de chamada, que um dos principais recursos da programao assncrona e sempre ser chamada quando uma tarefa terceirizada for concluda. A programao assncrona o recurso mais importante para o software da estao de carregamento. Em muitas operaes de E/S, como manipulao de conexo, a programao assncrona automaticamente tratada pelo sistema operacional. Se necessrio, esse recurso tambm pode ser forado usando o mdulo de processo filho [15].

Como mostra a Figura 5, o prprio Node.js usa uma abordagem modular. Como j foi dito, para a independncia da plataforma, necessrio que a linguagem de programao seja executada na maioria dos sistemas operacionais comuns. Na arquitetura Node.js, a interface libuv uma camada de abstrao. Ele se comunica com a libev (Linux / Mac) ou iocp (Windows) e separa a interface Node.js da abstrao de hardware do sistema operacional. Com esse mecanismo, a interface de libuv para Node.js sempre a mesma, independentemente do sistema operacional em que o software estiver instalado. O mdulo libuv tambm responsvel por todas as operaes de E/S assncronas. O acesso do Node.js ao sistema de arquivos do sistema operacional tambm tratado pela interface do libuv [15]. O Node.js muito semelhante ao JavaScript e tambm precisa de um ambiente de tempo de execuo. O prprio mecanismo permite a dependncia da plataforma em termos do sistema operacional. O V8Engine do Google, como o tempo de execuo, acelera o processamento do cdigo JavaScript e fornece alto desempenho para o software implementado. A compilao de tempo de Justin e o cache embutido aceleram adicionalmente o processamento de cdigo. Como mostrado na Figura 5, a camada superior da arquitetura contm a biblioteca padro. Neste mdulo, todos os recursos de vocabulrio e regular de programao esto includos. Representa a funcionalidade nativa do Node.js. Para acessar essas funes, no so necessrias aes adicionais. Se as bibliotecas padro no atenderem aos requisitos de um aplicativo, elas podero ser expandidas com vrios mdulos. Esses mdulos so escritos em JavaScript e podem ser personalizados, se necessrio. O Node.js fornece um sistema de gerenciamento de idade do pacote, chamado gerenciador de pacotes do n (npm), onde mdulos adicionais podem ser pesquisados, instalados, atualizados ou excludos. Basicamente, uma plataforma de intercmbio onde os programadores podem compartilhar projetos de software. Esses mdulos so escritos para fins especiais e geralmente no correspondem exatamente aos requisitos de outro projeto, mas tambm podem ser personalizados. Se nem um mdulo nativo, nem um mdulo npm atende s necessidades de um aplicativo, o Node.js pode ser estendido com uma biblioteca C. O ncleo do Node.js implementado em C / C ++, portanto, possvel acessar o cdigo C via Node.js. Se compilado em uma biblioteca compartilhada, o Node.js pode acess-lo diretamente. Alm dos requisitos para o hardware da estao de carregamento, tambm existem requisitos especficos de software para a estao de carregamento. primeira vista, o Node.js parece ser uma boa escolha, devido ao manuseio confivel da conexo. O Node.js referido como uma linguagem de programao de alto nvel, mas a maioria dos mdulos baseada em uma comunicao de baixo nvel. Originalmente, o Node.js foi desenvolvido para aplicativos como servidores da Web, facilitando assim a linguagem de programao para lidar com conexes TCP.USB e Modbus, no entanto, no so aplicativos tpicos para o Node.js.

Implementao

Como j mencionado, o software deve lidar com vrias conexes diferentes. A Figura 6 mostra um diagrama de blocos do software implementado. Para cada mdulo de hardware implementado, necessrio um mdulo de software individual.

Para comunicar a cobrana de dados relevantes, necessria uma conexo com um sistema central, que atua como uma entidade gerenciadora e comunicar a cobrana de dados relevantes. Os dados so transferidos no formato JSON, proposto no padro OCPP 2.0. Como canal de comunicao, Ethernet ou UMTS podem ser usados, no entanto, o protocolo subjacente o TCP / IP. Alm disso, o Node.js de comunicao possui o mdulo Websocket. O princpio Websocket um protocolo que opera com base no TCP. Faz parte do padro HTML 5 e uma das funcionalidades nativas do Node.js. Os Websockets estendem a comunicao cliente-servidor com um canal de retorno. Este canal permite uma comunicao bidirecional entre os dois participantes [15]. A interface Websocket especificada pelo World Wide Web Consortium (W3C). Para o prprio processo de cobrana, crucial monitorar o processo e obter dados dele. O mdulo de E/S desenvolvido sob encomenda capaz de obter dados para medio e monitoramento. A comunicao ocorre via USB. O mdulo de E/S detectado como um dispositivo USB, em conformidade com a classe de dispositivo de comunicao (CDC), portanto, pode ser acessado por comunicao serial. Como no existe uma biblioteca padro no Node.js que possa lidar com a comunicao serial, necessrio obter um mdulo adicional. Com o mdulo gerenciador de pacotes npm pode ser baixado, capaz de lidar com esse tipo de conexo. Depois que o mdulo instalado, o Node.js capaz de estabelecer uma conexo com um dispositivo USB CDC. A implementao do mdulo tambm permite operaes baseadas em eventos, permitindo a programao assncrona com E/S sem bloqueio. O software pode acessar as funes especiais de E/S do mdulo. A recepo dos dados baseada em eventos. O software pesquisa periodicamente o mdulo de E/S para obter o status do circuito de energia. Atravs da verificao cruzada dos estados do veculo e do mdulo de E/S, possvel detectar erros. Por exemplo, se a estao de carregamento parar de carregar, os interruptores da fonte de alimentao devero estar abertos - se estiverem fechados, ocorreu um erro. Ao final de cada processo de carregamento, o software solicita os dados uma ltima vez ao mdulo de E/S, para obter os dados de medio da energia consumida no veculo. O fluxo de controle do processo de carregamento tratado pela Pilot-Box. Ele se comunica com o EVSE via Modbus. Em geral, o Modbus um sistema de comunicao baseado em TCP, mas o Node.js no pode lidar com isso com suas bibliotecas padro. Os mdulos npm existentes so escritos para outros fins e no atendem s necessidades especficas da comunicao necessria com o Pilot-Box. Para esse fim, utilizada uma biblioteca C separada, que permite a comunicao Modbus. Para a biblioteca C, a biblioteca de cdigo aberto libmodbus usada. uma biblioteca padro que pode ser baixada e includa em qualquer cdigo C. Com a ajuda do libmodbus, desenvolvido um programa em C que permite funcionalidades bsicas para a comunicao Modbus. As funes deste programa so capazes de enviar ou receber dados com um dispositivo que pode lidar com o protocolo Modbus. Fora dessas funes, uma biblioteca compartilhada criada. Uma vez instalada a biblioteca no controlador EVSE, a biblioteca pode ser acessada atravs do mdulo Node.js. A prpria Pilot-Box possui vrios registros diferentes que agora podem ser lidos ou gravados. Para o processo bsico de carregamento, existe um registro que precisa ser definido ou liberado para iniciar ou parar o carregamento. Para a capacidade de carregamento inteligente, a comunicao da estao de carregamento para o veculo crucial. A conexo fsica entre as duas entidades realizada pelo mdulo PLC. O software precisa enviar dados estruturados especiais para o veculo. O conjunto de mensagens, criptografia e fluxo de controle especificado no ISO 15118. Os dados so modulados no piloto de controle usando um padro de linha de energia. Nas camadas superiores, a comunicao baseada em TCP/IP. O software da estao de carregamento envia dados ao mdulo PLC, que envia os dados via PLC para o veculo. Para a ISO 15118 j existem implementaes. Como algumas partes do protocolo ainda esto em desenvolvimento, as implementaes esto em um estgio inicial. Uma abordagem promissora o projeto de cdigo aberto OpenV2G, que implementado em C [16]. A converso do projeto do cdigo C para o cdigo Node.js exigiria muito esforo. Portanto, o cdigo C desmontado e as funes bsicas so extradas. Com essas funes, uma biblioteca C compartilhada criada e acessada atravs do mdulo Node.js.

4.CONCLUSO

A tecnologia de carregamento inteligente pode fornecer uma contribuio para resolver problemas de balanceamento em futuras redes de energia. Atualmente, a demanda por uma nova soluo de balanceamento da rede pode no ser atendida, mas com o aumento da participao de veculos eltricos e de fontes renovveis ​​de energia, essa problemtica se intensificar e novas formas de balanceamento da rede podero se tornar necessrias. Neste artigo, proposta uma implementao modular de software para estaes de carregamento inteligente. Para fins de demonstrao, o software implementado em um sistema modular de avaliao, em que o sistema central implementado em um servidor no na estao de carregamento. No entanto, devido flexibilidade do software, ele pode ser facilmente ajustado para outros cenrios. Como a linguagem de programao Node.js proposta. Devido sua abordagem assncrona, bem como s E/S sem bloqueio, uma implementao do Node.js. mais simples que a do C/C++, onde seria necessrio um multi-threading complicado. O Node.js fornece um design de software mais simples, no entanto, todas as restries de tempo para a comunicao podem ser cumpridas. A funcionalidade da funo soft dividida em vrios mdulos, cada um responsvel por uma parte dedicada da comunicao, necessria para o carregamento inteligente. Ao fazer isso, as implementaes dos vrios protocolos de comunicao so estritamente separadas uma da outra. Por um lado, isso permite reutilizar mdulos individuais para outros projetos, como estaes de carregamento convencionais, que devem ser atualizados do OCPP 1.5 para a verso 2.0. Por outro lado, o software pode ser facilmente mantido ou ajustado. Isso pode ser vantajoso, considerando que o processo de padronizao dos protocolos relevantes de carregamento inteligente ainda no est concludo. Portanto, so possveis alteraes nos padres, que devem conseqentemente tambm ser aplicados ao software proposto.

ACKNOWLEDGMENT

A pesquisa que conduz aos resultados apresentados neste documento faz parte do projeto Desenvolvimento de uma estrutura para estaes de carregamento de veculos eltricos (em alemo: iLEM-Entwicklung eines Frameworks for Lad Ladationation), financiado pelo Ministrio da Economia da Baviera, Media, Energyand Technology sob concesso IUK-1212-0008 // IUK417 / 006.

REFERENCES

[1] Open Charge Point Protocol 2.0 - Interface description between Charge Point and Central System. Protocol Specification Release Candidate 2 Document Version 2.0.0. Open Charge Alliance, 2014.

[2] S. Mal et al. Electric vehicle smart charging and vehicle-to-grid operation. In: International Journal of Parallel, Emergent and Distributed Systems 28.3 (June

2013), pp. 249265.

[3] R. Freire et al. Integration of renewable energy generation with EV charging strategies to optimize grid load balancing. In: 2010 13th International IEEE Conference on Intelligent Transportation Systems (ITSC). 2010, pp. 392396.

[4] J. Ferreira et al. Smart electric vehicle charging system. In: 2011 IEEE Intelligent Vehicles Symposium (IV). 2011, pp. 758763.

[5] P. Bauer et al. Charging of electric vehicles and impact on the grid. In: MECHATRONIKA, 2010 13th International Symposium. 2010, pp. 121127.

[6] I. Stadler. Power grid balancing of energy systems with high renewable energy penetration by demand response. In: Utilities Policy. Sustainable Energy and Transportation Systems 16.2 (June 2008), pp. 9098.

[7] K. Mainzer et al. A high-resolution determination of the technical potential for residential-roof-mounted photovoltaic systems in Germany. In: Solar Energy 105 (June 2014), pp. 715731.

[8] S. Ruthe et al. Study on V2G Protocols against the Background of Demand Side Management. In: International Journal of Interoperability in Business Information Systems (IBIS) 1.6 (2011), pp. 3344.

[9] Electric vehicle conductive charging system Part 1: General requirements. International Standard IEC 61851-1 Edition 2.0. International Electrotechnical Commission, 2010.

[10] K. Hameseder, S. Fowler, and A. Peterson. Perfor-

mance analysis of ubiquitous web systems for SmartPhones. In: 2011 International Symposium on Performance Evaluation of Computer Telecommunication Systems (SPECTS). 2011, pp. 8489.

[11] Road vehicles - Vehicle to grid communication interface - Part 1: General information and use-case definition. International Standard ISO 15118-1:2013. International Organization for Standardization, 2013, p. 65.

[12] Road vehicles - Vehicle to grid communication interface - Part 2: Network and application protocol requirement. International Standard ISO 15118-2:2014. International Organization for Standardization, 2014, p. 342.

[13] Road vehicles - Vehicle to grid communication interface - Part 3: Physical and data link layer requirements. Standard in development ISO/FDIS 15118-3. International Organization for Standardization, 2014.

[14] C. Lewandowski et al. Performance Evaluation of PLC over the IEC 61851 Control Pilot Signal. In: Proceedings of the 5th Workshop on Power Line Communications. 2011.

[15] S. Springer. Node.js Das umfassende Handbuch. 1st ed. Bonn: Galileo Press, 2013.

[16] Open Vehicle to Grid.URL: http://openv2g.sourceforge. net/ (visited on 02/25/2015).