Skip to content

Conversation

@the-infinity
Copy link
Contributor

First OpenData Swiss mapping

| Field | Type | Cardinality | Mapping | Comment |
|-----------------|---------|-------------|-------------------------|---------------------------------------------------|
| City | string | 1 | location.city | |
| Country | string | 1 | location.country | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest to map only EVSEDataRecord with Country = CHE/DEU/AUT/LIE

| ParkingSpot | string | ? | evse.physical_reference | |
| PostalCode | string | 1 | location.postal_code | |
| Region | string | ? | | |
| Street | string | 1 | location.address | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment: often includes house number

| PostalCode | string | 1 | location.postal_code | |
| Region | string | ? | | |
| Street | string | 1 | location.address | |
| TimeZone | string | ? | location.time_zone | defaults to Europe/Zurich |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should depend on Country. E.g., Europe/Berlin for DEU.

| Floor | string | ? | | evse.floor_level |
| HouseNum | string | 1 | location.address | Added to Street. Might be '0', then it's ignored. |
| ParkingFacility | boolean | ? | | |
| ParkingSpot | string | ? | evse.physical_reference | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is always null and can be ignored

| Country | string | 1 | location.country | |
| Floor | string | ? | | evse.floor_level |
| HouseNum | string | 1 | location.address | Added to Street. Might be '0', then it's ignored. |
| ParkingFacility | boolean | ? | | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be null, true or false.
suggestion: map true to PARKING_LOT since Accessibility" is "Free publicly accessible" in this case

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be null, true or false.

That's what the type boolean and the cardinality ? means: it's boolean (true, false), but optional, so it can be null, too.

map true to PARKING_LOT since Accessibility" is "Free publicly accessible" in this case

PARKING_LOT is a value which makes not much sense in OCPI in my opinion: I mean, what's the meaning of that? A charging station without a place to park at? The facility enum is rarely used in general, because adding this data is just a lot of work, and you can just make a radius search to get much better data.

| PnC | |


### DynamicInfoAvailable

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For each EvseID the dynamic endpoint contains an EVSEStatus, so DynamicInfoAvailable can be ignored and EVSEStatus shall be evaluated.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is, there is no mapping set.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| EnvironmentalImpact | ? | ? | | Always null |
| EvseID | string | 1 | evse.evse_id | |
| GeoChargingPointEntrance | object | 1 | | Either {} or {"Google": "None None"}, both not useful |
| GeoCoordinates | [GeoCoordinates](#GeoCoordinates) | 1 | | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GeoCoordinates section is missing

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yes, one of these "why the hell did you do this" fields :D

| HardwareManufacturer | string | ? | | |
| HotlinePhoneNumber | string | 1 | | |
| HubOperatorID | string | ? | | |
| IsHubjectCompatible | string or boolean | 1 | 1 | String is `false` |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does Mapping 1 mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy paste fail from cardinality

@@ -0,0 +1,215 @@
# OpenData Swiss mapping


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please mention that different charging points with same geo coordinates shall always be mapped to one charging station.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might sometimes lead to unexpected results, eg if when there are different opening times, but we have to choose one for the location. But I do see the point why this makes sense, so I would just warn about that.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that we just have to evaluate ChargingStationId, so EVSDDataRecords with the same ChargingStationId also have the same GeoCoordinates.
image

@@ -0,0 +1,215 @@
# OpenData Swiss mapping


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that we just have to evaluate ChargingStationId, so EVSDDataRecords with the same ChargingStationId also have the same GeoCoordinates.
image

| ChargingPoolID | ? | ? | | Always null |
| ChargingStationId | string | 1 | evse.uid | |
| ChargingStationLocationReference | ? | ? | | Always null |
| ChargingStationNames | [ChargingStationName](#ChargingStationName) | * | location.directions | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple lang parameters do not really mean multple languages:
image
So location.name is fine for me, with de as preferred language.

| PnC | |


### DynamicInfoAvailable

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


| Field | Type | Cardinality | Mapping | Comment |
|------------------|------------------|-------------|---------|---------|
| EVSEStatusRecord | EVSEStatusRecord | * | | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

@ThorstenFroehlinghaus ThorstenFroehlinghaus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just one typo

| Test Station | |
| Restricted access | |
| Paying publicly accessible | |
| Key | Mapping | Commend |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment

@the-infinity the-infinity merged commit bb2decd into main May 7, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants