Overview
Enphase IQ microinverters, IQ Batteries, meters and EV chargers report to the Enlighten cloud. The Enphase Monitoring API v4 (https://api.enphaseenergy.com/api/v4) gives read (and limited write) access to that data. It is documented on the Enphase developer portal with an official Swagger 2.0 export for the Monitoring API.
The EnphaseEnlightenApi connector maps 28 MQTT topics onto that API: 22 Watt (free), 2 Kilowatt and 4 Megawatt events. Typical uses are putting site PV production, consumption and battery power on the broker next to plant data, turning Enphase alarms into broker alarms, and (on Megawatt) reading or changing battery mode. Each event publishes the Enphase reply on <topic>/response.
| Event | Topic | Request | Plan | Use |
|---|---|---|---|---|
ListSystems | energy/enphase/system/list | GET /api/v4/systems?key={api_key}&{query} | Watt | Systems the token can read, e.g. query page=1&size=100&sort_by=id |
SearchSystems | energy/enphase/system/search | POST /api/v4/systems/search?key={api_key}&{query} | Watt | Filter systems by ids, name, reference or status; body {“system”:{“statuses”:[“comm”,“micro”]}}, query page=&size=&live_stream= |
GetSystem | energy/enphase/system/get | GET /api/v4/systems/{id}?key={api_key} | Watt | System details: name, timezone, address, connection type, status, last report |
GetSystemSummary | energy/enphase/system-summary/get | GET /api/v4/systems/{id}/summary?key={api_key}&{query} | Watt | Current power (W), energy today and lifetime (Wh), size, modules, status; query summary_date=YYYY-MM-DD or "" |
ListSystemDevices | energy/enphase/device/list | GET /api/v4/systems/{id}/devices?key={api_key} | Watt | Micros, meters, gateways (Envoy), batteries (Encharge), Enpower, EVSE with serials and status |
RetrieveSystemId | energy/enphase/system-id/get | GET /api/v4/systems/retrieve_system_id?key={api_key}&{query} | Watt | System id for an IQ Gateway (Envoy) serial; query serial_num=<envoy serial> |
GetLatestTelemetry | energy/enphase/latest-telemetry/get | GET /api/v4/systems/{id}/latest_telemetry?key={api_key} | Watt | Last reported PV, consumption, battery and EVSE power (W) plus battery / heat pump / EVSE operating mode |
GetProductionMeterReadings | energy/enphase/production-meter-readings/get | GET /api/v4/systems/{id}/production_meter_readings?key={api_key}&{query} | Watt | Last odometer reading of each revenue-grade production meter; query end_at=<epoch>&include_channels=true or "" |
GetEnergyLifetime | energy/enphase/energy-lifetime/get | GET /api/v4/systems/{id}/energy_lifetime?key={api_key}&{query} | Watt | Daily production series (Wh); query start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&production=all |
GetRgmStats | energy/enphase/rgm-stats/get | GET /api/v4/systems/{id}/rgm_stats?key={api_key}&{query} | Watt | 15-minute revenue-grade meter intervals (max 1 week); query start_at=<epoch>&end_at=<epoch> |
GetProductionMicroTelemetry | energy/enphase/production-micro-telemetry/get | GET /api/v4/systems/{id}/telemetry/production_micro?key={api_key}&{query} | Watt | Production of all microinverters; query start_at=<epoch>&granularity=5mins/15mins/day/week |
GetProductionMeterTelemetry | energy/enphase/production-meter-telemetry/get | GET /api/v4/systems/{id}/telemetry/production_meter?key={api_key}&{query} | Watt | Production meter intervals; query start_at=<epoch>&granularity=… |
GetConsumptionMeterTelemetry | energy/enphase/consumption-meter-telemetry/get | GET /api/v4/systems/{id}/telemetry/consumption_meter?key={api_key}&{query} | Watt | Consumption meter intervals; query start_at=<epoch>&granularity=… |
GetBatteryTelemetry | energy/enphase/battery-telemetry/get | GET /api/v4/systems/{id}/telemetry/battery?key={api_key}&{query} | Watt | Battery charge / discharge and state of charge intervals; query start_at=<epoch>&granularity=… |
GetEnergyImportTelemetry | energy/enphase/energy-import-telemetry/get | GET /api/v4/systems/{id}/energy_import_telemetry?key={api_key}&{query} | Watt | Energy imported from the grid per interval; query start_at=<epoch>&granularity=… |
GetEnergyExportTelemetry | energy/enphase/energy-export-telemetry/get | GET /api/v4/systems/{id}/energy_export_telemetry?key={api_key}&{query} | Watt | Energy exported to the grid per interval; query start_at=<epoch>&granularity=… |
GetConsumptionLifetime | energy/enphase/consumption-lifetime/get | GET /api/v4/systems/{id}/consumption_lifetime?key={api_key}&{query} | Watt | Daily consumption series (Wh); query start_date=&end_date= |
ListOpenAlarms | energy/enphase/open-alarm/list | GET /api/v4/systems/{id}/open_alarms?key={api_key} | Watt | All open alarms of a site |
ListAlarms | energy/enphase/alarm/list | GET /api/v4/systems/{id}/alarms?key={api_key}&{query} | Watt | Active and closed alarms; query start_time=<epoch> (required, max 7-day window)&end_time=&cleared=true/false |
ListOpenEvents | energy/enphase/open-event/list | GET /api/v4/systems/{id}/open_events?key={api_key} | Watt | All open events of a site |
ListEvents | energy/enphase/event/list | GET /api/v4/systems/{id}/events?key={api_key}&{query} | Watt | Active and closed events; query start_time=<epoch> (required, max 1 week)&end_time= |
ListEventTypes | energy/enphase/event-type/list | GET /api/v4/systems/event_types?key={api_key}&{query} | Watt | Static event type catalog with description and recommended action; query event_type_id= or "" |
GetMicroTelemetry | energy/enphase/micro-telemetry/get | GET /api/v4/systems/{id}/devices/micros/{serial}/telemetry?key={api_key}&{query} | Kilowatt | Kilowatt+: one microinverter’s telemetry; query start_at=&granularity= |
GetLiveData | energy/enphase/live-data/get | GET /api/v4/systems/{id}/live_data?key={api_key} | Kilowatt | Kilowatt+ Streaming API: on-demand real-time PV, grid, load, battery, generator and EVSE power (USD 0.10 per hit; default 30 s stream) |
GetBatterySettings | energy/enphase/battery-settings/get | GET /api/v4/systems/config/{id}/battery_settings?key={api_key} | Megawatt | Megawatt: battery mode, reserve SoC, energy independence, charge from grid |
UpdateBatterySettings | energy/enphase/battery-settings/update | PUT /api/v4/systems/config/{id}/battery_settings?key={api_key} | Megawatt | Megawatt: change battery mode / reserve SoC; body {“battery_mode”:“Self-consumption”,“reserve_soc”:30} (writes to a real home battery) |
GetStormGuard | energy/enphase/storm-guard/get | GET /api/v4/systems/config/{id}/storm_guard?key={api_key} | Megawatt | Megawatt: Storm Guard state |
GetGridStatus | energy/enphase/grid-status/get | GET /api/v4/systems/config/{id}/grid_status?key={api_key} | Megawatt | Megawatt: on-grid / off-grid status of the system |
SearchSystems is a POST that only filters systems. The only real write is UpdateBatterySettings (Megawatt): it changes a home battery’s mode and reserve SoC, so gate it behind an operator action. EV charger start / stop are marked “illustrative only” in the spec and are not packaged.
For local, sub-second inverter data without the cloud, talk to the IQ Gateway over its local LAN API or Modbus TCP instead. This connector is for Enlighten cloud fleet data.
Prerequisites
- An Enphase developer account at developer-v4.enphase.com. The free Watt plan starts with 1,000 hits per month and 10 calls per minute.
- An application with its API key (
key), client id and client secret. - At least one system owner who approved the app (OAuth authorization code), so you have a working access token and refresh token.
- The system id of each site you want to read (from
system/list) and, for micro telemetry, the microinverter serial (fromdevice/list). - For Kilowatt / Megawatt events: the matching paid plan. Lower plans get
403. - Outbound HTTPS from the broker to
api.enphaseenergy.com. TLS 1.2 or newer is required.
Authentication
Every event sends both:- Query parameter
key={value.json.api_key}— the application API key from the developer portal. - Header
Authorization: {value.json.authorization}— the stringBearer <access_token>.
ENPHASE_API_KEY and ENPHASE_AUTHORIZATION, and read them with GET SECRET in the action that publishes to the connector.
| Response | Meaning |
|---|---|
401 {"message":"Not Authorized","details":"User is not authorized","code":401} | No Authorization header |
401 {"message":"Not Authorized","details":"Token is invalid","code":401} | Bad or expired access token |
401 {"type":"authentication_error",...,"message":"API Key is invalid"} | Bad key on the Streaming API (live_data) |
403 | Token valid but no access to that system / plan too low |
429 | Rate or monthly hit limit |
Getting tokens (outside this connector)
- Send the system owner:
https://api.enphaseenergy.com/oauth/authorize?response_type=code&client_id=<client_id>&redirect_uri=<uri>&state=<state>. - Exchange the code:
POST https://api.enphaseenergy.com/oauth/token?grant_type=authorization_code&redirect_uri=<uri>&code=<code>with Basic authclient_id:client_secret. - Refresh before expiry:
POST .../oauth/token?grant_type=refresh_token&refresh_token=<refresh_token>with the same Basic auth. Access tokens last 1 day, refresh tokens 1 month on Watt / Kilowatt / Megawatt.
Plans and rate limits
| Plan | Hits / minute | Hits / month | Extra |
|---|---|---|---|
| Watt (free) | 10 | 1,000 | System details, site production / consumption, EV charger monitoring |
| Kilowatt (USD 249 / mo) | 50 | 50,000 | Device-level monitoring, Streaming API (live_data, USD 0.10 / hit) |
| Megawatt (USD 999 / mo) | 100 | 300,000 | System configurations (battery settings, Storm Guard, grid status) |
429. Telemetry arrives at 5 or 15 minute resolution, so poll every 15 minutes or slower and prefer the site-level events on the free plan.
Payload
| Field | Type | Required | Notes |
|---|---|---|---|
authorization | string | yes | Bearer <access_token> |
api_key | string | yes | Application key, rendered into ?key= |
id | string | most events | Enphase system id |
serial | string | GetMicroTelemetry | Microinverter serial |
query | string | when the endpoint has optional query params | Pre-encoded string after ?key=, or "" |
body | object / string | SearchSystems, UpdateBatterySettings | JSON body |
{"authorization":"Bearer eyJ...","api_key":"<key>","id":"698905955","query":""}
{"authorization":"Bearer eyJ...","api_key":"<key>","id":"698905955","query":"start_at=1759644000&granularity=15mins"}
{"authorization":"Bearer eyJ...","api_key":"<key>","id":"698905955","body":{"battery_mode":"Self-consumption","reserve_soc":30}}
Example actions
These four actions stay inside a free Watt budget for one system (~775 hits / month). Replace the example system id and wire the Hub secrets.# Example actions for the EnphaseEnlightenApi route (docs page). Not part of the route template.
# Secrets: ENPHASE_API_KEY = the application API key from developer-v4.enphase.com (sent as ?key=);
# ENPHASE_AUTHORIZATION = "Bearer <access_token>" (access token lives 1 day; refresh it outside these actions).
# System id 698905955 is an example id from the Enphase v4 spec. Replace it with your own (from system/list).
# Inline JSON object literals are not supported when publishing to a topic, so the request payload is a COLLAPSED
# model sent with PUBLISH MODEL.
# Budget: the free Watt plan allows 1,000 hits / month and 10 per minute. These four actions use about
# 372 + 248 + 124 + 31 = 775 hits / month for one system.
DEFINE MODEL EnphaseRequest COLLAPSED
ADD STRING "authorization"
ADD STRING "api_key"
ADD STRING "id"
ADD STRING "query"
DEFINE ACTION EnphaseSummaryEvery2Hours
ON EVERY 2 HOURS DO
PUBLISH MODEL EnphaseRequest TO "energy/enphase/system-summary/get" WITH
authorization = (GET SECRET "ENPHASE_AUTHORIZATION")
api_key = (GET SECRET "ENPHASE_API_KEY")
id = "698905955"
query = ""
DEFINE ACTION EnphaseLatestTelemetryEvery3Hours
ON EVERY 3 HOURS DO
PUBLISH MODEL EnphaseRequest TO "energy/enphase/latest-telemetry/get" WITH
authorization = (GET SECRET "ENPHASE_AUTHORIZATION")
api_key = (GET SECRET "ENPHASE_API_KEY")
id = "698905955"
query = ""
DEFINE ACTION EnphaseOpenAlarmsEvery6Hours
ON EVERY 6 HOURS DO
PUBLISH MODEL EnphaseRequest TO "energy/enphase/open-alarm/list" WITH
authorization = (GET SECRET "ENPHASE_AUTHORIZATION")
api_key = (GET SECRET "ENPHASE_API_KEY")
id = "698905955"
query = ""
DEFINE ACTION EnphaseEnergyLifetimeDaily
ON EVERY 1 DAY DO
PUBLISH MODEL EnphaseRequest TO "energy/enphase/energy-lifetime/get" WITH
authorization = (GET SECRET "ENPHASE_AUTHORIZATION")
api_key = (GET SECRET "ENPHASE_API_KEY")
id = "698905955"
query = ""
Deployable connector
# Coreflux REST_API template — Enphase Monitoring API v4 (Enlighten cloud: IQ microinverters, IQ Battery, meters, EVSE):
# list and search systems, read system details and summary, device inventory, latest power snapshot, production /
# consumption / battery / grid import-export telemetry and lifetime series, revenue-grade meter readings, open and
# historical alarms and events; on paid plans also single-microinverter telemetry, the Streaming API live status,
# battery settings (read and update), Storm Guard and grid status.
# Hugo catalog #177, Tier 2 (energy). Spec: official Enphase Monitoring API v4 Swagger 2.0 (System_API.json from
# developer-v4.enphase.com/docs, fetched 2026-10-05; curated slim in openapi-cache/enphase-enlighten-api-v4.json).
# Credentials are placeholders only.
# Docs: https://docs.coreflux.org/latest/lot-language/routes/rest-api-apps/enphase-enlighten-api-v4
#
# Auth: every call needs BOTH the application API key as query parameter ?key=<api_key> AND
# Authorization: Bearer <access_token> (OAuth 2.0). Payload fields: api_key (from the developer portal application)
# and authorization ("Bearer <access_token>"). Keep both in Hub secrets (suggested ENPHASE_API_KEY and
# ENPHASE_AUTHORIZATION) and map them into the payload with GET SECRET.
# Tokens: the system owner approves your app at https://api.enphaseenergy.com/oauth/authorize?response_type=code&
# client_id=<client_id>&redirect_uri=<uri>; exchange the code with POST https://api.enphaseenergy.com/oauth/token?
# grant_type=authorization_code&redirect_uri=<uri>&code=<code> and Basic auth client_id:client_secret. Access token
# lives 1 day, refresh token 1 month (grant_type=refresh_token). Refresh outside this route (or in a companion route).
# Missing token: 401 {"message":"Not Authorized","details":"User is not authorized","code":401}; bad token:
# 401 {"message":"Not Authorized","details":"Token is invalid","code":401}.
# Plans (per developer application): Watt (free) 10 hits / minute, 1,000 / month: system details, site-level
# production and consumption, EV charger monitoring. Kilowatt (USD 249 / month) 50 / min, 50,000 / month: adds
# device-level monitoring and the Streaming API (USD 0.10 per live-status hit). Megawatt (USD 999 / month) 100 / min,
# 300,000 / month: adds system configurations. Events outside your plan answer 403; over the limit answers 429.
# Telemetry granularity is 5 / 15 minutes at best, so poll every 15 minutes or slower.
# Queries: events with a "query" field take the pre-encoded extra query string ("" for none); it is appended after
# ?key=. Times are epoch seconds (start_at, end_at, start_time, end_time) or YYYY-MM-DD (start_date, end_date,
# summary_date); granularity = 5mins|15mins|day|week (default day).
# Writes: only UpdateBatterySettings (PUT, Megawatt) and SearchSystems (POST, read-only filter). UpdateBatterySettings
# changes a real home battery's mode / reserve: gate it behind an operator action. EV charger start / stop are
# "illustrative only - access via VPP API for partners" in the spec and are not packaged.
#
# Payload fields: authorization, api_key, id (Enphase system id), serial (microinverter serial), query, body
# GetSystemSummary id = "698905955", query = ""
# GetProductionMicroTelemetry id = "698905955", query = "start_at=1759644000&granularity=15mins"
# GetEnergyLifetime id = "698905955", query = "start_date=2026-10-01&end_date=2026-10-04"
# ListAlarms id = "698905955", query = "start_time=1759100000&cleared=false"
# UpdateBatterySettings id = "698905955", body = {"battery_mode":"Self-consumption","reserve_soc":30}
DEFINE ROUTE EnphaseEnlightenApi WITH TYPE REST_API
ADD REST_API_CONFIG
WITH BASE_ADDRESS "https://api.enphaseenergy.com"
WITH ENABLE_CLIENT "true"
WITH USE_SSL "true"
WITH REQUEST_TIMEOUT '30'
WITH DEFAULT_CONTENT_TYPE "application/json"
# Smoke: ListSystems (size=1) -> GetSystemSummary -> ListSystemDevices -> GetLatestTelemetry -> GetEnergyLifetime -> ListOpenAlarms.
ADD EVENT ListSystems
WITH SOURCE_TOPIC "energy/enphase/system/list"
WITH DESTINATION_TOPIC "energy/enphase/system/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT SearchSystems
WITH SOURCE_TOPIC "energy/enphase/system/search"
WITH DESTINATION_TOPIC "energy/enphase/system/search/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/v4/systems/search?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT GetSystem
WITH SOURCE_TOPIC "energy/enphase/system/get"
WITH DESTINATION_TOPIC "energy/enphase/system/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetSystemSummary
WITH SOURCE_TOPIC "energy/enphase/system-summary/get"
WITH DESTINATION_TOPIC "energy/enphase/system-summary/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/summary?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT ListSystemDevices
WITH SOURCE_TOPIC "energy/enphase/device/list"
WITH DESTINATION_TOPIC "energy/enphase/device/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/devices?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT RetrieveSystemId
WITH SOURCE_TOPIC "energy/enphase/system-id/get"
WITH DESTINATION_TOPIC "energy/enphase/system-id/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/retrieve_system_id?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetLatestTelemetry
WITH SOURCE_TOPIC "energy/enphase/latest-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/latest-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/latest_telemetry?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetProductionMeterReadings
WITH SOURCE_TOPIC "energy/enphase/production-meter-readings/get"
WITH DESTINATION_TOPIC "energy/enphase/production-meter-readings/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/production_meter_readings?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetEnergyLifetime
WITH SOURCE_TOPIC "energy/enphase/energy-lifetime/get"
WITH DESTINATION_TOPIC "energy/enphase/energy-lifetime/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/energy_lifetime?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetRgmStats
WITH SOURCE_TOPIC "energy/enphase/rgm-stats/get"
WITH DESTINATION_TOPIC "energy/enphase/rgm-stats/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/rgm_stats?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetProductionMicroTelemetry
WITH SOURCE_TOPIC "energy/enphase/production-micro-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/production-micro-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/telemetry/production_micro?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetProductionMeterTelemetry
WITH SOURCE_TOPIC "energy/enphase/production-meter-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/production-meter-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/telemetry/production_meter?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetConsumptionMeterTelemetry
WITH SOURCE_TOPIC "energy/enphase/consumption-meter-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/consumption-meter-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/telemetry/consumption_meter?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetBatteryTelemetry
WITH SOURCE_TOPIC "energy/enphase/battery-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/battery-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/telemetry/battery?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetEnergyImportTelemetry
WITH SOURCE_TOPIC "energy/enphase/energy-import-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/energy-import-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/energy_import_telemetry?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetEnergyExportTelemetry
WITH SOURCE_TOPIC "energy/enphase/energy-export-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/energy-export-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/energy_export_telemetry?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetConsumptionLifetime
WITH SOURCE_TOPIC "energy/enphase/consumption-lifetime/get"
WITH DESTINATION_TOPIC "energy/enphase/consumption-lifetime/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/consumption_lifetime?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT ListOpenAlarms
WITH SOURCE_TOPIC "energy/enphase/open-alarm/list"
WITH DESTINATION_TOPIC "energy/enphase/open-alarm/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/open_alarms?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT ListAlarms
WITH SOURCE_TOPIC "energy/enphase/alarm/list"
WITH DESTINATION_TOPIC "energy/enphase/alarm/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/alarms?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT ListOpenEvents
WITH SOURCE_TOPIC "energy/enphase/open-event/list"
WITH DESTINATION_TOPIC "energy/enphase/open-event/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/open_events?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT ListEvents
WITH SOURCE_TOPIC "energy/enphase/event/list"
WITH DESTINATION_TOPIC "energy/enphase/event/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/events?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT ListEventTypes
WITH SOURCE_TOPIC "energy/enphase/event-type/list"
WITH DESTINATION_TOPIC "energy/enphase/event-type/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/event_types?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetMicroTelemetry
WITH SOURCE_TOPIC "energy/enphase/micro-telemetry/get"
WITH DESTINATION_TOPIC "energy/enphase/micro-telemetry/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/devices/micros/{value.json.serial}/telemetry?key={value.json.api_key}&{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetLiveData
WITH SOURCE_TOPIC "energy/enphase/live-data/get"
WITH DESTINATION_TOPIC "energy/enphase/live-data/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/{value.json.id}/live_data?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetBatterySettings
WITH SOURCE_TOPIC "energy/enphase/battery-settings/get"
WITH DESTINATION_TOPIC "energy/enphase/battery-settings/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/config/{value.json.id}/battery_settings?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT UpdateBatterySettings
WITH SOURCE_TOPIC "energy/enphase/battery-settings/update"
WITH DESTINATION_TOPIC "energy/enphase/battery-settings/update/response"
WITH METHOD "PUT"
WITH ENDPOINT "/api/v4/systems/config/{value.json.id}/battery_settings?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT GetStormGuard
WITH SOURCE_TOPIC "energy/enphase/storm-guard/get"
WITH DESTINATION_TOPIC "energy/enphase/storm-guard/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/config/{value.json.id}/storm_guard?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
ADD EVENT GetGridStatus
WITH SOURCE_TOPIC "energy/enphase/grid-status/get"
WITH DESTINATION_TOPIC "energy/enphase/grid-status/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/v4/systems/config/{value.json.id}/grid_status?key={value.json.api_key}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "Authorization" "{value.json.authorization}"
ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
Testing
SeeTEST.md in the package. Static checks, a local mock and unauthenticated probes against api.enphaseenergy.com all pass. Live authenticated smoke needs ENPHASE_API_KEY and ENPHASE_ACCESS_TOKEN.
Suggested branches
feat/rest-api-route-enphase-enlighten-api-v4feat/docs-rest-api-enphase-enlighten-api-v4

