# enlighten-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)

Latest version **1.2.2** (published 2019-08-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install enlighten-api
pnpm add enlighten-api
yarn add enlighten-api
bun add enlighten-api
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.2 |
| Published | 2019-08-06 |
| First published | 2019-08-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 11.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Kevin Lohman |
| Maintainers | badpirate |

## Links

- npm: https://www.npmjs.com/package/enlighten-api
- Repository: https://github.com/BadPirate/enlighten-api-node
- Homepage: https://github.com/BadPirate/enlighten-api-node#readme
- Issues: https://github.com/BadPirate/enlighten-api-node/issues
- npm.io page: https://npm.io/package/enlighten-api

## Dependencies (3)

- [dotenv](https://npm.io/package/dotenv.md) ^8.0.0
- [jsonp-client](https://npm.io/package/jsonp-client.md) ^1.2.2
- [babel-preset-env](https://npm.io/package/babel-preset-env.md) ^1.7.0

## Recent versions

- 1.2.2 (latest) — 2019-08-06
- 1.2.1 — 2019-08-05
- 1.2.0 — 2019-08-03
- 1.1.0 — 2019-08-03
- 1.0.1 — 2019-08-03
- 0.0.3 — 2019-08-02
- 0.0.2 — 2019-08-02
- 0.0.1 — 2019-08-02

## README

# 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`
1. Set your Enphase API key and Application Id environment variables. You can find these by logging into your [Enphase developer account](https://developer.enphase.com/admin/applications) and selecting your application. The App id is the last part of the Authorization URL.
1. Quick set for the current session in a bash shell *(replace with your info)

### Command line

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

### .env file

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

## Using

### Import
```javascript
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.

```javascript
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]`

```javascript
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
1. run `npm test`

## License

MIT

---
_Source: https://npm.io/package/enlighten-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
