Skip to content

BadPirate/enlighten-api-node

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NodeJS Enphase Enlighten Systems API

npm installable API for making calls to the Enlighten Enphase API, includes handling for API rate limiting, caching previously retrieved data for faster access, and some convienience methods (like total power calculation)

Motivation

Quick and easy standarization of calls

Installation

  1. npm install enlighten-api
  2. Set your Enphase API key and Application Id environment variables. You can find these by logging into your Enphase developer account and selecting your application. The App id is the last part of the Authorization URL.
  3. Quick set for the current session in a bash shell *(replace with your info)

Command line

export ENPHASE_API_KEY='3aaa01a221a6603a71853fc1cc2c3a5b'
export ENPHASE_APP_ID='140961117xxxx'

.env file

ENPHASE_API_KEY='3aaa01a221a6603a71853fc1cc2xxxx'
ENPHASE_APP_ID='140961117xxxx'

Using

Import

import Enlighten from 'enlighten-api'

Create API

Get a User ID using the authentication link and retrieval steps and then allocate an EnphaseAPI for use.

const api = new EnphaseAPI(userID);

Retrieve a system

Most calls (like stats) require you to specify a system. This is done by first retrieving all systems, and using that object to make system calls. Server list is cached, and will only go out once per alloc, so don't worry about making multiple calls. Servers returns a Map of [server => EnlightenSystem]

api.getServers()
.then(servers => {
  return servers.get(28381);
}
.then(server => {
  return server.getStats(1564755300,1564775400);
})
.then(stats => {
  // Do something with those juicy Stats.
})

Testing

  1. Add your API key to .env ENPHASE_API_KEY= file
  2. run npm test

License

MIT

About

Enphase Enlighten System API sample code in NodeJS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%