Chega a um posto de carregamento que a app dizia estar livre e encontra um carro estacionado lá. Ou pior: encontra o posto avariado, com um ecrã morto. É das queixas mais comuns entre condutores de veículos elétricos em Portugal, e a conclusão habitual é que “a app está errada”.
Às vezes está. Mas o problema é quase sempre mais fundo do que a aplicação que tem no telemóvel.
Escrevo isto porque construí e mantenho o EV Charge Hub, que consome os dados oficiais da rede de carregamento portuguesa. Passo bastante tempo a olhar para esses dados em bruto. O que se segue é o que aprendi — incluindo uma falha minha que ilustra o problema melhor do que qualquer explicação teórica.
De onde vêm os dados
A informação sobre a rede pública portuguesa é publicada pela MOBI.E através do Ponto de Acesso Nacional, num formato europeu chamado DATEX II. São dois ficheiros distintos, e essa separação é a primeira coisa importante a perceber:
- A infraestrutura — onde estão os postos, que tomadas têm, que potência, quem é o operador. Muda pouco.
- O estado atual — se cada tomada está livre, ocupada ou fora de serviço. Muda a toda a hora.
Qualquer aplicação de mapa de carregamento em Portugal — a minha incluída — parte daqui. Não há uma fonte secreta melhor: é este o material com que todos trabalhamos.
O primeiro obstáculo: o tamanho
O ficheiro da infraestrutura tem, neste momento, cerca de 190 MB. O do estado, mais 41 MB. E o servidor demora cerca de um minuto a entregá-los.
Isto não é um detalhe técnico irrelevante. Significa que nenhuma aplicação pode consultar a fonte oficial no momento em que abre o mapa. Seria preciso esperar um minuto e descarregar 230 MB antes de lhe mostrar o primeiro posto. Ninguém faz isso — nem deve.
O que todas as aplicações fazem é ir buscar os dados periodicamente, guardá-los, e servir-lhe essa cópia. No meu caso, de trinta em trinta minutos. Ou seja: o que vê no mapa nunca é o estado deste instante. É uma fotografia recente, na melhor das hipóteses.
O segundo obstáculo: os postos que não dizem nada
Aqui está a repartição real da rede, tal como o feed oficial a reportou na última atualização, com 8245 postos:
| Estado reportado | Postos | Peso |
|---|---|---|
| Operacional | 5147 | 62% |
| Parcialmente disponível | 1511 | 18% |
| Fora de serviço | 711 | 9% |
| Estado desconhecido | 876 | 11% |
Repare na última linha. Cerca de um em cada dez postos não reporta um estado utilizável. Não é que estejam avariados — é que o feed não diz se estão livres, ocupados ou mortos. Simplesmente não há informação.
Somando esses aos que estão declaradamente fora de serviço, perto de 20% da rede pública não lhe consegue garantir nada no momento em que planeia a viagem.
Uma aplicação tem de decidir o que fazer com esses 876 postos. Mostrá-los como disponíveis é mentir. Escondê-los é pior — o posto existe e pode estar perfeitamente funcional. A escolha honesta é mostrá-los como o que são: incertos. Mas isso obriga a uma interface mais confusa, e é por isso que muitas apps preferem simplificar e arriscar-se a estar erradas.
O terceiro obstáculo: um posto não é uma tomada
Aqueles 8245 postos contêm, na realidade, mais de 20 mil tomadas. Um posto com duas tomadas em que uma está ocupada e a outra livre não é “ocupado” nem “livre” — está no meio.
Na minha aplicação, um posto só aparece como plenamente operacional se tiver tomadas livres e nenhuma avariada. Se tiver alguma livre mas também alguma ocupada ou com problema, fica marcado como parcialmente disponível. É por isso que aqueles 1511 postos “parciais” existem: são a realidade normal de uma rede em uso, não uma anomalia.
Quando chega lá e encontra o posto ocupado, muitas vezes o que aconteceu foi isto: havia duas tomadas, uma estava livre há vinte minutos, e outra pessoa chegou primeiro.
O quarto obstáculo: as falhas silenciosas
Esta é a parte incómoda, e é a razão pela qual decidi escrever o artigo.
Durante sete semanas, entre meados de junho e o início de agosto, o meu sistema esteve a servir dados de postos que estavam congelados. O mapa mostrava a disponibilidade de 17 de junho como se fosse atual.
A causa foi banal. O feed oficial demora cerca de 57 segundos a responder, e eu tinha configurado um limite de espera de 30 segundos — um valor que era suficiente quando o ficheiro era mais pequeno. A partir do momento em que deixou de ser, todas as atualizações passaram a falhar.
O que torna isto perigoso não é o erro em si. É que o sistema continuou a reportar que estava tudo bem. A falha era apanhada, registada num canto, e o processo terminava com sucesso aparente. Não havia alarme, não havia sintoma visível: só uma data de atualização que ninguém estava a olhar.
Corrigi-o esta semana, aumentando o limite de espera e — mais importante — fazendo com que uma falha destas passe a gritar em vez de sussurrar. Agora, quando a recolha falha, fica registado explicitamente que os dados vão ficar velhos até à próxima recolha bem-sucedida.
Conto isto porque é a melhor ilustração que tenho do problema real: os dados errados raramente parecem errados. Um posto marcado como livre parece exatamente igual, quer a informação tenha dois minutos ou sete semanas.
O quinto obstáculo: o silêncio não está distribuído por igual
Quando escrevi este artigo pela primeira vez, tinha uma leitura da rede. Desde 16 de agosto passei a guardar uma leitura por dia, e isso permitiu fazer uma pergunta que antes não conseguia responder: os postos que não dizem nada estão espalhados pela rede toda, ou concentram-se em alguém?
Concentram-se. E de forma brutal. Esta é a percentagem de tomadas sem estado reportado, por operador, na leitura de 16 de agosto de 2026:
| Operador | Estações | Tomadas sem estado |
|---|---|---|
| EDP Comercial | 1638 | 51,6% |
| Iberdrola | bp pulse | 275 | 50,5% |
| Mota-Engil Renewing | 169 | 24,9% |
| REPSOL Portuguesa | 158 | 20,4% |
| Galp Power OPC | 1451 | 18,0% |
| Atlante Infra Portugal | 564 | 16,5% |
| Prio.E Mobility Solutions | 161 | 12,0% |
| Helexia II Energy Services | 224 | 11,9% |
| Powerdot | 763 | 6,3% |
| Iberdrola Clientes Portugal | 182 | 5,2% |
| Maksu | 344 | 2,9% |
| WOWPLUG | 728 | 2,9% |
Entre a WOWPLUG e a EDP Comercial há uma diferença de dezoito vezes. Não é uma limitação da tecnologia, nem da Mobi.E, nem do protocolo: é possível reportar estado com quase 100% de cobertura, porque há operadores com centenas de estações a fazê-lo todos os dias.
E há uma consequência aritmética que muda a leitura de tudo o que escrevi acima. Ao nível das tomadas — e é aí que a informação conta, como expliquei no terceiro obstáculo — havia 5629 tomadas sem estado em toda a rede, 27,3% das 20624 existentes. Só que a EDP Comercial, sozinha, tinha 2967 dessas. Um único operador respondia por 53% de todas as tomadas sem estado do país.
Ou seja: aquilo que à distância parece uma rede uniformemente opaca é, sobretudo, o maior operador do país a não reportar metade do seu parque. Os restantes 114 operadores, somados, contribuem menos para o problema do que ele.
Isto muda o que é razoável concluir de um mapa. Se está a olhar para um posto sem informação, a probabilidade de ser da EDP é muito maior do que a quota dela na rede sugere. E se está a decidir uma viagem por zonas onde a EDP domina, a incerteza que enfrenta é maior do que a média nacional lhe faz crer.
Faço esta medição todos os dias e publico-a na página do estado da rede, com os dados em CSV para quem os quiser verificar. É o tipo de facto que só aparece quando alguém guarda as leituras em vez de as consumir e deitar fora.
O mesmo vale para os preços
O problema não se limita à disponibilidade. As tarifas dos comercializadores que apresento na tabela de preços vêm com uma data de referência — e no momento em que escrevo, essa data tem vários meses. Os operadores atualizam preços com muito mais frequência do que atualizam os ficheiros que publicam.
É por isso que, nessa página, digo sempre para confirmar no operador antes de carregar. Não é uma cautela legal vazia: é o reconhecimento de que a fonte pode estar atrasada.
O que fazer com isto, na prática
Não escrevi este artigo para desacreditar as aplicações de carregamento — construí uma. Escrevi-o porque acho que se conduz melhor sabendo o que a informação vale.
Trate a disponibilidade como uma probabilidade, não como uma promessa. Um posto marcado como livre está provavelmente livre. Não está garantidamente livre.
Repare na data da informação. Qualquer aplicação séria mostra quando os dados foram atualizados. Se não mostra, é um sinal de aviso maior do que parece.
Tenha sempre uma segunda opção. Em viagem, saber onde está o posto seguinte vale mais do que confiar no primeiro. É a única defesa que funciona contra dados imperfeitos.
Desconfie de zonas com poucos postos. Onde há um só posto, a informação incerta custa caro. Onde há seis, a estatística trabalha a seu favor.
A rede portuguesa cresceu muito e continua a crescer — só na última atualização apareceram mais de duzentos postos face aos dados anteriores. Mas a qualidade da informação sobre essa rede não cresceu ao mesmo ritmo. Enquanto isso não mudar, o melhor que qualquer aplicação pode fazer — a minha incluída — é ser honesta sobre o que não sabe.