Telemetry

The Telemetry endpoint returns time-bucketed measurements for a single device stream. It is available on both the Partner and Customer APIs:

Which ID to use

synthId (the path parameter) is the sensor ID from the site topology — not the top-level device ID.

On most installations the actual telemetry streams are keyed by derived sensor IDs such as:

Sensor ID suffixWhat it represents
__GRID_METER_DERIVEDGrid import / export meter
__bb_aggAggregated battery (all blocks combined)
__PV_DERIVEDAggregated PV generation
__BATTERY_DERIVEDBattery (alternative naming on some device types)
__dcmCombined DC measurement (compact PV)
__CONSUMPTION_METER_DERIVEDEstimated house consumption

Querying the bare device ID (as returned by GET /api/v1/devices) for these installations returns an empty entries array because no stream is stored under that exact key.

Recommended workflow:

  1. Call GET /api/v1/sites/{siteId}/topology to get the site topology.
  2. Walk the tree and collect every node with "kind": "sensor". Read its id and channels.
  3. Call GET /api/v1/devices/{sensorId}/telemetry once per sensor ID.

Parameters

ParameterRequiredDescription
intervalYesISO 8601 time interval. Accepts a start/end pair (2026-04-01T00:00:00Z/2026-04-02T00:00:00Z) or start-with-duration (2026-04-01T00:00:00Z/PT24H). Times must be UTC.
resolutionNoISO 8601 duration: PT15M (15 min, default on Customer API), PT1H, P1D. The Partner API also accepts other resolutions depending on account configuration.
includeNoComma-separated list: default (power, SoC, state, etc.) and/or energy (cumulative energy fields). Defaults to default.

Channels

Each sensor exposes a set of channels. Common channels include:

ChannelUnitDevices
power_WWBMS, PV array, meters
power_AC_WWInverter (AC side)
power_DC_WWInverter (DC side)
socpercentBMS
energy_Wh_incrementWhInverter, BMS, connection point
energy_Wh_decrementWhInverter, BMS, connection point
stateConnection point (grid relay state)

energy_Wh_increment and energy_Wh_decrement are only populated when include=energy (or include=default,energy) is specified. These are intended to be lifetime cumulative values:

  • energy_Wh_increment — total energy flowing into the device (positive).
  • energy_Wh_decrement — total energy flowing out of the device (negative).

Energy direction is relative to the device. When a battery is charging from solar, the BMS receives energy_Wh_increment; the PV array's energy_Wh_decrement becomes more negative.

Example request

# Fetch 15-minute battery power and state-of-charge for the past day
curl -s \
  -H "Authorization: Bearer ${access_token}" \
  "https://${api_base_url}/api/v1/devices/${sensor_id}/telemetry?interval=P1D/2026-04-30T00:00:00Z&resolution=PT15M"

Example response

{
  "entries": [
    {
      "deviceKind": "battery_pack",
      "deviceId": "lunar_hc-yyy-inv-1__bb_agg",
      "interval": "2026-04-29T23:45:00Z/2026-04-30T00:00:00Z",
      "power_W": -1200,
      "soc": 0.78
    },
    {
      "deviceKind": "battery_pack",
      "deviceId": "lunar_hc-yyy-inv-1__bb_agg",
      "interval": "2026-04-30T00:00:00Z/2026-04-30T00:15:00Z",
      "power_W": -800,
      "soc": 0.75
    }
  ]
}

A negative power_W value on a battery indicates discharging (energy flowing out of the battery to the home or grid).