Connect chargers through their maker's cloud

Commission Easee chargers in Easee Installer, select Flowion as operator, then link the site in Flowion to import its chargers.

4 min readEdit this page
On this page

Commission Easee chargers in the Easee Installer app and select Flowion as the site's operator. Easee Cloud then routes the site's chargers to Flowion. All supported Easee models use the same operator-wide cloud OCPP configuration; you do not enter a Flowion OCPP address or password for each charger.

Then link the Easee site in Flowion Console to the intended project or installation job. Flowion proves site access, maps the site and circuits, and imports the chargers. Selecting Flowion as operator and linking the site are separate steps: the first enables the cloud route; the second associates the chargers with the correct Flowion location.

See the Easee catalogue. Other chargers that connect directly are covered in Connect a charger.

Linking a site needs the asset.charger.provision permission and is done in live mode. There is no limit on how many chargers an import can bring in; each one is billed as an outlet, like any other charger.

How it works

  1. Prepare the location in Flowion, with its circuits.

  2. Pair with one charger's serial number and PIN. This claims the charger's whole Easee site for your project.

  3. Preview what Easee reports for the site.

  4. Map each Easee circuit to one of your circuits. Flowion imports the chargers and places them.

  5. Check site linkage, then verify connectivity and test charging separately.

1. Prepare the location

Create the location and its circuits first. Each circuit at the Easee site will be mapped onto one of them, so model the circuits the Easee chargers hang off, with their real phase count and rating.

2. Pair

After selecting Flowion as operator in Easee Installer, use the serial number and PIN of any one charger at the site in the Flowion linking form or API:

POST/v1/projects/$PROJECT/easee/pairbash
curl -X POST "$API/projects/$PROJECT/easee/pair" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"serialNumber": "EH123456", "pin": "1234"}'
200Response
{
  "claimId": "e3b1c6a0-2d4f-4b7e-9a51-6c8d0f2e7b19",
  "easeeSiteId": "123456",
  "flowionLocationId": null
}

Save claimId as $CLAIM. Pairing claims the site; nothing is imported yet.

AnswerWhat to do
422 wrongPinCheck the PIN. Wrong guesses for one serial are limited, so check before retrying.
404 unknownSerialEasee does not know that serial number. Check it against the charger.
409 siteClaimedElsewhereThe site is already linked to a Flowion project.
409 siteOwnedByAnotherEaseeOperatorAnother operator manages the site at Easee.

3. Preview the site

GET/v1/projects/$PROJECT/easee/claims/$CLAIM/topologybash
curl "$API/projects/$PROJECT/easee/claims/$CLAIM/topology" \
  -H "Authorization: Bearer $TOKEN"
200Response
{
  "easeeSiteId": "123456",
  "easeeSiteName": "Depot A",
  "flowionLocationId": null,
  "circuits": [
    {
      "easeeCircuitId": "98765",
      "ratedCurrentAmps": 32,
      "phaseTopologyConfirmed": false,
      "flowionCircuitId": null,
      "equalizerIds": [],
      "chargers": [
        {"easeeChargerId": "EH123456", "name": "Bay 1",
         "flowionChargingStationId": null}
      ]
    }
  ]
}

Every Easee circuit is listed with its chargers. Until a circuit is mapped, unrepresentableReason says what it still needs. A charger that Flowion already knows by its serial number shows its flowionChargingStationId, and the import adopts it instead of creating a second one.

4. Map and import

Map every Easee circuit onto the Flowion circuit it really is:

POST/v1/projects/$PROJECT/easee/claims/$CLAIM/mappingbash
curl -X POST \
  "$API/projects/$PROJECT/easee/claims/$CLAIM/mapping" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"flowionLocationId": "'"$LOCATION"'",
       "circuits": [{"easeeCircuitId": "98765",
                     "flowionCircuitId": "'"$CIRCUIT"'",
                     "confirmPhaseTopology": true}]}'
200Response
{
  "flowionLocationId": "5a2e8c41-0b7d-4f93-a6e2-1d9c3b8f7a04",
  "chargersAdded": 4,
  "chargersRemoved": 0,
  "chargersAwaitingRemovalConfirmation": 0,
  "unrepresentableCircuits": []
}

Easee does not report which phases a circuit uses, so the mapping is where you confirm it: the Flowion circuit you choose must have the phase count and line the Easee circuit really has. Every Easee circuit needs a mapping.

Flowion then creates one charger per Easee charger and places each on its circuit, so load balancing covers it from the start. The site stays tied to this location; mapping again later can only add circuits Easee has gained since.

5. Check site linkage

Successful import means Site linked. The existing API retains its commissioning names for compatibility:

GET/v1/projects/$PROJECT/easee/claims/$CLAIM/commissioningbash
curl "$API/projects/$PROJECT/easee/claims/$CLAIM/commissioning" \
  -H "Authorization: Bearer $TOKEN"

A charger's commissioned status means it has been imported and linked to this Flowion site. It does not prove a current connection, a successful test charge or installation acceptance. Allow time for Easee Cloud to connect after operator selection, and inspect the charger's current connection and job checks.

Older versions may have recorded pending, inProgress, failed or awaitingOperatorSelection during native OCPP setup. Current onboarding makes no native OCPP configuration calls and has no per-charger native retry schedule. The compatibility refresh endpoint updates local linkage for imported chargers:

POST/v1/projects/$PROJECT/easee/claims/$CLAIM/commissioning/retrybash
curl -X POST \
  "$API/projects/$PROJECT/easee/claims/$CLAIM/commissioning/retry" \
  -H "Authorization: Bearer $TOKEN"

A linked charger is an ordinary Flowion charger with "externalVendor": "easee". Its cloud route uses the shared operator configuration. Not every feature reaches the hardware through a maker's cloud. See which. Complete the job's separate connection, test-charge and handover checks before accepting the installation.

If the site has an Easee Equalizer on a mapped circuit, Flowion reads it and lists it as an energy monitor you can assign to that circuit.

Keep the site in step

Flowion re-reads every linked site regularly. Chargers added at Easee are imported and placed. A charger that disappears from Easee is marked removed only once it has been missing for a while; until then it is counted in chargersAwaitingRemovalConfirmation. Removed chargers keep their history.

To refresh a site now, for example right after an installer added a charger:

POST/v1/projects/$PROJECT/easee/claims/$CLAIM/reconcilebash
curl -X POST \
  "$API/projects/$PROJECT/easee/claims/$CLAIM/reconcile" \
  -H "Authorization: Bearer $TOKEN"

To find the claim behind a location, use GET /projects/$PROJECT/easee/locations/$LOCATION/claim.

POST/v1/projects/$PROJECT/easee/claims/$CLAIM/unlinkbash
curl -X POST \
  "$API/projects/$PROJECT/easee/claims/$CLAIM/unlink" \
  -H "Authorization: Bearer $TOKEN"

Unlinking is separate from onboarding. Its legacy vendor cleanup calls Easee's native OCPP API for each present charger. The claim moves to unlinking, then unlinked once cleanup succeeds. A partial failure leaves it retryable; Flowion also resumes cleanup automatically. Check the current cloud connection separately: completing native cleanup does not establish that Easee Cloud has stopped routing data.

Chargers and their history stay in Flowion. To retire them as well, deprovision each one with DELETE /charging-stations/{id}. To link the site again later, pair it again.