Electric car chargers

After renting and returning an electric van (described in a previous post), I looked into electric charging. First I learned that there is a lot already solved with a pretty good map (openchargemap) that even includes an API with lots of information about all charging stations. And secondly apps that seem to have solved the spending optimizations by knowing where you have premium plans and reduced costs. The best one seems to be ABRP. (Disclaimer: Without a car, I haven't used it to actually route a tour.)

In a talk at MRMCD I was reminded that there is an open API about all highway resting places. OpenAPI for view the API: https://autobahn.api.bund.dev/.

For example let's look at Gruibingen, which I used more than once. It is next to the highway A8:

# download A8
curl -X 'GET' \
'https://verkehr.autobahn.de/o/autobahn/A8/services/electric_charging_station' \
-H 'accept: application/json' > A8.json

# filter for Gruibingen
jq '[.electric_charging_station.[] | select(.title|contains("Gruibingen"))]' A8.json > A8_gruibingen.json

There are two datasets in there for Gruibingen. But they look the same except for a (1) and (2). Let's compare the datasets:

$ diff <(jq '.[0]' A8_gruibingen.json) <(jq '.[1]' A8_gruibingen.json)
2c2
<   "identifier": "RUxFQ1RSSUNfQ0hBUkdJTkdfU1RBVElPTl9fODk4",
---
>   "identifier": "RUxFQ1RSSUNfQ0hBUkdJTkdfU1RBVElPTl9fODk3",
10c10
<   "title": "A8 | Ulm | Raststätte Gruibingen Süd (2)",
---
>   "title": "A8 | Ulm | Raststätte Gruibingen Süd (1)",
16c16
<     "A8 | Ulm | Raststätte Gruibingen Süd (2)",
---
>     "A8 | Ulm | Raststätte Gruibingen Süd (1)",

So both entries actually share the same location and both have 3 chargers. Ionity has 6 chargers there, which I verified on openchargemap. Seems like these 2x3 for Ionity. Because the other charger (the one from E.On) has only 2 stations/bays. The geo coordinate in the dataset for both chargers is 48.605276,9.632882. And the one in openchargemap for the Ionity charger is 48.60532,9.632618 and the one for E.On is 48.6059,9.6317. Which again hints on both datasets are for Ionity. But where is the E.On charger?

After some scrolling over the data, I recognized that they misspelled Gruibingen with Grubingen:

/images/chargers_autobahn_api.png

The coordinates and the data of the wrongly spelled Gru(i)bingen matches the E.On charger: 48.605956,9.632872 and 2 stations/bays.


Let's verify a second/different resting place, i.e. Denkendorf Nord. There are 2 different types of EnBW chargers and some Ionity ones.

# filter for Denkendorf
jq '[.electric_charging_station.[] | select(.title|contains("Denkendorf"))]' A8.json > A8_denkendorf.json

Only one entry in there. And it is the slow charger from EnBW. No EnBW fast charger and no Ionity.


Another thing I explored is looking at the data from Ionity from there "API". All their charging stations: https://ionity.eu/location.json (this is used on their website for the map). I searched for Gruibingen and there are 6 stations/bays. So for Ionity only, this is a good datasource, with stations and lat/lon.

ABRP is even better. It knows how many stations are already in use.
For example ABRP view for the Ionity station at the Gruibingen resting place:
/images/chargers_abrp.png

Overall it seems like the Autobahn API needs some maintenance. If I would build something on charger station data, I would probably use the API from openchargemap. And for my next drive with an electric car I will use ABRP (Android).