Enode Developers

Overview

This overview collects key resources for our connections.

Copy linkDevice categories

We currently offer connections to devices across four hardware categories — vehicles, chargers, HVACs and solar inverters — through our API. Below you can find a reference of relevant information and documentation for each category.

Category API endpoints API documentation Supported brands and models
Vehicles/vehicles/*

View

View

Chargers/chargers/*

View

View

HVACs/hvacs/*

View

View

Solar inverters/inverters/*

View

View

Copy linkBrands and models

A hardware brand (i.e. Tesla) is referred to as a vendor or brand in our API. Each brand typically has multiple models (i.e. Model S P85) under them. For an overview of our currently supported brands and models, refer to our connection capabilities overview.

Copy linkConnection capabilities

Our connection capabilities overview lists the key device information, implementation status and information, and the capabilities supported by each brand and model.

Capabilities pick up our APIs ability to fetch information, perform actions, or execute any of our Optimize features (such as smart charging or scheduling) for the given model.

Copy linkInterventions

For certain brands and models, some or all capabilities need to be unlocked via an intervention performed by the user.

Examples on this could be signing up for first-party user accounts, signing up for a subscription, changing settings in the first-party app or changing settings on the device itself.

Copy linkAccessing a connected device's capabilities

Any connected device always contains a capabilities object, which is a realtime description of which capabilities the device is capable of. This information can be used to proactively alter your user experience, making sure i.e. unsupported actions are disabled or unavailable information is hidden.

Sample

{
  "id": "8d90101b-3f2f-462a-bbb4-1ed320d33bbe",
  "vendor": "TESLA",
  "capabilities": {
    "chargeState": {
      "isCapable": false,
      "interventionIds": [
        "c8a9fe78-44fd-482a-bebc-ef6047e6c0fe",
      ]
    },
    "information": {
      "isCapable": true,
      "interventionIds": []
    },
    { ... }
  },
  { ... }
}

Copy linkConnection statuses

The connection status of the different vendors (brands) are always reflected on our external status page.

Copy linkConnecting to devices

Connecting to a user's device is done by linking a vendor to a user. This process is handled via Link UI, a simple web interface for obtaining access to users' hardware.

A user can be linked to multiple vendors across multiple categories. Once your user is linked to one or more vendors, you will have access to all of the devices available through the linked vendor's APIs.

Copy linkInteracting with connected devices

Interacting with connected devices is done via the respective API endpoints, i.e. /vehicles/*. Each device will get an unique id upon linking which you can use to fetch information from, or perform actions on.

Copy linkResponse times

When interacting with connected devices through our API, a wide range of delays and timing characteristics come into play. Variables such as the overall response times for the vendor APIs, model specific characteristics and temporary issues on the vendors side all factor in.

While you don't need to know of the specifics of these delays for each brand and model, you can reference the Reliability score in our connection capabilities overview. A lower Reliability score typically means longer delays.

If you experience abnormally long response times with a specific device, brand or model during development or in production, you can reference our status page, look up the Reliability score for the specific model in our connection capabilities overview, or reach out to us for assistance.

Was this article helpful?