-
Notifications
You must be signed in to change notification settings - Fork 2
opendata swiss mapping #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
| @@ -0,0 +1,239 @@ | ||||
| # OpenData Swiss mapping | ||||
|
|
||||
| As the data source does not provide a dedicated location entity, OCPDB will use the `ChargingStationId` field for | ||||
| grouping to locations. If there are different information for the location, we will use the information of the first | ||||
| `EVSEDataRecord`. | ||||
|
|
||||
|
|
||||
| ## EVSEData | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |----------------|----------------|-------------|------------------------|---------| | ||||
| | EVSEDataRecord | EVSEDataRecord | * | | | | ||||
| | OperatorID | string | 1 | | | | ||||
| | OperatorName | string | 1 | location.operator.name | | | ||||
|
|
||||
|
|
||||
| ## EVSEDataRecord | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |----------------------------------|-------------------------------------------------|-------------|-----------------------|----------------------------------------------------------| | ||||
| | Accessibility | [Accessibility](#Accessibility) | 1 | | | | ||||
| | AccessibilityLocation | [AccessibilityLocation](#AccessibilityLocation) | ? | location.parking_type | | | ||||
| | AdditionalInfo | ? | ? | | Always null | | ||||
| | Address | [Address](#Address) | 1 | | | | ||||
| | AuthenticationModes | [AuthenticationMode](#AuthenticationMode) | * | evse.capabilities | | | ||||
| | CalibrationLawDataAvailability | string | 1 | | Always 'Not Available' | | ||||
| | ChargingFacilities | [ChargingFacility](#ChargingFacility) | * | | | | ||||
| | ChargingPoolID | ? | ? | | Always null | | ||||
| | ChargingStationId | string | 1 | evse.uid | | | ||||
| | ChargingStationLocationReference | ? | ? | | Always null | | ||||
| | ChargingStationNames | [ChargingStationName](#ChargingStationName) | * | location.name | Use the entry with lang = de, if not set the first entry | | ||||
| | ClearinghouseID | ? | ? | | Always null | | ||||
| | deltaType | string | ? | | | | ||||
| | DynamicInfoAvailable | [DynamicInfoAvailable](#DynamicInfoAvailable) | 1 | | | | ||||
| | DynamicPowerLevel | boolean | ? | | | | ||||
| | EnergySource | ? | ? | | Always null | | ||||
| | EnvironmentalImpact | ? | ? | | Always null | | ||||
| | EvseID | string | 1 | evse.evse_id | | | ||||
| | GeoChargingPointEntrance | object | 1 | | Either {} or {"Google": "None None"}, both not useful | | ||||
| | GeoCoordinates | [GeoCoordinates](#GeoCoordinates) | 1 | location.coordinates | | | ||||
| | HardwareManufacturer | string | ? | | | | ||||
| | HotlinePhoneNumber | string | 1 | | | | ||||
| | HubOperatorID | string | ? | | | | ||||
| | IsHubjectCompatible | string or boolean | 1 | | String is `false` | | ||||
| | IsOpen24Hours | string or boolean | 1 | | String is `true` | | ||||
| | lastUpdate | string (date-time) | ? | | | | ||||
| | LocationImage | ? | ? | | Always null | | ||||
| | MaxCapacity | integer | ? | | | | ||||
| | OpeningTimes | [OpeningTime](#OpeningTime) | * | | | | ||||
| | PaymentOptions | [PaymentOption](#PaymentOption) | * | | | | ||||
| | Plugs | [Plug](#Plug) | * | | | | ||||
| | RenewableEnergy | boolean | 1 | | | | ||||
| | SuboperatorName | ? | ? | | Always null | | ||||
| | ValueAddedServices | [ValueAddedService](#ValueAddedService) | * | | | | ||||
|
|
||||
|
|
||||
| ### Accessibility | ||||
|
|
||||
| | Key | Mapping | Comment | | ||||
| |----------------------------|---------|--------------------| | ||||
| | Free publicly accessible | | | | ||||
| | Unspecified | | | | ||||
| | Test Station | | Should be filtered | | ||||
| | Restricted access | | | | ||||
| | Paying publicly accessible | | | | ||||
|
|
||||
|
|
||||
| ### AccessibilityLocation | ||||
|
|
||||
| | Key | Mapping | | ||||
| |--------------------------|--------------------| | ||||
| | ParkingGarage | PARKING_GARAGE | | ||||
| | OnStreet | ON_STREET | | ||||
| | ParkingLot | PARKING_LOT | | ||||
| | UndergroundParkingGarage | UNDERGROUND_GARAGE | | ||||
|
|
||||
|
|
||||
| ### AuthenticationMode | ||||
|
|
||||
| | Key | Mapping | | ||||
| |------------------|---------------------------| | ||||
| | NFC RFID DESFire | RFID_READER | | ||||
| | REMOTE | REMOTE_START_STOP_CAPABLE | | ||||
| | NFC RFID Classic | RFID_READER | | ||||
| | Direct Payment | | | ||||
| | PnC | | | ||||
|
|
||||
|
|
||||
| ### DynamicInfoAvailable | ||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For each EvseID the dynamic endpoint contains an
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is, there is no mapping set. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, in ocpdb/docs/mapping/opendata_swiss.md Line 221 in 9cec18d |
||||
|
|
||||
| As OCPI does not have a field like `has_realtime_data`, we cannot use this enumeration. | ||||
|
|
||||
| | Key | Mapping | | ||||
| |-------|---------| | ||||
| | auto | | | ||||
| | true | | | ||||
| | false | | | ||||
|
|
||||
|
|
||||
| ### PaymentOption | ||||
|
|
||||
| | Key | Mapping | | ||||
| |------------|---------| | ||||
| | No Payment | | | ||||
| | Contract | | | ||||
| | Direct | | | ||||
|
|
||||
|
|
||||
| ### Plug | ||||
|
|
||||
| | value | standard | format | | ||||
| |-----------------------------------|--------------------|--------| | ||||
| | Type J Swiss Standard | DOMESTIC_J | SOCKET | | ||||
| | Type 2 Outlet | IEC_62196_T2 | SOCKET | | ||||
| | Tesla Connector | TESLA_S | SOCKET | | ||||
| | Type 1 Connector (Cable Attached) | IEC_62196_T1 | CABLE | | ||||
| | Type F Schuko | DOMESTIC_F | SOCKET | | ||||
| | CCS Combo 1 Plug (Cable Attached) | IEC_62196_T1 | CABLE | | ||||
| | Type 2 Connector (Cable Attached) | IEC_62196_T2 | CABLE | | ||||
| | CHAdeMO | CHADEMO | CABLE | | ||||
| | Type G British Standard | DOMESTIC_G | SOCKET | | ||||
| | CCS Combo 2 Plug (Cable Attached) | IEC_62196_T2_COMBO | CABLE | | ||||
|
|
||||
|
|
||||
| ### ValueAddedService | ||||
|
|
||||
| | Key | Mapping | | ||||
| |----------------------|---------| | ||||
| | MaximumPowerCharging | | | ||||
| | None | | | ||||
| | DynamicPricing | | | ||||
|
|
||||
|
|
||||
| ## Address | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |-----------------|---------|-------------|----------------------|-------------------------------------------------------------------------------------| | ||||
| | City | string | 1 | location.city | | | ||||
| | Country | string | 1 | location.country | Just charge stations with `Country` in CHE, DEU, AUT and LIE get imported | | ||||
| | Floor | string | ? | | evse.floor_level | | ||||
| | HouseNum | string | 1 | location.address | Added to Street. Might be '0', then it's ignored. | | ||||
| | ParkingFacility | boolean | ? | | | | ||||
| | ParkingSpot | ? | ? | | | | ||||
| | PostalCode | string | 1 | location.postal_code | | | ||||
| | Region | string | ? | | | | ||||
| | Street | string | 1 | location.address | Often includes house number | | ||||
| | TimeZone | string | ? | location.time_zone | If not set, use corresponding timezone of the `Country`, eg `Europe/Zurich` for CHF | | ||||
|
|
||||
|
|
||||
| ## ChargingStationName | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |--------|--------|-------------|-------------------|---------| | ||||
| | lang | string | 1 | | | | ||||
| | value | string | 1 | display_text.text | | | ||||
|
|
||||
|
|
||||
| ## GeoCoordinates | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |--------|--------|-------------|----------------------|------------------------------------------------------------| | ||||
| | Google | string | 1 | location.coordinates | Format: "{lat} {lon}": two floats with a space in between. | | ||||
|
|
||||
|
|
||||
| ## ChargingFacility | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |-----------|-------------------------|-------------|------------------------------|-----------------------------------| | ||||
| | power | numeric | 1 | connector.max_electric_power | In kW, has to be transformed in W | | ||||
| | powertype | [PowerType](#PowerType) | ? | connector.power_type | | | ||||
| | Amperage | integer | ? | connector.max_amperage | | | ||||
| | Voltage | integer | ? | connector.max_voltage | | | ||||
|
|
||||
|
|
||||
| ### PowerType | ||||
|
|
||||
| | Key | Mapping | | ||||
| |------------|------------| | ||||
| | DC | DC | | ||||
| | AC_1_PHASE | AC_1_PHASE | | ||||
| | AC_3_PHASE | AC_3_PHASE | | ||||
|
|
||||
|
|
||||
| ## OpeningTime | ||||
|
|
||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |--------|---------------------|-------------|-----------------------|---------| | ||||
| | on | [Weekday](#Weekday) | 1 | regular_hours.weekday | | | ||||
| | Period | [Period](#Period) | * | | | | ||||
|
|
||||
| ### Weekday | ||||
|
|
||||
| | Key | Mapping | | ||||
| |-----------|---------| | ||||
| | Monday | 1 | | ||||
| | Tuesday | 2 | | ||||
| | Wednesday | 3 | | ||||
| | Thursday | 4 | | ||||
| | Friday | 5 | | ||||
| | Saturday | 6 | | ||||
| | Sunday | 7 | | ||||
|
|
||||
|
|
||||
| ## Period | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |-------|------------------|-------------|----------------------------|---------| | ||||
| | begin | string (time) | 1 | regular_hours.period_begin | | | ||||
| | end | string (time) | 1 | regular_hours.period_end | | | ||||
|
|
||||
|
|
||||
| ## EVSEStatuses | ||||
|
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |------------------|---------------------------------------|-------------|---------|---------| | ||||
| | EVSEStatusRecord | [EVSEStatusRecord](#EVSEStatusRecord) | * | | | | ||||
| | OperatorID | string | 1 | | | | ||||
| | OperatorName | string | 1 | | | | ||||
|
|
||||
|
|
||||
| ## EVSEStatusRecord | ||||
|
|
||||
|
|
||||
|
the-infinity marked this conversation as resolved.
|
||||
| | Field | Type | Cardinality | Mapping | Comment | | ||||
| |------------|---------------------------|-------------|--------------|---------| | ||||
| | EvseID | string | 1 | evse.evse_id | | | ||||
| | EVSEStatus | [EVSEStatus](#EVSEStatus) | 1 | evse.status | | | ||||
|
|
||||
|
|
||||
| ### EVSEStatus | ||||
|
|
||||
|
the-infinity marked this conversation as resolved.
|
||||
|
|
||||
| | Key | Mapping | | ||||
| |--------------|------------| | ||||
| | Available | AVAILABLE | | ||||
| | OutOfService | OUTOFORDER | | ||||
| | Occupied | CHARGING | | ||||
| | Unknown | UNKNOWN | | ||||
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
