Eco-movement is de data provider voor alle oplaadpalen in de Benelux. Onze data wordt onder andere gebruikt in de volgende app's:
NewMotion App | Smoov app | Nuon App | Plugsurfing App | Social Charging App | Meer partners...

Inkomende API

Read this page in English

Actieve updates van de eigen oplaadpalen database op Eco-movement

De ingaande API is bedoeld voor oplaadpaal eigenaren die hun eigen database ter beschikking willen stellen aan de Eco-movement database. Voor de ingaande API geldt dat u de serverkant implementeert. Eco-movement roept uw server automatisch aan. Om te starten met een ingaande API vraagt u eerst een developerkey aan.

Na implementatie van de interface is het mogelijk deze in de testomgeving uit te proberen. Na een succesvolle test kan de inbound interface op verzoek live worden gezet. In de livesituatie wordt de database eenmaal per dag tussen 7 en 8 uur ‘s ochtends opgevraagd.

Eco-movement werkt uitsluitend met een REST API , een simpel te gebruiken interface die de nadelen van de vaak zeer complexe SOAP interfaces niet kent.  Voor de inbound API dienen de gegevens opgemaakt te worden via het JSON formaat.

Additioneel is het mogelijk de SetAvailability API call te implementeren. Hiermee geeft u aan of een oplaadpaal actueel bezet is of vrij. In dit geval fungeert Eco-movement als server die u vanuit uw applicatie aanroept.

U dient de volgende API calls te implementeren:

GetChargingpoints

Geeft informatie over alle geselecteerde laadpalen.

  • REST: GET [GetChargingpoints url]  - deze url kunt u zelf definieren.
  • Aanroepfrequentie: 1 maal per dag
  • Wordt vanuit Eco-movement aangeroepen op uw eigen server

SetAvailability (optioneel)

Geeft informatie over de vrij/bezet status van de oplaadpalen door aan Eco-movement.

  • REST: POST http://oplaadpalen.nl/api/setavailability/[developerkey]
  • Aanroepfrequentie: maximaal 1 maal per minuut
  • Postgegevens bevatten beschikbaarheids status updates van 1 of meerdere oplaadpalen
  • Post body in raw json of met formdata json=<json gegevens>

GetChargingpoints

Voorbeelden:

  • http://www.uwdomein.nl/api/getchargingpoints

Indien u uw API niet publiek wilt maken is het mogelijk een key op te geven. De url kan volledig vrij worden gedefinieerd, bv:

  • http://database.uwdomein.nl/onzeoplaadpunten/ophalen?secret=CF78AB669013478DE6F

U geeft deze url zelf op in de testomgeving.

Result

het resultaat (in json) wordt gegeven in het formaat:

result ::= [ <laadpaal>,<laadpaal>... ]
laadpaal ::= { <lpkeyvalue>,<lpkeyvalue>…  }
lpkeyvalue ::=  ”<lpkey>”:<value>
lpkey ::= id | lng | lat | owner | name | address | postalcode | city | country | phone | url | owner | email |  opentimes | chargetype | connectortype | nroutlets | cards | pricemethod | price | power | vehicle | facilities | realtimestatus
value ::= “string” | number | true | false | {object} | [array]
 
id = primary key (string).
    • Deze waarde wordt door Eco-movement gebruikt als key voor wijzigingen van de paal. Een ander id creert een nieuwe oplaadpaal, hetzelfde id wijzigt uw bestaande oplaadpaal of creert een nieuwe oplaadpaal indien deze nog niet bestaat.
lng = decimal longitude (decimal)
    • Voorbeeld:  3.1415927
lat = decimal latitude (decimal)  
    • Voorbeeld 5.6789
owner = eigenaar van de paal (string)  (optioneel)
    • Indien u dit veld niet meegeeft wordt default de naam van het bedrijf gebruikt dat aan de developerkey is gekoppeld
manager = beheerder van de oplaadpaal (string)  (optioneel)
    • indien u dit veld niet meegeeft wordt de eigenaar (owner) gebruikt als beheerder
name = naam van de oplaadpaal  (string)
    • Deze naam wordt op de website getoond.
address = adres, inclusief huisnummer (string)
postalcode = postcode (string)
city = plaats (string)
country =  landcode (string)
    • 2 character ISO3166 country code, bv. “NL”
phone = telefoonnummer service (bv paalstoring)(string)
    • Let op het telefoonnummer moet in het volgende formaat worden weergegeven: “+(land code)-(area code zonder nul)-telefoonnummer”. Bijvoorbeeld: “+(31)-(123)-1234567″
url = informatie url van deze laadpaal (string)
email = email adres informate eigenaar (string)
chargetype = laadtype (string) (vaste waarden)
    • “DC snellader”,”DC semisnel”,”AC krachtstroom”,”AC simpel”
connectortype = stekkertype (string) (vaste waarden)
    •  ”chademo”,”J1772″,”mennekes”,”CEE”,”CEEblauw”,”schuko”
nroutlets = aantal oplaadpunten (numeric)
    • Let op! Voor oplaadpalen met meerdere soorten stekkers en/of andere eigenschappen dient u deze op te splitsen in meerdere records, elk met verschillend id en nroutlets=1
cards = geldige passen tbv laden (array met toegelaten passen)
    • “elaad”, “thenewmotion”, “essent”, “essentsnellaad”, “eneco”, “nuon”, “contant”, “travelcard”, “total”, “alfen”, “mrgreen”, “chargepnt”, “evbox”, “grwheel”, “evtaxi”, “evpoint”, “anwb”, “greenflux”,”bluecorner”,”gratis”
pricemethod = manier van afrekenen
    •  ”per kWh”,”per laadbeurt”,”per 10min”, “jaarabonnement”, “maandabonnement”, “eenmalig”,  ”onbekend”, “afhankelijk van pas”, “gratis”
price = prijs per eenheid  in EURO (decimal)
opentimes = openingstijden (array of string)
    • String: beschrijving openingstijden bv. “na 18:00 gesloten”
    • Array: Formele openingstijdenlijst met elk array element object met de volgende waardes:
      • weekday: string. Mogelijke waarden: “ma-vr”,”ma-zo”,”za-zo”,”ma”,”di”,”wo”,”do”,”vr”,”za”,”zo”
      • open: string tijdswaarde formaat hh:mm
      • close: string tijdswaarde formaat hh:mm
images = foto url of lijst van foto url’s van het object (array of string) (optioneel)
power = vermogen  (string) (vaste waarden)
    •  ”50kW”,”44kW”,”22kW”,”11kW”,”5kW” (=5kw of minder)
vehicle = voertuig
    • “auto”,”fietsscooter”,”alle”
facilities = faciliteiten rondom de paal (array met faciliteiten)
    • ‘wifi’,'wc’,'parkeer’,'restaurant’,'werkplek’,'wachtruimte’,'koffiecorner’,'shop’,'winkelcentrum’,'openbaar vervoer’
realtimestatus = true/false 
    • False –  de oplaadpaal krijgt de vaste beschikbaarheidsstatus “onbekend”
    • True – de oplaadpaal krijgt de initiele beschikbaarheidsstatus “beschikbaar”. Via de SetAvailability call kan de beschikbaarheid realtime worden aangepast 

 

Voorbeeld:

 [{  "id":"5814",
     "lng":"5.08515",
     "lat":"51.99005",
     "owner":"NewMotion",
     "name":"NewMotion NL-TNM-FC12",
     "address":"Prins Bernardstraat 75",
     "postalcode":"4132 XE",
     "city":"Vianen",
     "country":"NL",
     "phone":"020 662 9992",
     "url":"http:\/\/thenewmotion.com",
     "email":"",
     "opentimes":null,
     "chargetype":"DC snellader",
     "connectortype":"chademo",
     "nroutlets":"1",
     "cards":["thenewmotion","essent"],
     "pricemethod":"per laadbeurt",
     "price":null,
     "power":"50kW",
     "vehicle":"auto",
     "facilities":["wifi","wc","parkeer","restaurant","werkplek","koffiecorner"],
     "opentimes":[
          { "weekday":"ma-vr","open":"06:00", "close": "18:00"},
          { "weekday":"za-zo","open":"09:00","close":"17:00"}
     ],
     "images":[
        "http://mywebsite.com/images/455.jpg",
        "http://mywebsite.com/images/3444.jpg"
     ],
     "realtimestatus":false
},
{    "id": 7788,
     ...
},
... ]

SetAvailability

API url:  http://oplaadpalen.nl/api/setavailability/[developerkey]

Request methode: POST

Er zijn 2 mogelijkheden om de post gegevens te zenden:

  • Send the json encoded information as a raw post boy. Use mimetype application/json
  • Send the json encoded information using the normal post format in the json variable, like json=<json encoded data>

Gegevensformaat

Upload de gegevens in json formaat:

body ::= [ <laadpaal>,<laadpaal>... ]
laadpaal ::= { <lpkeyvalue>,<lpkeyvalue>…  }
lpkeyvalue ::=  ”<lpkey>”:<value>
lpkey ::= id | availabilitystatus
value ::= “string” | number | true | false | {object} | [array]
 
id = primary key (string).
  • Deze waarde moet bestaan in de lijst die met GetChargingPoints is opgehaald. Anders wordt dit record genegeerd.
nravailable = aantal punten beschikbaar (number)
nroccupied = aantal punten bezet (number)
nrfailure = aantal punten in storing (number) (optional, default 0)

Het totaal van nravailable+nroccupied+nrfailure moet gelijk zijn aan nroutlets.

Het is mogelijk 2 van de 3 velden op te geven. De derde wordt dan berekend via nroutlets. Bijvoorbeeld: alleen nravailable en nrfailure worden gegeven. nroccupied wordt dan berekend via nroccupied=nroutlets-nravailable-nrfailure. Bovendien is nrfailure optioneel, dus men kan ook volstaan met het opgeven van slechts 1 waarde, nravailable of nroccupied.

Voorbeeld:

[    {"id":"5814","nravailable":2,"nroccupied":1,"nrfailure":1},
     {"id":"324", "nravailable":2,"nroccupied":0,"nrfailure":0},
     ...
]