Turn a Meter into an ESA Calculated Meter This is only possible if the Meter has NO EsaChannels. A Primary Value ESAChannel will be created, according to the EsaChannelCreateDTO. It must be a Formula Channel. The formula is only permitted to reference other ESA Meters. The referenced Meters' Primary Value Channels will be used in the formula calculation.
Request Headers
| Header | Value | Required | Description |
|---|---|---|---|
| ECI-ApiKey | string | Yes | Your API key. See Authentication. |
| Content-Type | application/json | Yes | All requests must specify JSON content type, including the request body. |
Path Parameters
| Name | Description | Type | Required |
|---|---|---|---|
| meterId | The identifier for the meter being converted to an ESA Calculated Meter | integer (int32) | Required |
Request Body
EsaChannelCreate
| Property | Description | Type | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| channelDescription | The channel description Max length of 255 | string | |||||||||||||||||||||||||||||||||
| channelImportId | The channel import identifier Max length of 255 | string | |||||||||||||||||||||||||||||||||
| channelInfo | The name of the ESA channel Max length of 50 Required | string | |||||||||||||||||||||||||||||||||
| dataPointId | The DatapointId identifier Required | integer (int32) | |||||||||||||||||||||||||||||||||
| esaChannelVersion | EsaChannelVersionCreate | ||||||||||||||||||||||||||||||||||
|
EsaChannelVersionCreate properties
|
|||||||||||||||||||||||||||||||||||
| intervalMinutes | The channel interval identifier One of ‘5’, ‘10’, ‘15’, ‘30’, ‘60’, ‘1440’, ‘10080’, ‘43200’ Case sensitive Required when IsCalculated is set to False, case sensitive. Must be null when IsCalculated is set to True, case sensitive | integer (int32) | |||||||||||||||||||||||||||||||||
| isCalculated | Indicates whether or not this is a calculated channel with a formula. When IsCalculated is true, the formula will need to be provided in channel version. Conversions from Non-Calculated Channel to Calculated Channel: If the channel has no readings, If the channel has only one version, If the channel is not in other formulas Conversions from Calculated Channel to Non-Calculated Channel: If the channel has no readings | boolean | |||||||||||||||||||||||||||||||||
| isPrimaryDemand | If the channel is demand value | boolean | |||||||||||||||||||||||||||||||||
| isPrimaryValue | If the channel is primary value | boolean | |||||||||||||||||||||||||||||||||
| observationTypeId | The channel type identifier Required | integer (int32) | |||||||||||||||||||||||||||||||||
| summarizationMethodId | The channel summarization method identifier Required | integer (int32) | |||||||||||||||||||||||||||||||||
Example Request Body
{ "channelDescription": "string", "channelImportId": "string", "channelInfo": "string", "dataPointId": 1, "esaChannelVersion": { "formula": "string", "isValuePositive": false, "maximumReading": 1.0, "minimumReading": 1.0, "multiplier": 1.0, "observationRuleId": 1, "offset": 1.0, "rollbackAllowance": 1.0, "rolloverValue": 1.0, "unitId": 1
}, "intervalMinutes": 1, "isCalculated": false, "isPrimaryDemand": false, "isPrimaryValue": false, "observationTypeId": 1, "summarizationMethodId": 1
}
Responses
200
OK
The request succeeded and the response body contains the requested data.
Response Body Parameters
MeterResponse
| Property | Description | Type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| accounts | MeterAccountChild[] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterAccountChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| active | Indicates whether the Meter is Active | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| address | AddressChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AddressChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| billEntryNote | The bill entry note | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channels | An array of channels assigned to this meter | ChannelChild[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ChannelChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| commodity | CommodityChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CommodityChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdBy | UserChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UserChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdDate | The date and time the meter was created | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| demandUnit | UnitChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UnitChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emissionSource | EmissionSourceLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EmissionSourceLink properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| includeInCostAvoidance | Indicates if the meter should be included in cost avoidance | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| includeInEnergyStar | Indicates if the building is included in ENERGY STAR submissions | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isCalculatedMeter | Indicates whether the Meter is a calculated meter | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isEsaCalculatedMeter | Indicates whether the Meter is an ESA calculated meter | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isSplitChildMeter | Indicates whether the Meter is a child of a split | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isSplitParentMeter | Indicates whether the Meter is a parent of a split | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterCode | The meter code | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterDescription | A description of the meter | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterId | The identifier for the meter | integer (int32) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterInfo | The meter info | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterTimeZone | TimeZoneChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TimeZoneChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterType | MeterTypeChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterTypeChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifiedBy | UserChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UserChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifiedDate | The date and time of the most recent modification of the meter | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| place | PlaceChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PlaceChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| primaryUse | PrimaryUseChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PrimaryUseChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| properties | An array of meter properties | object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| route | RouteChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
RouteChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sentinelStatus | Provides some insight into the current Sentinel enabled status. | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNumber | Meter’s currently assigned serial number | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNumberHistory | MeterSerialNumberHistoryChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterSerialNumberHistoryChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| useUnit | UnitChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UnitChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| watticsDataPoint | WatticsDataPoint | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
WatticsDataPoint properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example Response
{ "accounts": [
{ "accountCode": "string", "accountGeneralLedger": { "generalLedgerCode": "string", "generalLedgerId": 1, "generalLedgerInfo": "string"
}, "accountId": 1, "accountInfo": "string", "accountMeterId": 1, "active": false, "dataAccessReleaseId": 1, "endDate": "2026-03-30", "hasCalculatedMeter": false, "hasSplitChildMeter": false, "hasSplitParentMeter": false, "hasSubAccount": false, "isSubAccount": false, "meterGeneralLedger": { "generalLedgerCode": "string", "generalLedgerId": 1, "generalLedgerInfo": "string"
}, "startDate": "2026-03-30", "vendor": { "vendorCode": "string", "vendorId": 1, "vendorInfo": "string"
}, "vendorType": { "vendorTypeCode": "string", "vendorTypeId": 1
}
}
], "active": false, "address": { "addressTypeId": 1, "city": "string", "country": "string", "latitude": 1.0, "line1": "string", "line2": "string", "line3": "string", "longitude": 1.0, "postalCode": "string", "remitTo": "string", "state": "string"
}, "billEntryNote": "string", "channels": [
{ "channelCode": "string", "channelId": 1, "interval": 1
}
], "commodity": { "commodityCode": "string", "commodityIcon": { "code": "string", "color": "string"
}, "commodityId": 1, "commodityInfo": "string"
}, "createdBy": { "fullName": "string", "userCode": "string", "userId": 1
}, "createdDate": "2026-03-30", "demandUnit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "emissionSource": { "emissionSourceId": 1
}, "includeInCostAvoidance": false, "includeInEnergyStar": false, "isCalculatedMeter": false, "isEsaCalculatedMeter": false, "isSplitChildMeter": false, "isSplitParentMeter": false, "meterCode": "string", "meterDescription": "string", "meterId": 1, "meterInfo": "string", "meterTimeZone": { "timeZoneCode": "string", "timeZoneId": 1, "timeZoneInfo": "string"
}, "meterType": { "meterTypeCode": "string", "meterTypeId": 1, "meterTypeInfo": "string"
}, "modifiedBy": { "fullName": "string", "userCode": "string", "userId": 1
}, "modifiedDate": "2026-03-30", "place": { "isDataRolledUp": false, "placeCode": "string", "placeId": 1, "placeInfo": "string", "placeType": { "icon": {}, "isSystemPlaceType": false, "placeEntityType": {}, "placeTypeCode": "string", "placeTypeId": 1, "placeTypeInfo": "string", "structure": false
}
}, "primaryUse": { "primaryUseCode": "string", "primaryUseId": 1, "primaryUseInfo": "string"
}, "properties": {}, "route": { "routeCode": "string", "routeId": 1, "routeInfo": "string"
}, "sentinelStatus": "string", "serialNumber": "string", "serialNumberHistory": { "previousSerialNumber": "string", "serialNumberChangeDate": "2026-03-30"
}, "useUnit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "watticsDataPoint": { "watticsDataPointId": 1
}
}