MOBI.Docs
Versão da especificação: v1.0

Commands

O módulo Commands: START_SESSION, STOP_SESSION e UNLOCK_CONNECTOR, com as matrizes de decisão de CommandResponse e CommandResult.

Nesta página

Considerações técnicas

Devem ser suportados os seguintes comandos:

  • START_SESSION
  • STOP_SESSION
  • UNLOCK_CONNECTOR

Todos os processos são assíncronos. Por isso, é OBRIGATÓRIO que o EMSP indique um identificador único no response_url.

Quanto ao desbloqueio do conector, é importante notar que o EMSP não deve ser autorizado a usar esta funcionalidade de forma ligeira. É proibido ao EMSP criar aplicações que permitam executar este comando sem validação.

Um EMSP NÃO DEVERIA enviar comandos para um EVSE que não seja REMOTE_START_STOP_CAPABLE.

Métodos a implementar

CPO (e MOBI.Hub) – Receiver

Tabela 8 – Métodos de Commands para o CPO (e MOBI.Hub) – Receiver
MétodoDireçãoDescrição da utilização
POSTRespostaConfirmação do pedido inicial de execução do comando.
POSTPedidoResponder de forma assíncrona ao pedido do EMSP quanto à sua execução.

EMSP (e MOBI.Hub) – Sender

Tabela 9 – Métodos de Commands para o EMSP (e MOBI.Hub) – Sender
MétodoDireçãoDescrição da utilização
POSTPedidoO EMSP envia um comando ao MOBI.Hub
POSTRespostaReceber a confirmação de execução do MOBI.Hub

Descrição dos comandos e objetos

START_SESSION

O MOBI.Hub deve verificar que o token existe e autorizá-lo antes de enviar o pedido ao posto de carregamento. Esta validação pode basear-se numa autorização em tempo real junto do EMSP ou numa lista branca (whitelist) gerida pela Mobi.e.

Normalmente, todos os postos de carregamento deveriam fazer a autorização OCPP antes de iniciar uma nova transação. Se o firmware o permitir, os postos de carregamento serão configurados para não autorizar transações na sequência de um início remoto, de forma a melhorar o tempo global de validação.

O estado do EVSE não deve ser considerado para o CommandResponse, uma vez que um posto de carregamento pode não ter comunicado todas as alterações de estado necessárias.

A tabela seguinte descreve o objeto START_SESSION:

Tabela 10 – Propriedades do objeto START_SESSION
PropriedadeObrigatórioValorComentário
response_urlTRUEURL para o resultado posterior
tokenTRUEAPP_USER / AD_HOC_USERO token tem de ter sido criado previamente no MOBI.Hub (mesmo que apenas alguns segundos/minutos antes).
tokenTRUERFIDO token tem de ter sido criado previamente no MOBI.Hub. Este token deve ser usado caso o EMSP pretenda garantir que o utilizador poderá iniciar ou parar a transação no posto de carregamento. Caso algum dos parâmetros RFID não esteja correto, o pedido deve ser rejeitado (ou seja, esta não é uma forma de atualizar o token com PATCH).
location_idTRUE
evse_uidTRUEO valor deveria ser obrigatório, uma vez que o MOBI.Hub não consegue garantir que todos os postos de carregamento suportam um pedido ao nível do posto de carregamento com seleção local.
authorization_referenceFALSEDeve ser implementado um tipo UUID.

Para o CommandResponse correspondente, considere-se a seguinte matriz.

Tabela 11 – CommandResponse de START_SESSION
CondiçãoCommandResponse - resultMensagem (se aplicável)
Token válidoEVSE UID existe no localPosto de carregamento online
TRUETRUETRUEACCEPTEDN/A
**FALSEREJECTEDO posto de carregamento pedido está atualmente offline.
FALSE*TRUEREJECTEDO token pedido é inválido.
TRUEFALSETRUEREJECTEDO EVSE UID pedido não existe no local.

A verificação da validade do token deve considerar o seguinte:

  • Se o token existir, então:
    • Tem de ter as mesmas propriedades.
    • Tem de pertencer à parte que faz o pedido.

Por fim, para o CommandResult aplica-se a tabela seguinte. Note-se que, ao contrário do que é indicado no documento de referência, o CommandResult result não pode ser ACCEPTED se não tiver sido recebido nenhum StartTransaction.req.

Tabela 12 – CommandResult de START_SESSION
CondiçãoCommandResult - resultMensagem (se aplicável)
RemoteStartTransaction.conf recebidoEstado de RemoteStartTransaction.confStartTransaction.req recebidoSessão ativa com o mesmo tokenSessão ativa com token diferenteEVSE em OutOfServiceTempo limite de execução do comando
TRUEACCEPTEDTRUE***FALSEACCEPTEDN/A
TRUEACCEPTEDTRUE***FALSEACCEPTED[Motivo do StartTransaction.req]
FALSEN/ATRUE***FALSEACCEPTEDAVISO! Confirmação original não recebida.
TRUEACCEPTEDFALSE***TRUEFAILEDO posto de carregamento não confirmou que iniciou a transação.
TRUEREJECTEDFALSETRUEFALSEN/AFALSEEVSE_OCCUPIEDO utilizador atual tem uma transação ativa no EVSE.
TRUEREJECTEDFALSEFALSEFALSETRUEFALSEEVSE_INOPERATIVEO EVSE pedido está fora de serviço.
TRUEREJECTEDFALSEFALSETRUEN/AFALSEEVSE_OCCUPIEDO EVSE está atualmente ocupado.
FALSEN/AFALSE***TRUETIMEOUT

STOP_SESSION

Propriedades do objeto STOP_SESSION
PropriedadeValorObrigatórioComentário
response_urlTRUEURL para o resultado posterior
session_idTRUE

Se o posto de carregamento em causa não suportar a paragem remota de uma sessão, deve ser dado o seguinte result de CommandResponse: NOT_SUPPORTED.

Para o CommandResponse correspondente, considere-se a seguinte matriz.

Tabela 13 – CommandResponse de STOP_SESSION
CondiçãoCommandResponse - resultMensagem (se aplicável)
Sessão existeSessão ativaSessão pertence ao EMSPPosto de carregamento online
TRUETRUETRUETRUEACCEPTEDN/A
TRUETRUETRUEFALSEREJECTEDA sessão pedida está atualmente offline.
TRUETRUEFALSE*REJECTEDA sessão pedida não pertence à parte que faz o pedido.
TRUEFALSETRUE*REJECTEDA sessão pedida já não está ativa.
TRUEFALSEFALSE*REJECTEDA sessão pedida não pertence à parte que faz o pedido.
FALSEN/AN/A*UNKNOWN_SESSIONN/A

Para o CommandResult, considere-se a seguinte tabela:

Tabela 14 – CommandResult de STOP_SESSION
CondiçãoCommandResult - resultMensagem (se aplicável)
RemoteStopTransaction.conf recebidoEstado de RemoteStopTransaction.confStopTransaction.req recebidoMotivo do StopTransaction.reqTempo limite de execução do comando
TRUEACCEPTEDTRUERemote OU posto de carregamento OCPP 1.5FALSEACCEPTEDN/A
TRUEACCEPTEDTRUE(diferente de Remote em postos de carregamento OCPP 1.6)FALSEACCEPTED[Motivo do StopTransaction.req]
FALSEN/ATRUE*FALSEACCEPTEDConcatenação de: AVISO! Confirmação original não recebida + [Motivo do StopTransaction.req].
TRUEACCEPTEDFALSEN/ATRUEFAILEDO posto de carregamento não confirmou que parou a transação.
TRUEREJECTEDFALSEN/AFALSEFAILEDO posto de carregamento rejeitou o pedido.
FALSEN/AFALSEN/ATRUETIMEOUT

UNLOCK_CONNECTOR

O objeto pode ser descrito pelas seguintes propriedades:

Tabela 15 – Propriedades do objeto UNLOCK_CONNECTOR
PropriedadeValorObrigatórioComentário
response_urlTRUEURL para o resultado posterior
location_idTRUE
evse_uidTRUE
connector_uidTRUE
Tabela 16 – CommandResponse de UNLOCK_CONNECTOR
CondiçãoCommandResponse - resultMensagem (se aplicável)
Sessão ativa com utilizador do EMSPSem sessão ativa, mas o último utilizador pertence ao EMSP (menos de 24h)Posto de carregamento online
TRUEN/ATRUEACCEPTEDN/A
TRUEN/AFALSEREJECTEDImpossível executar o comando pedido, uma vez que o posto de carregamento está offline.
FALSETRUETRUEACCEPTEDAviso: a sessão de carregamento terminou às [stop_timestamp]
FALSETRUEFALSEREJECTEDImpossível executar o comando pedido, uma vez que o posto de carregamento está offline. Aviso: a sessão de carregamento terminou às [stop_timestamp]
FALSEFALSE*REJECTEDNão existe nenhuma sessão válida do EMSP no posto de carregamento

Para o CommandResult, considere-se a seguinte tabela para postos OCPP 1.6:

Tabela 17 – CommandResult de UNLOCK_CONNECTOR
CondiçãoCommandResult - resultMensagem (se aplicável)
UnlockConnector.conf recebidoEstado de UnlockConnector.confTempo limite de execução do comando
TRUEUnlocked (OCPP 1.6) ou Accepted (OCPP 1.5)FALSEACCEPTEDN/A
TRUERejected (OCPP 1.5)FALSEREJECTEDN/A
TRUEUnlockFailed (OCPP 1.6)FALSEFAILEDN/A
TRUENotSupported (OCPP 1.6)FALSENOT_SUPPORTEDN/A
FALSEN/ATRUETIMEOUTN/A