Node.js API wrapper for Netatmo API.
- Authentication with all Netatmo provided methods:
- Authorization code grant type
- Client credentials grant type
- Refresh token
- Security API (get homes, get events)
- Weather API (get public data, get stations data, get measure)
npm install netatmo-nodejs-api
You need to create an application
This method has been deprecated, see Natatmo documentation
You need to generate a token on Netatmo website:
- choose scopes
- click
generate token
button and accept the condition - copy both
Access Token
andRefresh Token
and use it in the following code
const { NetatmoClient, SCOPE_BASIC_CAMERA } = require('netatmo-nodejs-api') async function main () { // you need to set your own information const clientId = '' const clientSecret = '' let accessToken = '' let refreshToken = '' let expiresInTimestamp = 0 try { // create client const client = new NetatmoClient(clientId, clientSecret, SCOPE_BASIC_CAMERA, { timeout: 1000 }) // authenticate if (!client.checkAndSetAccesToken(accessToken, expiresInTimestamp)) { if (refreshToken) { // use previous refresh token ({ accessToken, refreshToken, expiresInTimestamp } = await client.authenticateByRefreshToken(refreshToken)) // you should store accessToken, refreshToken, expiresInTimestamp for further request console.log('update the code with following 3 lines:') console.log(` let accessToken = '${accessToken}'`) console.log(` let refreshToken = '${refreshToken}'`) console.log(` let expiresInTimestamp = ${expiresInTimestamp}`) } else { throw new Error('Refresh token is missing') } } // get data const homes = await client.getHomes() console.log(homes) } catch (error) { console.log(error) } } main()
You can use the authenticate
method which wrap 2 authentication methods.
const { NetatmoClient, SCOPE_BASIC_CAMERA } = require('netatmo-nodejs-api') async function main () { // you need to set your own information const clientId = '' const clientSecret = '' let refreshToken = '' let accessToken = '' let expiresInTimestamp = 0 try { // create client const client = new NetatmoClient(clientId, clientSecret, SCOPE_BASIC_CAMERA, { timeout: 1000 }); // authenticate ({ accessToken, refreshToken, expiresInTimestamp } = await client.authenticate(accessToken, refreshToken, expiresInTimestamp)) // you should store accessToken, refreshToken, expiresInTimestamp for further request console.log('update the code with following:', refreshToken) console.log(` let accessToken = '${accessToken}'`) console.log(` let refreshToken = '${refreshToken}'`) console.log(` let expiresInTimestamp = ${expiresInTimestamp}`) // get data const homes = await client.getHomes() console.log(homes) } catch (error) { console.log(error) } } main()
From version 2.0, this library is written in TypeScript. Response typing comes from the Netatmo Swagger, transformed into a TS interface by SwaggerEditor. Errors may be present, so don't hesitate to create an issue for fix.
netatmo-nodejs-api is maintained under the semantic versioning guidelines.
See the releases on this repository for changelog.
This project is licensed under the GNU Lesser General Public License v3.0 - see the LICENSE file for details