Do you need Help? Look for your answers among the Frequently Asked Questions.
Works with Legrand is an open interoperable platform, a strategic part of Eliot, the Legrand innovative program dedicated to promoting the design and deployment of Legrand connected devices. The program allows the Legrand ecosystem to be compatible with major IoT global players. Works with Legrand, thanks to important partnerships, breaks boundaries enabling other companies to connect their devices or services with Legrand products.
For a standard usage, this service does not cost anything. You just have to create an account, subscribe to the Starter Kit and enjoy!
The program is an open approach to enable innovation for living and working spaces; if you are integrating our solutions or if you want to enable services based on data coming from Legrand devices, this is the right place. Develop your solution and start to be part of our community!
You can consume Legrand APIs free of charge, after the sign-in, but with some limitations on the number of calls. If you want to become part of our connections or if you need to increase the number of permitted calls, you need to go in the Contact page and send us an email. We will receive your request and we will contact you as soon as possible!
Thanks to be part of our community! You can share your solution with us using the Contact page and send us an email. Fill in all the request and we will contact you as soon as possible
Your developper account can also be used on the forum. Sign-In and click on "Forum" in the menu. You can manage your personnal information in the Profile menu.
Go on the drop down menu "APIs" and choose "APIs list". Click on the API you want to start your tests.
Go on the drop down menu "APIs" and choose "Subscriptions". For further information, you can consult our tutorials.
In order to access to data concerning the APIs, you need to create an account. Go on the Sign Up page.
If you are a third party developer / partner, you have to click on the Sign Up of "You are a developer?" and start filling all the form.
If you are an internal developer, choose the Legrand's Sign in.
To change your credential (email, First name and Surname) you need to Sign In click on the Profile menu and choose "Change Account Information".
Once you have clicked there you will see the page depicted in the image.
Change the field you want and insert the password to confirm this action.
Go in the Sign In page. Click on "Forgot your password ?" and follow the steps to get a new one
Unfortunately, there are no test accounts or devices for the moment.
It is not possible. The only way to access the data and the devices is via the Cloud APIs.
|Error Code||Name||Description||Possible Solution|
|400||Bad request||Something is probably wrong in your request body or header||Check your request body and header|
|401||Unauthorized||User is not authorized to access the requested resource||Sign into Eliot cloud before sending your request|
Check your product subscription
User is trying to access a resource on which he is not allowed : check that you are using right user credentials on right plant and device
|403||Operation forbidden or Quota exceeded||Your account is not authorized to access the requested resource or|
out of call volume quota. Quota will be replenished in hh:mm:ss
|Check if you have the requested permissions or wait for the suggested time to repeat your request|
|404||Resource not found/Gateway offline||Something is probably wrong in your request URL or your device is temporary disconnected from the network||Check your request URL, including request parameters (API version, plant id, module id) or check your device connection|
|406||Request not acceptable||Acceptance header is invalid for this endpoint resource||Check if the given parameters are valid|
|408||Request timeout||The server did not received a complete request within the server’s allotted timeout period||Wait a few seconds and try to send your request again|
|430||Wrong input parameters||Your request body contains invalid values||Check the parameters of your values in your request body|
|469||Official application password expired||Password used in the Legrand or Bticino Thermostat app is expired||Please renew user password through the application|
|470||Official application terms and conditions expired||Terms and conditions for Legrand or Bticino Thermostat app are expired||Please accept again terms and conditions through the application|
|486||Busy visual user interface||Your Legrand or Bticino thermostat device user interface has been used locally||Wait about 10 seconds and try to send your request again|
|500||Server internal error||The server is not operational||Wait for the server to work again|
Both keys are usable, and only one key is needed at a time. Thanks to these 2 keys, you can change a key without down time of your application. For example, if you want to replace your primary key, the procedure is :
Unfortunately, it is not possible for the moment to register a webhook if you are an external developer.
It is mandatory for users to accept the scopes defined in your application in order to use it. Users can revoke the consents they gave on a specific application from a Legrand app. This revokation process must not be implemented by third party applications.
The user will have to consent on all the scopes provided during the application registration step. The user has 2 options:
Accept all scopes: in this case, Legrand authentication will resume and redirection to the reply URL will be made
Deny: if the user denies, he will not be connected, so he will have to log in again and consent on the scopes to access the application. Moreover, he will be redirected to the redirect_uri with two parameters in query string :
You changed the scopes required by your application and this change has been approved. Then the authentication through will not be allowed, since the scopes required on the previous refresh_token will be different than the scopes currently existing on the application. So you will need to ask for a new authentication with the grant_type "authorization_code", so the user can give his consent on the new provided scopes.
To find the plantId
To find the moduleId and ambientId
|Plant||A location||A house, an apartment, …|
|Ambient||A room||Living room, bed room, …|
|(Ambient) Module||A precise device||My first light, my second Céliane plug, …|
|(Ambient module’s) Plug||An individual plug in a room||The plug of the house’s kitchen|
|Device||A logical type of device||Light, plug, lock, …|
|Device system||The family to which the device belong||Energy management, lighting, …|
|Gateway||The device which is directly connected to the IoTHUB||Céliane with Netatmo, Smarther, …|
Oauth2 authentication process
|JSON Web Tokens (JWT)||It is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. It's used for authentication and information exchange|
|OpenID Connect protocol||Built on top of the OAuth 2.0, it fills the gaps on missing security concerns. It adds a new type of token - which is called id_token - that can be seen as an id card of the user. The format of this token is strictly defined to be compliant to the JWT standard, which is to sum up a JSON formatted, base 64 encoded and signed token|
|Id token (id_token)||An id_token cannot be used for API access. Each token contains information on the intended audience (recipient). According to the OpenID Connect specification, the audience (claim aud) of each id_token must be the client_id of the application making the authentication request||eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsI…|
|Access token (access_token)||Access tokens are the thing that applications use to make API requests on behalf of a user. The access token represents the authorization of a specific application to access specific parts of a user’s data||eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZ…|
|Refresh token (refresh_token)||A refresh token is a special kind of token that can be used to obtain a renewed access token —that allows accessing a protected resource— at any time. You can request new access tokens until the refresh token is blacklisted. Refresh tokens must be stored securely by an application because they essentially allow a user to remain authenticated forever||eyJraWQiOiJjcGltY29yZV8wOTI1MjA…|
|Scope||OAuth 2.0 scopes provide a way to limit the amount of access that is granted to an access token. For example, an access token issued to a client app may be granted READ and WRITE access to protected resources, or just READ access. You can implement your APIs to enforce any scope or combination of scopes you wish. So, if a client receives a token that has READ scope, and it tries to call an API endpoint that requires WRITE access, the call will fail||Get the state of plugs (plug.read), Control plugs (plug.write), Change comfort parameters (temperature setpoint,…) (comfort.write)|
|Application ID (client_id)||It is the unique authentication code of your application. You can find it in “My applications” by clicking on “Details”||3dd29288-cy59-41fa-b492-d8f8289149e7ed|
|Client secret (client_secret)||It is a unique code sent by email at the approval of your application. You must keep it preciously because it can’t be sent back to you||p+.3tog736W52,f~73P3Dt2r|
|User consent||In order to use your application, the user must approve the scopes you defined. User consents are asked just once on the first connection, or each time you change the scopes|